我正在考虑在我的一个项目中使用 Kinect,但我完全迷失在所有库之间。不知道具体是什么。最重要的是,我正在阅读有关 OpenNI 和 OpenKinect 的内容。但不知道他们的关系/差异。PS。我正在使用 Ubuntu 或 Mac。
4 回答
OpenKinect是一个人的社区,而不是一个图书馆。OpenKinect 社区发布了libfreenect Kinect 驱动程序。libfreenect 和 OpenNI+SensorKinect 是两个相互竞争的开源库/驱动程序。libfreenect(Apache 2.0 或 GPLv2)源自初始的、反向工程/破解的 Kinect 驱动程序,而 OpenNI+SensorKinect 源自开源 (LGPL) PrimeSense 代码。
这两个项目都可以在 Windows、Linux (Ubuntu) 和 Mac OS X 上运行。这两个项目都允许您访问来自相机的颜色和深度图像。项目不兼容,不能同时使用。
库之间的区别在于电机控制(libfreenect 有,OpenNI+SensorKinect 没有),以及与 NITE 中间件集成以支持更高级别的 NUI(仅限 OpenNI+SensorKinect)。这些差异倾向于将项目推向其中一个库。
我应该补充一点,OpenNI 2 使 OpenNI 无法用于 Windows 以外的任何其他设备。
其他平台并未正式支持带有 Kinect 的 OpenNI 1.x,直到一个名叫 avin2 的人创建了 SensorKinect 项目,该项目位于 OpenNI 之上并将 Kinect 的接口暴露给 OpenNI。OpenNI 2.0 是一个重大的重构,除了 Windows 之外的 Kinect 不支持任何其他东西。http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/a11ff6d9-7fbe-4636-8ff0-92d6220ac3f8/。在撰写本文时,OpenKinect 的最新 kinect(型号 1473)存在问题,导致设备无法使用。我不知道是否正在修复。
因此,总结一下: -- 如果设备型号 1473 的问题解决了,那么 OpenKinect 就是要走的路。而且,坦率地说,我不会相信针对特定平台的任何其他东西。-- 在解决这个问题之前,你唯一的选择是使用 OpenNI 1.5 + SensorKinect,它已经过时,并且它的开发已经停止,但实际上它是唯一适用于所有 kinect 模型的东西。
虽然这个问题是几年前的问题,但我想补充一些我知道的东西。
我非常业余,因此让 Kinect 在 Mac 上工作对我来说总是很困难。我从 github 下载了代码并遵循了多个说明,但我无法让它正常工作。我记得,大约 10 个月前,我在 Mac 上获得了 Kinect、OpenNI 工作,但它非常不稳定。glview 示例程序确实显示了来自 Kinect 的深度和彩色图像,但它时不时地失败。
最近,我发现一个人为 openni(1 和 2)创建了一个自制公式,以及 NiTE 和 libfreenect。我试过了,它在 Mavericks 10.9.2 + 10.9.3 上完美运行,所以如果你还没有让 Kinect 正常工作,请查看: https ://github.com/totakke/homebrew-openni
在撰写本文时,OpenNi 与 Kinect for Windows 兼容,而 libfreenect 则不兼容。