最近在使用Kinect进行人机交互实验的设计开发,但对于到底使用基于PrimeSense 的openNI(open natural interaction)还是Microsoft的SDK进行开发并不是非常清晰,查阅了相关的一些资料,对两者的比较整理如下:
PrimeSense的OpenNI / NITE优点:
- 许可证包括商业用途
- 包括专人跟踪框架
- 包括手势识别框架
- 可以自动调整深度的图像流的彩色图像
-
全身追踪:
- 还可以计算为关节的旋转
- 支持手的唯一的模式
-
似乎比微软Kinect SDK的跟踪(不一样的测试基准),消耗更少的CPU电源
- 还支持PrimeSense的华硕WAVI Xtion传感器
- 虽然设置和枚举是一个有点古怪,支持多种传感器
- 支持Windows(包括Vista和XP),Linux和Mac OSX
- Unity3D游戏引擎的全力支持与代码
- 支持记录/回放/从磁盘
- 支持流化红外视频数据
-
当新的用户进入场景或离开场景,有事件产生
- 没有音频支持
- 不支持马达和倾斜(虽然可以同时使用CL - NUI电机驱动电机/倾斜)
-
全身追踪:
- 没有旋转的头部,手,脚,锁骨
- 需要校准的姿势开始跟踪(虽然它也可以保存/加载到/从磁盘重用)
-
闭塞的关节没有估算
- 虽然设置和枚举是一个有点古怪,支持多种传感器
- 三个单独的安装程序和一个NITE许可证字符串(尽管这个过程可以用我的马达驱动程序安装自动)
- SDK没有的事件,当新的视频或新的深度框架
微软的Kinect SDK(试用版)优点:
对比下来windows的SDK比较令人失望的地方在于:- 支持音频
- 支持马达及倾斜
-
全身追踪:
- 不需要校准姿势
- 包括头,手,脚,锁骨
-
似乎更好地处理与闭塞关节(occluded joints)
- 支持多个传感器
- 安装简单
-
一个新的视频或新的深度图像出现会触发一个SDK事件
- 许可用于非商业用途
- 只跟踪全身(无手的跟踪模式)
-
不提供的颜色和深度图像流相互对齐
- 虽然有功能以调整个人坐标
-
并且有迹象支持稍后可能会
-
全身追踪:
- 只计算关节的位置,不支持旋转
- 只跟踪充分的身体,没有upperbody或手的模式
-
似乎要消耗更多的CPU功率比OpenNI /NITE(不一样的测试基准)
- 没有手势识别系统
- 不支持PrimeSense的华硕WAVI Xtion传感器?(任何人都可以证实这一点吗?)
- 仅支持Win7的(X86和64位)
- 不支持Unity3D游戏引擎
- 没有内置的支持写到磁盘的记录/回放
- 不支持流化红外视频数据
- 当新的用户进入场景或离开场景,SDK没有事件产生
1. 没有手势识别!!
2.user进入和退出没有事件抛出。
3. 全身追踪cpu消耗大(这个可以忽略),骨骼只有位置没有旋转数据,不能追踪部分例如只是上半身或手。
另外有几条
4. 不支持unity3d sdk不支持本来没啥,但openni支持,这就有啥了。
5. 只支持win7系统。
6. 不支持红外视频数据流 。
7. 一定要.net4.0和vs2010。 CRT好累。