本文主要是介绍Kinect的“三只眼”—投影机和两个摄像头,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
你可能已经注意到Kinect有三只不对称的“眼睛”,从左向右分别是红外投影机和一组光学部件—彩色摄像头和红外摄像头,如图2-10所示。
在图2-10所示中,从左向右,分别是OG12/0956/D306/JG05A红外投影机、VNA38209015CMOS彩色摄像头,以及Microsoft/X853750001/VCA379C7130CMOS红外摄像头。中间的摄像头提供了彩色图像;剩余的两个元件通过发射/接收红外线,来提供深度数据,如图2-11所示。尺寸上它们接近于网络摄像头,其镜头大,具备自动对焦功能。
Kinect获得深度数据的原理如下:红外投影机的普通激光源投射出一道“一类普通激光”(Class1 Lasor),这道激光经过磨砂玻璃和红外滤光片,覆盖Kinect的可视范围,红外摄像头接收反射光线,识别目标物体的“深度场”(Depth Field)。后面的章节会进一步介绍相关内容。
1. 红外投影机
红外投影机是位于Kinect最左侧的那只“眼睛”,它与最右侧的红外摄像头配合使用。拆解后的红外投影机如图2-12所示。
PS1080 SoC(系统级芯片)对红外光源进行控制,以便通过红外光编码影像放映场景。红外投影机的光源是一类普通激光光源,经过磨砂玻璃和红外滤光片,投射出近红外光,该光波长为830nm,可持续输出,符合IEC 60825-1标准中的一级安全要求。红外摄像头是一个标准CMOS影像传感器,负责接收放出的红外光,并将红外光编码影像传给PS1080。PS1080负责处理红外影像,然后逐帧生成准确的场景深度影像,如图2-13所示。
看到“激光”,你可能心存疑虑:Kinect发射的是红外线还是激光,会不会对人体有害?英文资料里有提到“Laser projector:near infraredlight,830nm,cons-tantoutput, class1 laser”。上述也提到过,事实上,Kinect的光源符合IEC 60825-1标准中的一级安全要求,大家大可放心。
扩展阅读 激光辐射的电磁波波长范围包括长波长的红外的(CO2激光)范围,到近红外(Nd激光:Yag,Nd:YVO4),可见光(Ne或者氩)和不可见的紫外光(受激准分子激光)。在光谱中波长自0.76至400微米的一段称为红外线,红外线是不可见光线。所有高于绝对零度(–273.15℃)的物质都可以产生红外线。有体温的生命体(如人类)发出的光谱属于“远红外线”;Kinect发射的光谱属于“近红外线”,波长更小。
关于激光辐射的规章制度已经建立,它是根据伤害人的程度来定义激光危险不同的等级,从激光一级(在各种情况下,一级激光基本安全)到激光四级(任何情况下,四级激光是危险的)。
2. 彩色摄像头和红外摄像头
Kinect是通过彩色摄像头和红外摄像头来观察这个世界的,拆解后的硬件如图2-14所示。
Kinect这两只不同的“眼睛”所看到的世界是如何同步和互相补充的呢?视力又是如何?
为了生成更准确的传感器信息,PS1080系统级芯片(SoC)会执行“PrimeSense注册过程”。什么是PrimeSense注册过程?
为了让深度影像和二维标准色彩影像相互对应,必须进行注册。注册就是将色彩影像和深度影像进行对应,产生像素相互对应的影像,即色彩影像中的每个像素分别与深度影像中的一个像素对应。这能让应用程序准确了解收到的色彩影像中每个像素的深度。所有传感器信息(深度影像、色彩影像和音频)通过一个USB 2.0接口传送给主机,且时序一丝不差。
通过Kinect SDK可以获得同步的深度图像和彩色图像数据流。
这篇关于Kinect的“三只眼”—投影机和两个摄像头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!