问题标签 [kinect-v2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6281 浏览

ubuntu-16.04 - 让 kinect v2 与 Ubuntu 16.04 和 ROS Kinetic 一起工作

过去两天我一直在尝试让我的 microsoft kinect one (v2.0) 与 Ubuntu 16.04 和 ROS 动力学一起使用。我下载了 libfreenect2 驱动程序(https://github.com/OpenKinect/libfreenect2)并按照分步说明进行操作。我成功地运行了显示 IR、RGB 和 2 个深度传感器流的 ./Protonect。然后我尝试使用 kinect2-ros 包将驱动程序与 ROS 桥接,但一直遇到错误“无法找到 libfreenect2”,在我的工作区中运行 catkin_make 时会调用该错误。

有人可以帮助我了解发生了什么和/或如果有人成功让 kinect v2 与这些系统设置一起工作,你能分享你的知识吗?

谢谢

0 投票
1 回答
2429 浏览

python - 在python中使用kinect v2实时获取帧

如何在 python 中使用 kinect v2 实时获取骨骼数据帧?

如何使用 kinect v2 获取 mp4 视频文件?

使用kinect studio获取的视频文件格式是.xef,但是如何使用python分离这个.xef文件的帧呢?

0 投票
1 回答
138 浏览

kinect - 使用 Kinect v2 API 获取的点云中的偏移

我在 Windows 10 64 位操作系统中使用 Kinect v2 API 获取点云。下面是代码片段-

请看下面的点云截图——

在此处输入图像描述

请环顾上图中的橙色球。仔细检查后,可以看到点云中存在偏移。

我想知道,为什么存在这种转变以及如何消除/最小化它?任何解决方法,请。

0 投票
2 回答
336 浏览

c# - Sending Kinect Body[] data over MQTT

I am trying to send Microsoft's Kinect v2 body data over MQTT to effectively map skeletal data without direct connection to the Kinect, but I can't seem to deserialize a Body[] correctly. I am publishing the a list of Bodys every frame in Update().

My current setup is using Newtonsoft's JSON.Net to serialize a List taken from Body[] and publish it to MQTT (using https://github.com/vovacooper/Unity3d_MQTT). I used this since the Body class isn't serializable (so I can't use JSONUtility?).

Essentially I have:

And:

When the List is empty, I am able to receive an empty List of Bodys. When it is nonempty, the code halts for that method, and I am no longer able to receive messages at all. The Update() method still works properly.

I would appreciate it if anybody knows how to help with what I currently have, or suggest a better alternative to my problem.

0 投票
0 回答
484 浏览

git - 构建 libfreenect2 时找不到 LibUSB

当我按照https://github.com/OpenKinect/libfreenect2上的说明在 Windows 10 上安装 libfreenect2 时。我无法构建 libUSB 相关文件。

最初,我使用 git 安装了 libUSB,但收到以下消息(但未显示为错误)

然后我使用 CMAKE 构建整个项目,但出现以下错误。

我曾尝试使用 Visual Studio 使用 .sln 文件构建 libUSB,但结果相同。

我已经尝试了所有我知道的方法,但它仍然可以找到我构建的 libUSB 文件。

提前感谢您的回答。

真挚地

0 投票
1 回答
373 浏览

c++ - 如何使用 Kinect SDK 有效地将单个 ColorSpacePoint 映射到 CameraPoint?

我试图从 RGB 流中简单地获取给定 2D ColorSpacePoint的 3D CameraSpacePoint位置。

查看CoordinatorMapper 方法,从颜色坐标映射的唯一方法是:

MapColorFrameToDepthSpace 将帧从颜色空间映射到深度空间。 MapColorFrameToDepthSpaceUsingIBuffer 将帧从颜色空间映射到深度空间。 MapDepthFrameToCameraSpace将帧从深度空间映射到相机空间。 MapDepthFrameToCameraSpaceUsingIBuffer将帧从深度空间映射到相机空间。

问题是,在我的旧 PC 上,当我尝试使用 MapColorFrameToDepthSpace 时,速度从 ~33fps 下降到 ~10fps。我猜想将 1920x1080 点从 2D 转换为 3D 需要一段时间,但我希望有更快的方法,因为我需要为我的应用程序转换一个点。甚至 SDK 示例(c++ 和 c#)也以 ~1fps 的速度运行,用于颜色到相机的转换演示。

即使我使用MapDepthFrameToCameraSpacethen MapDepthPointToCameraSpace,当我只需要一个点时,它仍然会将整个深度帧转换为相机空间。

有没有办法将单个 ColorSpacePoint 转换为 CameraPoint ?如果有怎么办?否则我怎么能加速 ColorSpace 到 CameraSpace 的映射?

是否有任何其他 SDK(libfreenect2 等)提供更有效的方法来检索颜色流上某个位置的深度?

0 投票
0 回答
593 浏览

c# - C# 和 Kinect v2:将 Kinect 点云与 3D 对象的点云合并

目前,我正在开发一个 C# 项目,以合并可以使用 Kinect SDK 从 Kinect-v2 设备检索的颜色和深度信息,以及可以从 3 维对象文件(.obj、. stl,等等..)。因此,我想创建一个包含两者信息的像素点云——来自 Kinect 设备的坐标和颜色信息以及来自目标文件的信息。

到目前为止我做了什么?

  • 我设法设置了两个像素数组Pixel[]来保存所需的数据(X/Y/Z 坐标,以及相关的颜色信息 RGB)。
  • 一个数组包含 Kinect 数据,而另一个数组包含
    目标文件的数据。

    /li>

为了获取颜色和深度信息并设置 Kinect-array,我首先使用 Kinect-SDK 的MultiSourceFrameReader类来获取一个MultiSourceFrame..

..这样我就可以在此之后获取颜色/深度帧:

通过这些方法.CopyConvertedFrameDataToArray().CopyFrameDataToArray()我得到了 RGB 和深度信息的帧数据,然后使用's方法将其映射到一个CameraSpacePoint[]数组,以提取相机空间内的 X/Y/Z 坐标。使用这个数组和帧数据,我可以设置包含“Kinect-pointcloud”所有信息的数组。CoordinateMapper.MapColorPointsToCameraSpace()Pixel[]

为了为 3D 对象设置“点云”,我使用了第 3 方库来加载对象并提取其 X/Y/Z 坐标和颜色信息。

下一步
我的下一步是合并这两个点云,但那是我被卡住了。我必须以某种方式映射或调整一个点云的 3D 信息 (X/Y/Z) 的大小,以便它适合另一个点云的 3D 信息,因为它们的缩放比例不同。这导致了我的问题:

我的问题

  • 如何缩放对象点云以使其适合 Kinect 点云?
  • 如何找出对象的哪个像素覆盖了 Kinect 点云中的像素?(生成的点云不应改变其 1920*1080 像素的大小)
  • 有没有图书馆能够做到这一点?

附加信息
Kinect 点云中的坐标如下所示:
- X:1.4294..
- Y:0.9721..
- Z:2.1650..


3D 对象内的坐标如下所示:
- X:0.8331..
- Y:-16.0591..
- Z:26.8001..

0 投票
1 回答
1083 浏览

c# - C# 和 Kinect v2:获取适合深度像素的 RGB 值

我使用 Kinect v2 和 C# 进行了一些尝试,并尝试获得一个 512x424 像素大小的图像数组,其中包含深度数据以及相关颜色信息 (RGBA)。

因此,我使用该MultiSourceFrameReader课程接收 a MultiSourceFrame,从中获得了ColorFrameand DepthFrame。通过这些方法ColorFrame.CopyConvertedFrameDataToArray()DepthFrame.CopyFrameDataToArray()我收到了包含颜色和深度信息的数组:

现在我必须将位于 ColorFrame-data-array 中的颜色四元组映射到 DepthFrame-data-arraycFrameData的每个条目,dFrameData但这就是我卡住的地方。输出应该是一个数组,它是数组大小的 4 倍 (RGBA/BGRA),dFrameData并且包含深度帧每个像素的颜色信息:

有没有人有什么建议?

我还查看了 Kinect-SDK 的 CoordinateMappingBasics 示例,但他们对我已经开始工作的 1920x1080 像素大小的图像进行了反之亦然。

编辑
我认识到我应该能够通过使用ColorSpacePoint包含特定颜色像素的 X 和 Y 坐标的 -struct 来获取映射的颜色信息。因此,我设置了诸如..

.. 并尝试访问颜色信息,如 ..

..但我仍然得到错误的颜色。大多是白色的。

0 投票
0 回答
531 浏览

opencv - 将 OpenCV Mat 转换为 Libfreenect2 框架以进行注册

我需要使用 libfreenect2 registration::apply 与颜色/深度图像重建 PointCloud。问题是我将颜色和深度图像预先保存为 PNG 文件。颜色和深度图像都是使用 libfreenect2::Frame 获得的,并转换为 OpenCV Mat 用于 imwrite。

我尝试了以下方法来获取我的颜色框架并且它可以工作。问题是当我尝试对深度图像做同样的事情时,问题就出现了。

我通过为 rgb 和深度重新转换 libfreenect2::Frame 来测试 cv::Mat 到 libfreenect2::Frame 的转换,虽然我为 rgb 获得了相同的图像,但深度图像并非如此。

深度图像 - 加载并转换为 32FC1 深度图像 - 加载并转换为 32FC1

深度图像 - 转换为帧并重新转换回来后 深度图像 - 转换为帧并重新转换回来后

感谢您提供的任何帮助,请提供任何反馈,因为这是我第一次在这里发布问题。

0 投票
1 回答
65 浏览

kinect - 如何从 Kinect 骨架中获得近似的上身体积?

我想用 Kinect 做一个试衣间应用程序。由于我需要测量球员的服装尺寸(S、M、L、XL),我必须仅使用其骨架(不使用深度数据)来获得球员上半身的“近似”质量。我不需要非常精确的计算。