【问题标题】:kinect hand and finger trackingkinect 手和手指追踪
【发布时间】:2013-11-14 13:23:48
【问题描述】:

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

  1. 追踪手部轮廓
  2. 使用凸包或k曲率算法查找指尖

这是正确的吗? 如果有人可以提供有关如何跟踪轮廓的教程,因为我找不到任何好的。

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


编辑

经过一些工作,我能够使用 sobel 边缘检测来检测图像中手的边缘。但正在降低我的fps。有什么办法可以提高它的性能?? 然后如何从检测到的边缘获取轮廓以执行手指检测?可以直接在边缘做吗?

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

【问题讨论】:

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


    【解决方案1】:

    一种非常简单的方法,我已在安装中成功实施,即简单地寻找最接近 Kinect 的像素,并假设这是手指。

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

    【讨论】:

    • 你能解释一下关于消除噪音的更多信息吗?我目前正在做的是找到最近的像素,并允许所有像素距离它 10 厘米,但它会不断拾取一些随机噪声。我怎样才能删除它?
    • 噪音是否会影响您的跟踪点或最近像素的阈值?无论哪种方式,您都需要实施一个系统来检查指定数量的帧(3-5 应该足够)并尝试忽略超出预期范围的值。这有帮助吗?
    【解决方案2】:

    手指跟踪是一个巨大的话题。 Anselan 为您提供了从 kinect 跟踪最近手指的指尖的简单解决方案,但仅此而已 - 没有冒犯的意思。如果 Kinect 设置的角度不好,因此它会在您的手指之前看到您的手掌,如果手指直接指向 Kinect 也不会起作用(然后深度图将是黑色的)

    Candescent NUI 是一个 .NET/KinectSDK 项目,可以“安静地”进行手指跟踪。我不是 .NET 专家,但我可能会看看它,因为我在 C/C++ 中找不到任何可以完成这项工作的东西,如果你找到了,请告诉我。顺便说一句,它还有一个(封闭源代码)英特尔项目,看起来很有希望,但出于营销原因,它仅适用于 Creative 相机

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多