Kinect的“三只眼”—投影机和两个摄像头

2024-01-03 08:20

本文主要是介绍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的“三只眼”—投影机和两个摄像头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/565059

相关文章

java两个List的交集,并集方式

《java两个List的交集,并集方式》文章主要介绍了Java中两个List的交集和并集的处理方法,推荐使用Apache的CollectionUtils工具类,因为它简单且不会改变原有集合,同时,文章... 目录Java两个List的交集,并集方法一方法二方法三总结java两个List的交集,并集方法一

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {

两个长数字相加

1.编程题目 题目:要实现两个百位长的数字直接相加 分析:因为数字太长所以无法直接相加,所以采用按位相加,然后组装的方式。(注意进位) 2.编程实现 package com.sino.daily.code_2019_6_29;import org.apache.commons.lang3.StringUtils;/*** create by 2019-06-29 19:03** @autho