我目前正在使用提供深度图的处理 Kinect 库。我想知道如果可能的话,我怎么能用它来创建一个 2D 骨架。不在这里寻找任何代码,只是我可以用来实现这些结果的一般过程。
另外,鉴于我们目前在几款 Kinect 游戏中都看到了这一点,让多个骷髅同时运行会很困难吗?
我目前正在使用提供深度图的处理 Kinect 库。我想知道如果可能的话,我怎么能用它来创建一个 2D 骨架。不在这里寻找任何代码,只是我可以用来实现这些结果的一般过程。
另外,鉴于我们目前在几款 Kinect 游戏中都看到了这一点,让多个骷髅同时运行会很困难吗?
免责声明:您仍然没有得到这个问题的答案的原因可能是因为这是当前的研究问题。所以我不能给你一个直接的答案,但会尝试为这个主题提供一些信息和有用的资源。
从深度图创建骨架主要有两种不同的方法。第一个是使用机器学习,第二个是纯粹的算法。
对于机器学习,你需要很多人做预先确定的动作的样本,并使用这些样本来训练你最喜欢的学习算法。这就是微软在 XBox 中采用和实施的方法(来源),它工作得非常好,但是你需要数百万个样本才能使其可靠......这是一个很大的缺点。
“算法”方法(无需使用训练集即可理解)可以通过多种不同方式完成,并且是一个研究问题。它通常基于对可能的身体姿势进行建模并尝试将其与接收到的深度图像相匹配。这就是 PrimeSense(kinect 深度相机技术背后的人)为其骨骼跟踪工具 NITE 选择的方法。
OpenKinect社区维护着一个 wiki,他们在其中列出了一些关于该主题的有趣研究材料。您可能还对OpenNI 邮件列表上的这个主题感兴趣。
如果您正在寻找骨架跟踪工具的实现,PrimeSense 发布了 NITE(封闭源代码),这是他们制作的:它是OpenNI 框架的一部分。这就是您可能看过的大多数涉及骨骼跟踪的视频中使用的内容。我认为它最多可以同时处理 2 个骨架,但这需要确认。
The best solution is to use FAAST (http://projects.ict.usc.edu/mxr/faast/) which requires OpenNI. I have struggled to get OpenNI to work on my computer. I have not seen an approach yet using Code Laboratories' CL NUI.
一种算法方法是http://code.google.com/p/skeletonization/但您可能会遇到问题,因为您的深度图仅表示表面而没有闭合对象。