【问题标题】:How to efficiently map a single ColorSpacePoint to a CameraPoint using the Kinect SDK?如何使用 Kinect SDK 有效地将单个 ColorSpacePoint 映射到 CameraPoint?
【发布时间】:2018-02-21 00:30:46
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • @HansPassant 非常注意,但这并不意味着传感器仍然不能成为有用的工具
  • 我们不想误导其他程序员这仍然是可行的,不是吗?已发布通知。
  • 是的。我仍然希望有大量的媒体和装置艺术家、计算机视觉和机器人研究人员等使用 Kinect,并且可能仍然使用它并发现它有用(即使没有微软的支持)。如果 Microsoft Kinect SDK 之外还有其他选项,我也很感兴趣

标签: c++ optimization kinect-sdk kinect-v2 libfreenect2


【解决方案1】:

我已经使用开源库 PCL 与 RGDB 相机一起使用(尽管是英特尔 realsence)。这可能值得一试。不过,我不确定它在你的笔记本电脑的限制下能有多好。

【讨论】:

  • 感谢您的提示。您是否测试过使用带有 PCL 的 kinect 2 根据颜色流位置检索深度点?
  • 就我个人而言,我还没有这样做,但我认为如果您正在寻找替代方案,那么值得一试。它与我使用的 rgdb 相机配合得很好,我在网上看到了一些关于如何让它与 kinect 一起工作的教程,所以它应该不会太糟糕。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-31
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
相关资源
最近更新 更多