[RealSense]2-实感摄像头与SDK

本次项目中使用的是F200摄像头,属于较早的摄像头。虽然摄像头的型号可能有所不同,但支持的基本功能都是具备的。具体支持的功能可以查询英特尔官网,不再累述。

在众多性能指标中我认为需要我们注意的是摄像头的识别范围,因为它直接影响到了使用的场合。例如F200是摄像头的使用距离是20-60cm,意味着只有坐在电脑前的时候才能很好的发挥效果,而且它的识别范围并不太大,这些都是在设计游戏时应当考虑的。

[RealSense]2-实感摄像头与SDK_第1张图片










摄像头的追踪边界示意图


实感SDK

接下来主要介绍实感SDK。实际上要熟悉SDK,最方便最全面的的方法是阅读SDK附带的说明文档,文档可以在SDK的安装目录下找到,里面详细叙述了SDK所提供的功能接口,以及很多详细的技术参数,如果要学习SDK的使用,阅读它是最容易的。

SDK的构架

不了解SDK的构架对于使用SDK来说影响不是很大,不过还是简单叙述。
SDK 堆栈主要由 SDK 内核(SDKCore)、I/O 模块(I/O Module)和算法模块(Algorithm Module)组成[ 英特尔® 实感™ SDK 架构]。

通过SDK的内核部分,应用程序与摄像头的I/0模块将被很好的结合起来。而算法模块部分则为手部追踪、手势识别、面部检测、语音检测提供支持,是重要的中间件。SDK位于整个堆栈的最顶层,由算法模块为SDK提供相关的应用程序接口,这些接口由C++编写的,但同时也为C#,Unity,Java, Processing等语言提供支撑,在对应库的支撑下,使用这些语言的开发者也能像使用C++的开发者一样使用SDK的强大功能。

[RealSense]2-实感摄像头与SDK_第2张图片

英特尔实感SDK构架图

[RealSense]2-实感摄像头与SDK_第3张图片

SDK的类层次图

PXCSession管理着整个SDK各个模块之间的数据流,包括前面所述的I/O模块和算法模块。当开发者需要在自己的应用中使用实感SDK的时候,要做的第一步就是创建一个PXCSession的实体。每一个使用实感SDK的应用都需要创建一个或者多个的PXCSession实体,他们拥有各自的IO和算法环境,互相之间并不干扰。但一般来说,创建单个PXCSession就已经足够了。


PXCSenseManager为开发者提供了预先定义好的手部追踪与面部追踪功能。这一接口组织好了一个多模式的数据管道,它包含了一个I/O设备和多个算法模块,并且能够控制控制数据管道的执行,完成包括开始,停止暂停继续等功能。


在内部,PXCSenseManager使用PXCCaptureManager来在颜色,深度,音频三个数据流中做出选择,通过PXCSenseManager提供的接口,可以在初始化时获得PXCCaptureManager的实体,并通过设置他来完成一些I/O设备的操作,例如将设备的输入用文件记录,或者回放输入等。这些功能在都没用上。


在管线执行期间,如果已经有数据样本从I/O设备中被传回时,你可以通过PXCImage的类接口来获取图像的缓存。如果在管线中的算法模块完成了对图像数据的处理加工,你可以通过特定的接口来获取这些结果。例如使用PXCHandModule类接口来获取手部追踪的结果,使用PXCFaceModule类接口来获取脸部追踪的结果,这些接口提供了特定的方法来查询算法模块。当然SDK允许开发者对算法模块进行设置,从而满足在不同条件下的开发要求。


音频接口的执行路径和以上的接口有所不同。应用通过PXCAudioSource来管理音频接口,然后又有特定的类提供特定的功能,例如可以使用PXCSpeechRecognition提供的方法来实现语音命令的功能。


在项目中,仅使用了PXCHandModule提供的手部追踪模块。

你可能感兴趣的:(C++)