kinect手和手指跟踪

时间:2013-11-14 13:23:48

标签: image-processing kinect processing contour edge-detection

作为我项目的一部分,我必须使用kinect实现手部和手指跟踪。 从我到目前为止所读到的基本方法是:

  1. 追踪手的轮廓
  2. 使用凸包或k曲率算法找到指尖
  3. 这是对的吗? 如果可以,有人可以提供关于如何追踪轮廓的教程,因为我找不到任何好的。

    还有其他方法可以追踪手和手指吗?


    修改

    经过一些工作后,我能够使用索贝尔边缘检测来检测图像中的手部边缘。但是减少了我的fps。有没有办法改善其性能? 然后我如何从检测到的边缘获取轮廓以执行手指检测?可以直接在边缘完成吗?

    抱歉这么多问题,但我是所有这些新手

2 个答案:

答案 0 :(得分:0)

我在安装中成功实现的一种非常简单的方法是简单地查找与Kinect最近的像素,并假设这是指向手指。

我的算法是这样的: (1)将X和Y裁剪到特定的感兴趣区域,您不希望任何外来物体进入场景(家具,墙壁,地板等) (2)排除落在特定深度范围之外的所有像素(没有太近,没有任何超出您想要关注的跟踪区域,用户可以站在哪里) (3)选择深度图中当前最近(最亮)像素的任何一个,并将其设置为阈值。从该阈值向后(远离传感器)工作,直到某个距离范围(可能是几厘米)。 (4)检查生成的blob的大小。如果它太小,它可能只是噪音。如果它太大,它比手指或手大,所以它可能是整个身体(手不向传感器延伸),所以忽略它。 (5)假设blob通过了上述所有内容,请跟踪它。

答案 1 :(得分:0)

手指跟踪是一个很大的话题。 Anselan为你提供了一个简单的解决方案来跟踪最接近kinect手指的指尖,但就是这样 - 没有任何冒犯意味着。如果Kinect设置在一个较差的角度,它将无法正常工作,因此它会在您的手指前看到您的手掌,如果手指直接指向Kinect(深度贴图将为黑色)

Candescent NUI是一个.NET / KinectSDK项目,可以进行手指跟踪“安静”。我不是.NET专家,但我可能会看一下因为我找不到C / C ++中的任何工作,如果你发现了什么,请告诉我。顺便说一下,还有一个(闭源)英特尔项目,它看起来不仅很有前途,但它仅适用于Creative摄像机,因为市场营销原因