OpenNI
OpenNI(开放自然交互)是一个多语言,跨平台的框架,它定义了编写应用程序,并利用其自然交互的API。
OpenNI API由一组可用来编写通用自然交互应用的接口组成。OpenNI的主要目的是要形成一个标准的API,来搭建视觉和音频传感器与视觉和音频感知中间件通信的桥梁。
- 可以商用(不需要付费)
- 包含手部追踪框架
- 包含手势识别框架
- 可以自动对齐深度图数据到彩色图数据
- 全身追踪
- 包含坐标数据和旋转数据
- 支持特殊跟踪模式:例如:只追踪手和头或上半身
- 和微软的SDK相比消耗的CPU更少
- 支持Primesense和华硕的WAVI Xtion硬件平台
- su 支持Windows(包括Vista&XP&WIN7),Linux系统和苹果操作系统(翻者:也支持Android)
- 自带的代码全面支持Unity3D游戏引擎(翻者:也支持Ogre)
- 支持数据记录到硬盘或从硬盘回放数据
- 支持红外数据流
- SDK有此类发生事件,例如:当一个用户被侦测到或者用户丢失。(提供回调函数供开发者使用)
con: 缺点
- 不支持音频
- 不支持马达,既不支持kinect的转动
- 全身追踪
- 缺乏以下关节:头,手,脚,和锁骨
- 需要一个标定姿势(投降姿势)才能开始追踪骨骼(注意:标定数据是可以存储和提取的方便重用)
- 关节闭塞没有被估算
- 支持多感应器但是需要安装和枚举,这一点有点古怪。
- 需要单独安装NITE
- SDK没有此类发生事件,例如:当新的视频或者深度图数据有效时。(翻者:OpenNI提供了类似功能的函数可使用,虽然不是回调函数,但是也很好用)
Microsoft Kinect SDK
优点
- 支持音频
- 支持马达
- 全身追踪
- 不需要标定姿势(投降姿势)
- 包括头,手,脚和锁骨
- 看起来处理关节闭塞更好些
- 支持多传感器(多台Kinect)
- 简化安装(安装更容易)
- 当新的视频或深度图有效时,SDK会有可用事件
con: 缺点
- 非商用(商业需要付费)
- 只能追踪全身(不包含特定的追踪模式:例如只追踪手)
- 全身追踪
- 关节只有坐标数据,没有旋转数据
- 只能追踪全身,不包含特定的追踪模式:例如只追踪手或上半身
- 看起来更消耗CPU(没有采用适当的基准)
- 不包含手势识别系统
- 不支持PrimeSense和华硕的WAVI Xtion硬件平台
- 只支持Windows(32位和64位)
- 不支持Unity3D游戏引擎
- 不支持数据记录或回放到硬盘
- 不支持红外线视频数据流SDK
- 没有此类发生事件,例如当一个用户被侦测到或用户丢失等等。
平台上比较:
Kinect for Windows SDK 仅支持Windows 7/Windows 8 操作系统(PC平台为主,电视机,机顶盒等嵌入式平台为0)
OpenNI 支持大多数操作系统
OpenNI各版本之间的比较:
OpenNI 1.X 版本 支持大多数操作系统,支持Kinect/Xtion独立驱动
OpenNI 2.X 版本 支持大多数操作系统,支持Xtion独立驱动,Kinect则要靠Kinect for Windows SDK自带的驱动做桥接。
简单的说:
Kinect for Winows SDK 不允许非Kinect的摄像头使用。
OpenNI 2.X 不允许Kinect在非Windows操作系统上运行,其他体感摄像头支持良好。