65.9K
CodeProject 正在变化。 阅读更多。
Home

Intel® RealSense™ SDK 架构

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2014年11月6日

CPOL

5分钟阅读

viewsIcon

13956

在本文中,我们将重点介绍 Intel RealSense SDK 中一些关键的变化。

引言

Intel® RealSense™ SDK 在架构上与其前代产品 Intel® Perceptual Computing SDK 有所不同。如果您是使用 Intel Perceptual Computing SDK 进行应用开发的开发者,您会很快发现新的 SDK 通过一些流行的应用开发框架,为访问各种模态提供了增强的编程模型。在本文中,我们将重点介绍 Intel RealSense SDK 中一些关键的变化。

目录

架构概述

SDK 核心、I/O 模块和算法模块构成了 SDK 堆栈的基础。SDK 核心有助于管理应用程序管道的执行以及 I/O 模块(摄像头)。算法模块构成了手部跟踪、手势识别、面部检测、语音检测和其他模态的中间件。算法通过应用开发框架(C++、C#、Unity* 软件、Java*、Processing* 等)公开面向应用程序开发的接口。Intel RealSense SDK 应用程序位于此堆栈的顶部(图 1)。

图 1. Intel® RealSense™ SDK 架构

对于熟悉 Intel Perceptual Computing SDK 的应用开发者来说,这项改进将非常明显。早期 SDK 的接口只能与 Unity 和 Java 框架一起使用(图 2)。

图 2. Intel® Perceptual Computing SDK 架构

SDK 的大部分功能都可以供 C++/C# 开发者使用,这使得 Unity 和其他应用开发框架处于不公平的劣势。Intel RealSense SDK 通过为每个框架提供专门设计的接口,实现对核心和中间件功能的统一访问,从而解决了这一限制。在图 3 中,您可以看到跨所有框架的 .dll 支持已完全重新设计。与 Intel Perceptual Computing SDK 中的 C++/CLI C# 包装器相比,C++/C# 接口现在通过 PInvoke 接口提供。在 Unity 端,前一个 SDK 中的基于 PXCUPipeline 的接口已被基于 PInvoke 的 C# 接口取代。对于 Java 和 Processing 框架,基于 PXCUPipeline 的接口已被完全重新设计的 JNI 包装器取代。

图 3. 跨应用开发框架的统一 API 访问

简化的类层次结构

图 4. Intel® RealSense™ SDK 类层次结构

Intel Perceptual Computing SDK 中的接口结构极其层级化。执行简单任务需要一系列漫长的初始化、配置和数据检索操作。在 Intel RealSense SDK 中,这种层级结构现在变得更扁平,从而可以更轻松地访问其模态和功能。

如上图 4 所示,PXC[M]SenseManager 替换了 SDK 核心的 UtilPipeline 类。SenseManager 负责组织和管理执行管道。所有摄像头设备和流都由 PXC[M]CaptureManager 管理,它取代了 Intel Perceptual Computing SDK 中的 UtilCapture 接口。请注意,PXC[M]Capture 接口还允许简化深度访问。在 Intel Perceptual Computing SDK 中,开发者需要访问两个独立的流来获取深度和顶点数据,而在 Intel RealSense SDK 中,深度数据访问机制允许开发者在同一个流中访问深度和顶点数据。PXC[M]Face3D 管理面部跟踪模块,取代了 PXC[M]Face 接口,而 PXC[M]HandAnalysis 执行手势和手部跟踪,取代了 PXC[M]Gesture 接口。

有关这些模块功能的更多信息,请参阅下一节 - API 迁移指南。

API 迁移指南

除了整个 SDK 堆栈的重新设计外,您还会发现 Intel RealSense SDK 中超过 50% 的 Intel Perceptual Computing SDK API 都不同。这些变化大多源于 Intel RealSense SDK 具有 3D 元素,从而增强了某些现有模态(如手部和面部跟踪)的行为方式。下面我们来看一些这些增强功能。

面部跟踪模块

在功能方面,面部跟踪模块现在提供 78 个地标点以及 2D 和 3D 的姿态检测值,而 Intel Perceptual Computing SDK 最多只能提供 7 个地标点。深度的引入增加了所获取数据的鲁棒性。此外,Intel Perceptual Computing SDK 需要为面部检测、地标检测和面部识别进行单独配置,这使得整个面部分析过程非常繁琐。所有这些方面都导致了面部分析模块及相关 API 的重新设计。PXC[M]FaceAnalysis 模块现已由 PXC[M]Face3D 模块取代,该模块提供了一个扁平的结构。现在,在获取面部检测、地标检测、姿态检测和面部识别值之前,只需配置该模块一次(参见图 5)。

图 5. Intel® Perceptual Computing SDK 与 Intel® RealSense™ SDK 面部分析模块对比

手部跟踪模块

Intel RealSense SDK 中的手部跟踪模块得到了显著增强。与 7 点手部数据和 10 种标准手势相比,Intel RealSense SDK 现在提供 22 个数据点、手指识别、左右手识别,以及用于 3D 交互的方向和旋转参数以及一组标准手势。Intel Perceptual Computing SDK 中的 PXC[M]Gesture 接口现已由 PXC[M]HandAnalysis 接口取代,以便更轻松地访问手部数据。

下表 1 总结了 Intel RealSense SDK 所做的绝大多数主要改进。鼓励开发者阅读随 Beta SDK 下载附带的 SDK 参考手册,以获取有关这些接口中每个 API 的更详细信息。

表 1. Intel® Perceptual Computing SDK 与 Intel® RealSense™ SDK 对比

摘要

与上一代 Intel Perceptual Computing SDK 相比,Intel RealSense SDK 具有许多优势。诸如面部和手部跟踪算法等大多数现有模态都得到了增强,同时改进了大多数受支持应用开发框架的 API 访问机制。API 访问的一致性以及改进的中间件共同创造了一个极具吸引力的平台,供应用开发者通过我们的感官探索计算世界!

额外资源

Intel® RealSense™ 技术 – 概述: https://software.intel.com/en-us/articles/realsense-overview
用户体验指南: https://software.intel.com/en-us/articles/realsense-ux-design-guidelines

Intel、Intel 标识和 Intel RealSense 是英特尔公司在美国和/或其他国家的商标。
版权所有 © 2014 英特尔公司。保留所有权利。
*其他名称和品牌可能被声明为他人的财产。

Intel® Developer Zone 提供跨平台应用开发的工具和操作指南、平台和技术信息、代码示例以及同行专业知识,以帮助开发者创新并取得成功。加入我们的社区,了解 物联网Android*Intel® RealSense™ TechnologyWindows*,下载工具、获取开发套件、与志同道合的开发者分享想法,并参与黑客马拉松、竞赛、路演和本地活动。

© . All rights reserved.