logo资料库

OpenNI_用户手册中文版.pdf

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
用户手册 用户手册 用户手册 用户手册 翻译:风萧萧 freddychu@gmail.com www.niopen.com OpenNI 用户手册 1
目录目录目录目录 3.3 3.2 1 许可声明 ................................................................................................................................... 3 2 概述........................................................................................................................................... 3 Natural Interaction 体感 ............................................................................................... 3 2.1 2.2 什么是 OpenNI? ......................................................................................................... 3 2.3 抽象分层视图 ............................................................................................................... 4 3 概念........................................................................................................................................... 4 3.1 模块 Modules ............................................................................................................... 4 Production Nodes 生产节点 ......................................................................................... 5 Production Chains 生产链 ........................................................................................... 8 Capabilities 能力 .......................................................................................................... 9 3.4 3.5 生成和读取数据 ........................................................................................................... 9 3.6 Mock Nodes 模拟节点 .............................................................................................. 10 3.7 在应用和锁节点间共享设备 ..................................................................................... 10 Licensing 授权 ............................................................................................................ 11 3.8 3.9 通用框架实用程序 ..................................................................................................... 11 3.10 记录器 ..................................................................................................................... 11 3.11 生产节点的错误状态 ............................................................................................. 12 4 向后兼容 ................................................................................................................................. 12 5 准备开始 ................................................................................................................................. 12 5.1 支持平台 ..................................................................................................................... 12 5.2 Main Objects 主要对象 ............................................................................................. 12 OpenNI 用户手册 2
1 许可声明 许可声明 许可声明 许可声明 OpenNI遵循GNU通用公共许可证编写和分发,这意味着它的源代码是可自由 分发的,也可提供给一般公众。 您可以遵循自由软件基金会(Free Software Foundation)发表的GNU宽通用公共许可 证,版本3或者以后的任何版本,来重新分发和/或修改OpenNI。 OpenNI可自由分发,基于希望对你有用,但没有任何保证,甚至没有适销性或针 对特定目的的隐含保证。更多细节请参阅GNU通用公共许可证: . 2 概述概述概述概述 2.1 Natural Interaction 体感体感体感体感 Natural Interaction (NI)这个词是一个基于人体感官的人机概念,主要关注听觉 和视觉。人机交互设备的例子诸如外围设备包括遥控器、键盘或鼠标等外围设备。 日常使用的例子包括: 语音和命令识别,通过设备接收声音命令的指示。 手势,识别预先定义的手势,激活和控制设备。例如,手势控制使用户能够 管理客厅里用手玩的消费电子产品。 身体运动跟踪,为了游戏而对全身运动进行跟踪、分析和解析。 2.2 什么是什么是什么是什么是 OpenNI???? OpenNI (Open Natural Interaction)是个多语言、跨平台的框架,定义了一组为开发使 用Natural Interaction程序的API。OpenNI APIs有一组开发体感应用的接口。OpenNI的主 要目的是建立一个双方通信的标准:  视觉和音频传感器(这些设备可以看到和听到轮廓及其周围环境) 视觉和音频感知中间件(这些软件组件能够分析并且理解传感器记录的音频和视频 数据) OpenNI提供一套由传感器设备实现的接口和一套由中间件实现的接口。通过分 离传感器和中间件的依赖关系,OpenNI’s API能够让应用程序轻松地在不同的中间件 模块上编写和移植(一次编写,到处部署)。OpenNI’s API 也能让中间件开发人员 编写基于原始的数据格式,不必考虑是哪种传感器设备产生的,让传感器生产厂商 有能力生产支持任何兼容OpenNI框架的应用程序。 OpenNI标准API能够使体感应用开发者通过使用数据类型来跟踪现实(三维)的场 景,这些类型都是通过传感器的输入数据来计算的,比如:完全肢体展现,一组深度像 OpenNI 用户手册 3
素数据等)。应用程序的编写不必考虑传感器和中间件的提供者。 OpenNI是一个开源的API,发布在:www.OpenNI.org 2.3 抽象抽象抽象抽象分层分层分层分层视图视图视图视图 图1展示了一个OpenNI概念的三层视图,每层都是一个不可缺少的部分:  顶层:展示了基于 OpenNI 实现体感的应用程序。  中间层:展示了 OpenNI,提供传感器和中间件组件之间交互的接口,中间件分析 传感器数据。  底层:展示了捕捉视觉和声音场景元素的硬件设备。 图 1 3 概念概念概念概念 3.1 模块模块模块模块 Modules OpenNI框架是个提供了物理设备和中间件组件的一个抽象层。API能够让众多组件 在OpenNI框架中注册。这些组件被称为模块,被用来生成和处理感官数据。选择或者指 定硬件设备组件或中间件组件非常容易和灵活。 目前支持的模块包括: 传感器模块  3D sensor 三维传感器  RGB camera RGB 摄像头 OpenNI 用户手册 4
IR camera 红外摄像头   Audio device 音频设备(一个或多个麦克风) 中间件组件  全肢体分析中间件 全肢体分析中间件:是一个处理感官数据,生成肢体相关信息(常见的数据结构如 全肢体分析中间件 全肢体分析中间件 关节、方向、重心等)  手心手心手心手心分析中间件 分析中间件:是一个处理感官数据和生成手心的位置信息的软件组件。 分析中间件 分析中间件  手势探测中间件 手势探测中间件:是一个分辨预定义的手势(如挥手)和提醒应用程序的软件组件。 手势探测中间件 手势探测中间件  场景分析中间件 场景分析中间件:是一个分析场景图像的软件中间件,产生如下信息: 场景分析中间件 场景分析中间件  场景的前景(轮廓)和背景的分离。  平面图的坐标  场景中独特轮廓的识别 举例 下图显示了在OpenNI注册的5个模块协同工作的场景。两个模块是连接到主机的三维传 感器。另外三个是中间件组件,包括两个组件处理全肢体的数据,一个组件处理手心轨 迹。 希望和OpenNI兼容的模块,不论是软件或设备,必须实现特定的接口。 Figure 2 3.2 Production Nodes 生产节点 生产节点 生产节点 生产节点 OpenNI定义了生产节点 生产节点,它具有拥有能在生成体感要求的数据过程中充当生产性角 生产节点生产节点 色的一套单元。每个生产节点都能够使用其他更低级的生产节点(读数据,控制配置等), OpenNI 用户手册 5
也能够被其他高级节点或本应用程序使用。 举例: 应用程序想跟踪在三维场景中手指的动作轨迹。这要求一个生产节点生成肢体数据, 也叫user generator用户生成器 用户生成器。这个用户生成器从depth generator深度生成器 深度生成器获得数 深度生成器深度生成器 用户生成器用户生成器 据。深度生成器是由传感器实现的生产节点,它从深度器件获取原始数据(如每秒X 帧的流)并且输出深度图。 “有意义的”三维数据被定义为能够理解、明白、翻译场景的数据。生成有意义的三 维数据是个复杂的任务。一般先使用传感设备生成原始数据的一种格式。通常,这 个数据是深度图,图中每个像素点都通过与传感器的距离来表示。专门的中间件用 来处理这些原始数据输出,生成更高层的输出,这些输出能够被应用程序使用。 通常的高层输出的例子在下图描述和展示:  用户手的位置。 输出可以是手掌心(常被称为手心)或手指尖。  场景中体型的识别。输是时体型的关节的当前位置和方向(常常称为‘肢体数据’) Figure 3  手势识别(例如:挥动)。当特定手势发生时,输出是一个对应用程序的提醒。 Figure 4 OpenNI 用户手册 6
生产节点类型 生产节点类型 生产节点类型 生产节点类型 在OpenNI中每个生产节点都有一个类型,属于下列分类之一: Figure 5  传感器相关生产节点  中间件相关生产节点 当前在OpenNI中支持的生产节点类型是: 传感器相关的生产节点 传感器相关的生产节点 传感器相关的生产节点 传感器相关的生产节点  设备设备设备设备:这种节点是物理的设备(例如:深度传感器,或者RGB摄像头)。这个 节点的主要角色是使设备可配置。  深度生成器 深度生成器:这种节点能够生成深度映射。它应该被任何希望通过OpenNI认证 深度生成器 深度生成器 的三维传感器实现。  图图图图像生成器 像生成器:这种节点能够生成彩色图像映射。它应该被任何希望通过OpenNI 像生成器像生成器 认证的才是传感器实现。  红外生成器 红外生成器:这种节点能够生成红外图像映射。它应该被任何希望通过OpenNI 红外生成器 红外生成器 认证的才是传感器实现。  音频生成器 音频生成器:这种节点产生音频流。它应该被任何希望通过OpenNI认证的才是 音频生成器 音频生成器 传感器实现。 中间件相关的生产节点 中间件相关的生产节点 中间件相关的生产节点 中间件相关的生产节点  手势告警生成器 手势告警生成器:当特定手势被识别能够回调应用程序。 手势告警生成器 手势告警生成器  场景分析器 场景分析器:分析一个场景,包括前景从背景分开,识别场景中的体型,发现 场景分析器 场景分析器 平面图。场景分析器的主要输出是标记的深度映射,每一个像素都包含一个标 签,指明是体型还是背景的一部分。  手心手心手心手心生成器生成器生成器生成器:支持手的发现和跟踪。这个节点当发现一个手心(手掌),或者 当手心被跟踪时,位置发生了变化,就产生一个回调事件。  用户生成器 用户生成器:生成一个在三维场景中的全部或部分肢体图画。 用户生成器 用户生成器 对于记录目的,以下产品节点被支持:  记录器记录器记录器记录器::::实现数据记录。  播放器播放器播放器播放器::::从记录里读取数据并且播放它。  编码器编码器编码器编码器::::用来压缩和解压缩记录中的数据 OpenNI 用户手册 7
3.3 Production Chains 生产链生产链生产链生产链 如前所述,几个模块(中间件组件或者传感器)能够同时注册到一个OpenNI实现中。 这个拓扑给应用程序提供了灵活性,让它们选择特定的传感设备和中间件组件来生成和 处理数据。 什么是生产链 什么是生产链???? 什么是生产链 什么是生产链 在生产节点章节,一个例子是应用程序产生了用户生成器类型的生产节点,这个生产节 点使用低层的深度生成器,从传感器读取原始数据。在下面的例子中,节点顺序(用户 生成器到深度生成器)是相互依赖的,以产生所需的肢体数据,被称为生产链生产链生产链生产链。 不同的厂商(品牌名)能够对同样的生产节点提供自己的实现。 例子: 品牌A 提供一个用户生成器中间件实现(模块)。品牌B提供另外一个实现用户生 成器的中间件。两个生成器都是和应用开发者。OpenNI让应用定义使用哪个模块,或者 说生产链生产链生产链生产链。OpenNI接口根据已注册模块列出所有可能的生产链。应用可以基于对特定的 品牌、组件、或版本等,来选择其中一个生产链并生成它。 注意注意注意注意:应用程序也可以不指定,使用OpenNI列出的第一个生产链。 通常情况下,应用程序只对生产链的顶部的生产节点感兴趣。这个节点输出实际层 面上需要的数据,例如,手心生成器。OpenNI能够让应用只使用单一节点,而不用了解 该节点下面的生产链。对于高级调整,有选项可以访问生产链和配置每一个节点。 例如,如果我们看过前文展示的系统插图,它描述了多个已注册的模块和设备。一 旦应用程序需要一个用户生成器,OpenNI就返回以下四个可选的生产链来获得肢体数据: 这个插图显示了四个可选的生产链,每个生产链都是一个肢体中间件组件和三维传感器 一个可能组合,OpenNI为应用提供了选项去选择以上四个备选生产链。 Figure 6 OpenNI 用户手册 8
分享到:
收藏