OpenNI UserGuide

         自从微软的kinect体感应器横空出世以后,关于OpenNI方面的开发渐渐多了起来,我也在前人研究的基础上简单的介绍一下OpenNI到底是个什么东东。

        OpenNI(Open Natural Interaction)是PrimeSense公司一个开源的开发库,是一个基于听觉和视觉方向的开发库。OpenNI提供一套由传感器设备实现的接口和一套由中间件实现的接口。通过分离传感器和中间件的依赖关系,OpenNI’s API能够让应用程序轻松地在不同的中间件模块上编写和移植(一次编写,到处部署)。OpenNI’s API 也能让中间件开发人员编写基于原始的数据格式,不必考虑是哪种传感器设备产生的,让传感器生产厂商有能力生产支持任何兼容OpenNI框架的应用程序。OpenNI标准API能够使体感应用开发者通过使用数据类型来跟踪现实(三维)的场景,这些类型都是通过传感器的输入数据来计算的,比如:完全肢体展现,一组深度像素数据等)。应用程序的编写不必考虑传感器和中间件的提供者。

关于Application、OpenNI、hardware之间分层关系:


目前OpenNI支持的硬件模块:

 1、3D sensor 三维传感器

 2、RGB camera RGB 摄像头

 3、IR camera 红外摄像头

 4、Audio device 音频设备(一个或多个麦克风)


中间组件:

1、全肢体分析中间件:是一个处理感官数据,生成肢体相关信息(常见的数据结构如关节、方向、重心等)
2、手心分析中间件:是一个处理感官数据和生成手心的位置信息的软件组件。
3、手势探测中间件:是一个分辨预定义的手势(如挥手)和提醒应用程序的软件组件。
4、场景分析中间件:是一个分析场景图像的软件中间件,产生如下信息:
   (1)场景的前景(轮廓)和背景的分离
   (2) 平面图的坐标
   (3)场景中独特轮廓的识别


传感器相关的生产节点

 1、设备:这种节点是物理的设备(例如:深度传感器,或者RGB摄像头)。这个节点的主要角色是使设备可配置。

 2、深度生成器:这种节点能够生成深度映射。它应该被任何希望通过OpenNI认证的三维传感器实现。

 3、 图像生成器:这种节点能够生成彩色图像映射。它应该被任何希望通过OpenNI认证的才是传感器实现。

 4、红外生成器:这种节点能够生成红外图像映射。它应该被任何希望通过OpenNI认证的才是传感器实现。

 5、音频生成器:这种节点产生音频流。它应该被任何希望通过OpenNI认证的才是传感器实现。


中间件相关的生产节点

 1、手势告警生成器:当特定手势被识别能够回调应用程序。

 2、场景分析器:分析一个场景,包括前景从背景分开,识别场景中的体型,发现平面图。场景分析器的主要输出是标记的深度映射,每一个像素都包含一个标签,指明是体型还是背景的一部分。

 3、手心生成器:支持手的发现和跟踪。这个节点当发现一个手心(手掌),或者当手心被跟踪时,位置发生了变化,就产生一个回调事件。

 4、用户生成器:生成一个在三维场景中的全部或部分肢体图画。


OpenNI目前支持的能力

1、替换视图:让任何类型的映射生成器(深度、图像、红外)能够转换它的数据,显得仿佛传感器被放到了另一个位置(被另一个生产节点显示,通常是另外一个传感器)。

2、 裁剪:让一个映射生成器(景深、图像、红外)能够输出帧的可选区域而区别于整个帧。当具备裁剪能力是,生成的映射的尺寸被减少为适合更低的分辨率。例如,一个映射生成器工作在VGA分辨率(640x480),应用程序要裁剪在300x200,下    一个像素行从300像素后开始。裁剪在性能提升方面非常有用。

3、帧同步:让两个传感器产生帧数据(例如:深度、图像)能够同步他们的帧,以致他们同时到达。

4、镜像:让生成器能够生成的数据的镜像。如果传感器放在用户面前,传感器捕捉到的影像被镜像,镜像这时很有用,这样右手就   可以以镜像的体型中的左手出现了。

5、姿势检测:让用户生成器认出用户摆出的特定姿势。

6、 骨骼:让用户生成器能够输出用户骨骼数据。这个数据包括骨骼关节的位置,跟踪骨骼的位置的能力,用户校准的能力。

7、 用户位置:让深度生成器能够为场景的特定区域而优化输出特定深度映射。

8、锁发现:让节点能够被上下文边界锁定。详细信息,参考在应用和锁节点间共享设备


           其实OpenNI的属性在其官网上介绍远不止这么多,又苦于英文水平不佳(官网为英文档),所以介绍到这么多。

原文地址:https://www.cnblogs.com/leven20061001/p/2724716.html