是OpenNI?
OpenNI是一个开源框架,旨在促进自然交互(Natural Interaction, NI)与计算机之间的交互,特别是针对体感技术的应用。它为开发者提供了一个统一的API,使得创建和使用Kinect或其他兼容设备进行动作捕捉、手势识别和3D场景理解变得更加简单。OpenNI抽象了硬件的具体细节,允许开发者专注于应用层的创新,而不必关心底层传感器的复杂性。
2.3 抽象分层视图
OpenNI的设计基于分层架构,包括几个关键组件:
- **模块(Modules)**:这些是组成OpenNI框架的基本单元,每个模块都代表特定的功能或硬件接口。它们可以是设备驱动,也可以是处理特定任务的软件组件。
- **生产节点(Production Nodes)**:这是OpenNI中的核心元素,它们负责生成数据(如图像、深度图或骨架跟踪信息)。生产节点可以是传感器节点,如摄像头或红外传感器,也可以是处理节点,如骨架跟踪器。
- **生产链(Production Chains)**:由一个或多个生产节点组成,它们按照特定的顺序连接在一起,形成数据流路径。例如,一个生产链可能包含从摄像头获取图像,然后通过处理节点生成深度图。
- **能力(Capabilities)**:每个生产节点都有特定的能力,如捕获视频流、提供深度信息或追踪骨骼。开发者可以通过查询节点的能力来确定其功能。
- **生成和读取数据**:OpenNI使用数据流的概念,生产节点生成数据,消费者节点读取数据。节点之间通过数据生产者和消费者的连接进行通信。
- **模拟节点(Mock Nodes)**:这些节点用于测试和调试,可以在没有实际硬件的情况下模拟生产节点的行为。
- **设备共享**:OpenNI允许应用程序之间共享同一个设备,通过锁定和解锁机制确保多线程环境下的安全访问。
- **授权(Licensing)**:OpenNI遵循GNU General Public License (GPLv3)发布,意味着源代码是开放的,可以自由分发和修改,但同时也需要遵守相应的开源许可规定。
- **通用框架实用程序**:OpenNI提供了一些工具和库,如记录器,可以用来记录和回放数据,方便开发和调试。
- **向后兼容**:OpenNI努力保持与旧版本的兼容性,使得开发者可以逐步升级而不用担心中断现有的应用程序。
- **准备开始**:OpenNI支持多种平台,如Windows、Linux和Mac OS。开发者需要了解主对象,如Context,它是OpenNI框架的入口点,以及如何创建、启动和管理生产链。
OpenNI用户手册还涵盖了如何安装、配置和使用OpenNI,以及如何利用其API创建自然交互的应用程序。对于初学者来说,这是一个宝贵的资源,帮助他们快速理解和掌握体感技术的开发。通过学习OpenNI,开发者能够构建创新的体感应用,如游戏、虚拟现实、教育软件等,将用户的动作和手势无缝地转化为数字世界的指令。