如何检测Kinect中的运动?

时间:2012-06-12 05:31:21

标签: kinect projector

我即将开始使用Kinect开发,并希望有人可以深入了解以下内容。

我希望在投影机下方的天花板上安装一个kinect。投影机将显示带有鱼的池塘(类似于Microsoft Windows 7 Touch包)。

然后,我希望能够发现人们进出投影的动作,并添加涟漪或移动鱼等。

我不需要跟踪人物形状,只需知道它们是否在框架中以及它们在哪里。事实上,如果有人在足球场上滚动,我很乐意跟踪它。

我将在接下来的几天内让自己成为Kinect,但如果有人知道这是不可能的,请告诉我。如果可能,那么任何启动我的指针都会很棒。

谢谢, 帕特里克。

2 个答案:

答案 0 :(得分:1)

在开始之前,您需要决定使用哪种软件来访问Kinect。最受欢迎的两个选择是:

还有libfreenect,但它只提供原始深度数据,在我看来,比上面的两个更难使用。

Kinect for Windows SDK和OpenNI都提供骨架跟踪,这是一种非常方便的方法,可以详细检测用户及其身体部位的位置。但是,对于您的项目,骨架跟踪很可能无法正常工作,因为Kinect安装在天花板上并指向下方。所提供的跟踪算法在直接面向用户时最有效,并且如果大部分身体都可见(f

除外)

对于您的项目,您可能根本不需要骨架跟踪(可以在Kinect for Windows SDK / OpenNI中取消激活)。我能想到的一个方法是:

  1. 在应用程序开始时,通过测量从Kinect到曲面的距离来校准您的软件,您将在其中投影图像。
  2. 对于从Kinect收到的每个新深度帧,您可以检查当前帧和校准帧之间的差异。如果当前帧中有一块比传感器更接近传感器的像素,则可以假定它是一个物体。
  3. 当然,Kinect的深度测量并不完美。您必须提供某种错误纠正以过滤误报。

    使用这种方法,您将能够检测到坐在表面上或在表面上移动的大多数物体。

答案 1 :(得分:0)

我宁愿将传感器放在靠近天花板的一面墙上,而不是直接指向天花板的天花板上,这样你就可以拥有更好的视野,你仍然可以使用骨架/用户跟踪算法

请注意,传感器的最小距离约为50厘米,因此如果您的天花板较低,您可能会遇到传感器正下方的问题。

如果您使用OpenNI,您可以使用Nite的SceneAnalysis来跟踪人物,您可以轻松获得它们的重心。