Kinect是由微软开发,应用于Xbox 360 主机的周边设备。它让你不需要透过控制器,而是使用语音指令或手势来操作Xbox 360 的系统界面。Kinect中间的镜头是RGB摄像头,左右两颗是深度摄像头,其中左边那颗为激光光源。Kinect可同时获取彩色影像、3D深度影像、以及声音信号。
一代Kinect采用了以色列公司PrimeSense的技术,他们也是提供动作感测系统的公司,拥有体感侦测装置PrimeSensor,以及感测芯片 PS1080。PrimeSense用的并不是采用微软之前收购的3DV Systems的TOF(Time of Flight)技术、而是Light Coding技术。
Light Coding,顾名思义,就是用光源照明给需要测量的空间编上码,属于结构光技术的一种,只是深度计算方式不一样。结构光(Structured Lighting)是将一维或二维的图像投影至被测物上,根据图像的形变情形,判断被测物的表面形状,可以非常快的速度进行扫描,相对于一次测量一点的探头,此种方法可以一次测量多点或大片区域,故能用于动态测量。
与普通结构光法不同的是,Light Coding的光源称为“激光散斑”,是激光照射到粗糙物体或穿透毛玻璃后随机形成的衍射斑点。这些散斑具有高度的随机性,而且会随着距离的不同而变换图案。也就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源标定。 Light Coding 就是以红外线发出对人体无害的一类激光,透过镜头前的diffuser(光栅、扩散片)将激光均匀分布投射在测量空间中,再透过红外线摄影机记录下空间中的每个散斑,获取原始资料后,再透过芯片计算成具有3D深度的图像。
简单来说,Light Coding与传统的ToF、结构光技术的不同之处在于: 1)和传统的TOF、结构光的光源不同,使用“Light Coding”技术的PrimeSense的PS1080系统级芯片负责对红外光源进行控制,投射出具有三维纵深的“立体编码”。这种光源称为激光散斑,是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。 2)不需要特制的感光芯片,只需要普通的CMOS感光芯片,这让方案的成本大大降低,对Kinect消费及电子产品的市场化至关重要。 3)Light Coding技术不是通过空间几何关系求解的,它的测量精度只和标定时取的参考面的密度有关,参考面越密测量越精确。传统结构光方法采用三角视差测距,基线长度(光源与镜头光心的距离)越长越好。换句话说,不用为了提高精度而将基线拉宽。这其中的奥秘就是“激光散斑原理”。 如上所述,一代Kinect并没有采用微软收购公司的TOF(Time of Flight)技术,其中很大的原因是当时其离成熟的商用还有一点距离。因此,选用了相对较成熟的Structured Light,Structured Light最大的优势,就是商用成熟。 如今,第二代Kinect已经发售,其性能发生了翻天覆地的进化。其中最大的改变是改为采用TOF技术,号称有三倍的精确度。其数据的稳定性相對较好、细节更多;被其他环境光源(红外线)影响的概率也更低,甚至可以承受一定程度的日光。也由于深度感应改采用TOF技术,所以捕捉到的红外线影像不會像 PrimeSense 的技术有散斑、画面很干净。
Time of Flight是一种主动式深度感应技术,其使用激光探测目标物。顾名思义,Time of Flight就是去计算光线飞行的时间。首先让装置发出脉冲光,并且在发射处接收目标物的反射光,藉由测量时间差算出目标物的距离;ZCam就是使用 TOF技术,使用红外线以及Accelerometers加速度计感应器,感测立体空间的相对位置变化,建构灰阶距离影像的深度感应器。3DV Systems公司研发该技术已经长达10年,并取得许多专利技术,微软二代Kinect使用TOF也是情理之内的事。 除此以外,新一代Kinect还有许多新特点:彩色摄像头达到了FullHD(1920 x 1080 @30fps);更大的视角,FOV 由 53×47 度变為 70×60 度;在 1 米左右距离即可侦测使用者;可以侦测6 位使用者(含骨架)、25 个关节点(关节点与上一代相比多5个,现在在手掌这部分现在有三个关节点,所以可以在一定程度上侦测手的开合状态);可以根据脸部彩色影像的细微变化侦测心跳。 |