【Kinect初步学习汇报】
Kinect是一款创新的体感设备,通过捕捉3D影像和人体骨骼信息,实现用户与数字世界的自然交互。本汇报主要对比了微软的Kinect SDK和OpenNI/NITE,并最终选择了OpenNI/NITE作为手势识别项目的开发工具。
1. Kinect 3D影像侦测与辨识技术
Kinect采用Light Coding技术而非TOF(Time-of-Flight)技术来获取3D深度信息。它通过发射近红外线,利用散斑图案对空间进行编码,然后由感应器接收并由芯片解码,从而生成具有深度信息的3D图像。此外,其骨架追踪系统能够识别并追踪人体关节,实现动作识别。
2. 技术指标
- 输出帧率:30Hz
- 分辨率:8-bit VGA(640 × 480 pixels)
- 识别范围:1.2–3.5 m(最佳),0.8–4 m(扩展)
- 视场角:水平57°,垂直43°
- 最多可识别两人,每人体内20组关节细节
- 自动追焦,通过底座马达左右旋转28度进行调整
3. 微软Kinect SDK (Beta) 安装与使用
- 开发环境:Windows 7 + Visual Studio 2010
- 支持的语言:VB.NET, C#, C++
- 添加引用:Microsoft.Research.Kinect
- 主要API:NUI初始化、关闭、传感器属性、图像相机、骨架API
- 示例程序:SkeletalViewer,使用Direct3D 9和GDI渲染图像
4. Kinect SDK (Beta) 优缺点
优点:
- 支持音频处理
- 支持马达驱动
- 全身追踪,无需额外校准
- 安装简单
- 提供视频或深度图更新事件
缺点:
- 不支持手势识别
- 骨架只有位置,无旋转数据
- 用户进出无事件通知
- 当前版本非商业用途
- 不支持红外视频流
- 仅兼容Windows 7,需.NET 4.0和VS2010
5. PrimeSense OpenNI/NITE 安装与使用
- OpenNI是跨平台的自然交互框架,提供API开发自然交互应用
- NITE是中间件,专注于用户行为和手势识别
- SensorKinect驱动:第三方修改版
- OpenCV库:Intel开发,用于计算机视觉功能如运动分析、跟踪、人脸识别等
在比较了两者后,由于Kinect SDK不支持手势识别,而OpenNI/NITE更适合手势识别项目的需求,因此选择了OpenNI/NITE进行开发。这将涉及OpenNI的配置、NITE中间件的学习以及SensorKinect驱动的整合,以便充分利用其提供的手势识别功能。
Kinect作为体感技术的代表,通过微软SDK和OpenNI/NITE等工具,为开发者提供了丰富的交互可能性。在未来的手势识别项目中,可以利用这些工具实现更为自然和精准的人机交互体验。