Mastering openFrameworks_第十章_使用深度相机

使用深度相机

深度摄像机测量传感器到物体的距离,并为我们提供它所看到的3d场景的信息。利用这些信息,可以很容易地分析和识别场景中的3d物体,包括人和他们的身体部位。所以今天,在大多数交互项目中,深度摄像机是提供非接触交互的最常用的传感器。在本章中,我们将学习如何使用ofxOpenNI插件在openFrameworks项目中使用深度相机。此外,我们将考虑使用深度图像的例子,使一个平面,如墙壁,桌子,或地板互动。

所涵盖的题目如下:

1.深度相机的基础知识

2.安装ofxOpenNI插件

3.例子

4.创建交互式表面

深度相机的基础知识

深度相机是一种能够捕捉深度图像的相机设备。深度图像像素的值不等于光的亮度或颜色,而等于从摄像机到对象相应部分的距离。这类照相机的主要类型如下:

1.飞行时间照相机:它发射一束激光,等待这个信号回来。通过测量从发射到接收光束之间的时间,并使用已知的光速,它计算出到一个物体的距离。这种相机工作在光线和黑暗的环境中,具有很高的准确度。其中一类相机速度相对较慢,用于精确的地理测量和大面积的三维扫描。另一类相机,如松下D-Imager,可以实时工作,广泛应用于室内和室外场景的交互式应用。

2.被动式立体照相机:由两个或两个以上的可见光照相机组成,它们在空间上稍微分开,并且精确地对准。摄像机捕获帧,然后计算它们的像素之间的立体匹配,以利用视差效应估计到目标的距离。立体摄像机广泛应用于户外机器人和手术辅助等领域。它们在可见光下捕捉物体,因此在所有场景中都有良好的照明。由于立体匹配的特性,这种相机的测量精度随着距离的增加而降低。

3.主动红外立体照相机:它使用低能量红外激光器在物体上投射一个伪随机点图案,然后用红外照相机捕捉它。

注意:人类的眼睛看不到红外线,所以如果没有设备,例如手机上的摄像头,你永远看不到这些点。

利用投影模式和捕获图像之间的立体匹配计算深度图像。这种相机的测量精度像被动情况一样,随着距离的增加而降低。它们在光线和黑暗的室内环境下都能完美地工作。

由于采用低能量激光器,这种相机不能在阳光直射的室外环境下工作。此外,他们很难看到透明的物体,如玻璃,和光源,如灯。

今天,他们是最便宜的相机,用于娱乐和姿态控制应用,也用于许多种机器人和交互式实验。

在这一章中,我们将只考虑主动红外立体相机。他们工作在室内空间,有先进的SDK(OpenNI),成本约200美元。飞行时间实时相机和被动立体声相机可以被认为是更强大的,因为他们可以在户外空间工作,但目前他们的价格从1800美元起。

注意:预计微软Kinect2将会是一个便宜的深度摄影机。

主动红外立体摄像机

有几个不同厂商的深度摄像机系列:微软Kinect,华硕Xtion和PrimeSenseCarmine,每个厂商都有几个摄像机型号。现在使用的大多数相机都有以下特点:

1.稳定的测距距离为80厘米到4米(还有一些相机可以在近模式下工作,范围为40厘米)。

2.输出深度图像分辨率为640480像素,30FPS。深度测量的精度取决于距离物体的距离,但平均值为2厘米。

3.视角范围是57度,所以它看到的是一个长度为距离1米处1米。

4.此外,相机可以包括一个普通的彩色网络相机和麦克风的音频捕捉。

相机之间最显著的区别在于连接性和尺寸。微软Kinect连接到USB2.0和USB3.0,但是相当大。AsusXtion和PrimeSenseCarmine比较小,因此安装起来比较方便,但是目前在连接到USB3.0时存在一些问题。

这些摄像机拍摄的深度图像可用于三维场景分析,包括人体识别和手势分析。这些功能是在非盈利组织OpenNI开发的开放跨平台的OpenNI库中实现的,OpenNI开发的OpenNI是开放自然界面的http://www.OpenNI.org。

注意:OpenNI,尤其是它的子部分NiTE,主要致力于分析和识别人类的姿势和手势。如果您需要任何其他3d对象的处理能力,比如搜索特定的对象,比如球体和柱面,或者从多个深度图像拼接数据,您还应该使用PCL库。这是一个用于处理从深度图像获得的三维点云的开放库。预计在不久的将来会出现新的深度照相机。我们相信本章所讨论的主要原则也适用于这些相机。

在openFrameworks项目中使用OpenNI的最简单的方法是链接ofxOpenNI插件。让我们讨论如何安装插件并解释其示例。

