使用Kinect进行3D对象跟踪检测

时间:2016-08-15 12:16:09

标签: opencv point-cloud-library kinect-sdk openkinect ofxkinect

我正在使用Kinect传感器来识别物体,以便获得物体的x,y,z坐标。

我正在尝试为此找到相关信息,但无法找到太多信息。我也看过这些视频,但没有人分享信息或任何示例代码? 这就是我想要实现的目标https://www.youtube.com/watch?v=nw3yix3XomY

可能很少有人可能会问同样的问题,但由于我是Kinect和这些图书馆的新手,因此我需要更多的指导。

我在某处读到使用Kinect v1无法进行物体检测。我们需要使用第三方库,如开放式CV或点云(pcl)。

有人可以帮助我,即使使用第三方库,我究竟能通过Kinect传感器识别物体吗?

这将非常有用。

谢谢。

1 个答案:

答案 0 :(得分:1)

作为您在评论中说明的视频的作者,在this PCL教程后面会对您有所帮助。正如您已经发现的那样,使用独立SDK可能无法实现这一点。依靠PCL将帮助您不再重新发明轮子。

这个想法是:

  1. 对云进行降采,以便在接下来的步骤中处理更少的数据(这也会降低噪音)。
  2. 识别关键点/要素(即点,区域,纹理对某些转换保持某种程度不变)。
  3. 计算关键点描述符,这些特征的数学表示。
  4. 对于每个场景关键点描述符,在模型关键点描述符云中找到最近邻居,并将其添加到对应关系向量中。
  5. 在关键点上执行聚类并检测场景中的模型。
  6. 教程中的软件需要用户手动输入模型和场景文件。它不会像您关联的视频那样在实时Feed上执行此操作。

    这个过程应该非常相似。我不确定检测的cpu密集程度,因此可能需要进行额外的性能调整。

    一旦你进行了逐帧检测,你就可以开始考虑实际跟踪帧中的对象了。但这是另一个话题。