Intland's free requirements, development and test management hosting.
This server hosts 100.000+ users on the cloud!
Tags: 

Kinect工作原理

微软官方博客揭秘Kinect工作原理
Kinect技术详细图文介绍
Kinect拆解

  Natal中有一个功能强大的感觉阵列,对于新手来说,它拥有一个数字视频摄像头。能从事捕捉图片到识别颜色等多项工作。而Natal中的麦克风则可以在短时间内采集多次声音数据,以便把玩家和同处在一间房间中的其它人分开。

  当然这些智能离不开软件的支持,而这方面是微软的强项。特制的软件已经把Natal训练得能成功识别人的脸部细节变化。而在识别人体动作的时候,精度可以达到4厘米。

  09年微软收购了以色列公司3DV,让人们以为Natal的技术是源自3DV的ToF(time of flight)摄像头。3DV的感光芯片由于要测量光飞行时间,所以需要做到飞秒级的快门。据说他们在芯片中用到砷化镓,使其时钟频率提高到上百G。但这样做会使其成本升高,很难想象微软能把这样的技术做进游戏机这样的消费电子品里面。2010年1月,微软的开发人员明确表示:Natal并不是基于ToF的原理。2010年4月,另一家以色列公司(以色列人还真厉害)PrimeSense才确认为微软提供了其三维测量技术,并应用于Project Natal。

  在PrimeSense公司的主页上提到其使用的是一种光编码(light coding)技术。不同于传统的ToF或者结构光测量技术,light coding使用的是连续的照明(而非脉冲),也不需要特制的感光芯片,而只需要普通的CMOS感光芯片,这让方案的成本大大降低。

  Light coding,顾名思义就是用光源照明给需要测量的空间编上码,说到底还是结构光技术。但与传统的结构光方法不同的是,他的光源打出去的并不是一副周期性变化的二维的图像编码,而是一个具有三维纵深的“体编码”。这种光源叫做激光散斑(laser speckle),是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。

  这些散斑具有高度的随机性,而且会随着距离的不同变换图案。也就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源的标定。在PrimeSense的专利上,标定的方法是这样的:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设Natal规定的用户活动空间是距离电视机1米到4米的范围,每隔10cm取一个参考平面,那么标定下来我们就已经保存了30幅散斑图像。需要进行测量的时候,拍摄一副待测场景的散斑图像,将这幅图像和我们保存下来的30幅参考图像依次做互相关运算,这样我们会得到30幅相关度图像,而空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一起,再经过一些插值,就会得到整个场景的三维形状了。