注意:让我们注意一下,openFrameworks有ofxKinect的核心插件,可以和微软的Kinect摄像头一起工作。目前它不使用OpenNI。此插件适用于使用深度图像或从相机获得的三维点云的项目。有关详细信息,请参阅openFrameworks的示例/插件/kinectexample。在这一章中,我们将使用基于openni的解决方案(在ofxOpenNI插件中实现),因为它具有追踪用户和识别手势等额外功能,并且适用于所有深度相机模型。

安装ofxOpenNI插件

OfxOpenNI插件最初是由MatthewGingold开发的。这个插件包含了OpenNI的基本功能,包括以下功能:

1.获取深度图像

2.获得一个彩色图像,如果网络相机是包括在您的深度相机模型

3.跟踪手势应用程序中使用的手(即手腕位置)

4.跟踪人体,得到他们的轮廓和骨架点的位置。此外,它支持多个深度相机同时进行。

目前,ofxOpenNI是一个非核心插件,所以你需要下载并安装它

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《Mastering Go》是一本关于Go语言的技术书籍,中文名为《Go语言编程》。这本书是由Mihalis Tsoukalos写的,旨在帮助读者提高自己在Go语言方面的技能和能力。 《Mastering Go》对Go语言的各个方面进行了全面深入的讲解,涵盖了从基础知识、语法和特性,到高级主题和实践技巧的内容。读者可以通过阅读本书,了解到Go语言的特点和优势,学习如何使用Go语言编写高效且可维护的程序。 这本书对Go语言的一些重要主题进行了详细的阐述,如并发和并行编程、网络编程、数据存储和数据库操作、测试和性能优化等。它还介绍了一些常见的Go语言开发工具和框架,帮助读者更加便捷地进行开发工作。 《Mastering Go》内容丰富且实用,作者通过给出大量的示例代码和案例,帮助读者更好地理解Go语言的使用方法和技巧。此外,本书还提供了一些练习和挑战,帮助读者巩固所学的知识,并提高自己的编程能力。 总之,《Mastering Go》是一本很值得阅读的Go语言技术书籍,对于想要深入学习和应用Go语言的开发者来说,它是一本宝贵的参考资料。无论是初学者还是有一定经验的开发者,读者都可以从中获得很多有用的知识和技能,从而提升自己在Go语言领域的水平。 ### 回答2: 《mastering_go_zh_cn-master》是一本关于Go编程语言的中文教程。Go是一种由Google开发的开源编程语言,它具有高效的并发性和轻量级的设计特点,用于构建快速、可靠和高性能的软件。这本教程旨在帮助读者从入门到精通掌握Go语言的使用。 这本教程覆盖了广泛的主题,包括基本语法、数据类型、控制流、函数、错误处理和并发编程等。它提供了大量的示例代码和练习题,帮助读者加深对Go语言的理解和应用。 《mastering_go_zh_cn-master》还对一些高级主题进行了深入讲解,如Go的垃圾回收机制、性能优化、包管理、程序测试和错误调试等。这些内容使读者能够更好地理解和使用Go语言,提高代码质量和开发效率。 该教程的作者对Go语言有深入的理解和实践经验,他提供了很多开发技巧和最佳实践,帮助读者避免一些常见的错误和陷阱。 总之,《mastering_go_zh_cn-master》是一本很好的Go语言教程,适合已有编程经验的读者学习和掌握Go的各个方面。无论是想要使用Go开发高效并发程序的工程师,还是想要扩展自己编程技能的爱好者,都可以从这本教程中获得很多价值。 ### 回答3: 《Mastering Go》是一本介绍Go编程语言的书籍,其中的"master"意味着掌握或精通。这本书由中文作者翻译自英文原版,名为《Mastering Go》。该书通过深入浅出的方式,向读者介绍了Go语言的各种核心概念、语法和高级特性,使读者能够在Go编程中达到熟练掌握的程度。 《Mastering Go》的中文翻译版本"master"是指完全掌握书中所涵盖的Go语言知识和技能。这本书精心组织了Go语言的各个方面的主题,包括并发编程、网络编程、内存管理、性能调优等。读者将会在每章中掌握使用Go编程语言进行实际开发的关键概念和技术。 这本书的目标受众是那些希望进一步提高他们Go编程技能的开发人员和学习者。对于具有一定程序设计基础的人来说,这本书是一个理想的学习资源,将帮助他们更好地理解Go语言,并将其应用于真实世界的项目中。 总之,《Mastering Go》是一本内容丰富且有深度的Go编程指南,通过阅读和学习这本书,人们可以有效地掌握Go语言的核心概念和高级特性,从而成为一个熟练的Go开发者。无论是对于初学者还是有经验的开发人员来说,这本书都是一个很好的学习资源,可以帮助他们更好地利用Go编程语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白茶等风12138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值