初探Kinect:OpenNI/NITE vs 微软SDK

5星 · 超过95%的资源 需积分: 0 42 下载量 143 浏览量 更新于2024-07-31 收藏 1.19MB PPTX 举报
"这篇文档是关于作者初次学习和探索Kinect设备及其开发工具的总结,主要对比了微软的SDK和OpenNI/NITE框架,并决定采用OpenNI/NITE进行手势识别项目开发。文中详细介绍了Kinect如何捕捉3D影像以及其工作原理,同时提及了微软Kinect SDK的安装和使用步骤,包括支持的开发语言、开发环境和API参考。" 在深入理解Kinect技术之前,我们首先需要知道它如何检测3D影像。Kinect不采用Time-of-Flight (TOF) 技术,而是利用LightCoding技术。这种技术基于激光光散斑,通过向测量空间发射连续的近红外光并对其编码。传感器捕获编码后的光线,然后由芯片解码,生成包含3D深度信息的图像。因此,Kinect能构建出环境的三维模型。 至于骨骼追踪系统,它是通过复杂的算法分析接收到的影像数据,识别出人体的关键关节位置,从而实现对动作的识别和追踪。微软Kinect的性能指标包括:30Hz的视频帧率,8位VGA分辨率(640x480像素),最佳识别距离为1.2-3.5米,可扩展至0.8-4米,视野范围为水平57°,垂直43°。系统能够同时追踪最多两个人,每人的20个关键关节。 微软的Kinect SDK(Beta)是开发者常用的一个工具,它支持Windows 7平台和Visual Studio 2010环境,提供了VB.NET、C#和C++的编程接口。在安装SDK后,开发者可以添加“Microsoft.Research.Kinect”引用,并利用提供的API,如NUI初始化、关闭、传感器属性、图像相机API和骨骼API等进行开发。例如,C++开发时需包含“MSR_NuiApi.h”,链接“MSRKinectNUI.lib”,并使用SDK的DLLs和命名空间。 在SDK中,有一个名为SkeletalViewer的示例,它使用了Direct3D9和Windows图形显示接口(GDI),展示了如何实时追踪和渲染骨骼信息。通过这些基础,开发者可以进一步构建复杂的交互应用,比如本文作者计划的手势识别项目。 OpenNI/NITE是PrimeSense公司提供的开源框架,它与微软的SDK相比,可能更适用于特定的场景和需求。作者在评估后决定采用OpenNI/NITE,这表明在手势识别方面,该框架可能提供了更适合的工具和算法。开发者可以继续研究这两个框架的特性,以便选择最适合自己的项目需求。