【手势交互】5. Kinect for Xbox One

Kinect for XBox One是Kinect for XBox的升级版,这里称他为Kinect2 (也有叫它Kinect 720, Kinect One)。Kinect2于2013年中和Xbox One一起配套发售(Kinect1于2010年11月在美国上市,建议售价149美金)。2014年9月开始可以单独购买Kinect2,目前售价149.99美金。

 

【手势交互】5. Kinect for Xbox One_第1张图片 

Kinect for XBox One

 

相比Kinect1,Kinect2的变化主要有以下几个方面:

1. 深度图获取方式的变化

当年Kinect1出人意外的采用了Prime Sense公司的Light Coding技术来作为深度图获取方式。在Kinect2中微软采用了精度、灵敏度和分辨率都更高的TOF技术来获取深度图。TOF(Time of Flight)就是去计算光线飞行的时间。首先让装置发出脉冲光,并且在发射处接收目标物的反射光,藉由测量时间差算出目标物的距离,其原理和红外测距仪一样。只是光速太快,如果真的去测量飞行时间几乎是不可能的事情,Kinect2中TOF实现的方式是发射一个强度随时间周期变化的正弦信号,通过获得发射、接受信号的强度差及相位差来计算距离。其实在整个视场中,只要分辨出各个物体的深度关系就可以,并不要计算出每个像素离摄像头的精确位置,因此量化并归一后的深度图数据的单位并不是米、毫米之类的量纲。返回信号强度的变化,可以计算出经过了多少个波长周期,相位的差异可以得到在最后一个周期内的差异,累加在一起就是精确的距离表征值。

 

2010年的Light Coding技术在性能和成本上是比较好的平衡,但它最大的缺点在于精度很难提高。这是因为计算斑点位移需要用图像在一个小范围区域内的来做块匹配,导致牺牲了像素级别的细节。凸凹不平的表面、物体边缘、很细的物体很难检测准确的深度(例如在Kinect1中水杯的把手很难识别,人脸也很容易蜕化成一个球状物体,圆形的东西边缘也不够圆滑)。TOF在一定程度上可以做到逐个像素的计算,从而摆脱这个问题,在相同的传感器分辨率的情况下得到更高的精度。Kinect2的深度图格式为512 x424@30fps,和一代类似,每像素16比特,13比特表示深度,3比特是用户ID。TOF的技术原理使得Kinect2的深度图相对于Kinect1噪声降低,能识别更多小物体,能区分远近距离更小的不同物体,物体边缘的深度识别更平滑。Kinect2的精度号称比Kinect1高3倍。

 

微软2009年收购的3DV Systems公司具有10多年TOF成像技术积累,拥有大量的专利技术,Kinect2中采用TOF技术也不难理解,但是不确定微软采用了什么样的新技术,降低TOF深度摄像头的成本,使它能够适合于消费类电子产品。

 

2. 处理核性能增强

Kinect1采用Prime Sense公司的PS1080作为处理核心,PS1080的处理速度只能支持到320x240@30fps,而Kinect2的每秒数据处理量可达2GB。处理能力的增强也让Kinect2可以使用更大分辨率的深度图。Kinect2采用USB3.0来做数据到主机之间的传输,一代用的是USB2.0。

 

3. 彩色摄像头分辨率增加

Kinect2的彩色摄像头分辨率增加到1920x1080x16bpp 16:9 YUY2@30fps,相对于一代的640x480x32bpp 4:3 RGB@30fps有很大的提升。更高分辨率的彩色图像让Kinect2可以更加准确的人脸识别,甚至脸部表情也可以识别到。Kinect2支持Skype这样的视频通话,1080p的质量可以让视频通话类的服务质量得到提升。Kinect2还提供了512x424 11比特动态范围的红外视频流,主动红外线视频流能提供不受照明限制的处理和特征识别,降低了对使用者操作环境的要求,使人们可以在不必有特别光线照明的情况下使用设备,大大解放了对场地的要求。

 

Kinect2有两个摄像头,一个1080P彩色摄像头,一个TOF深度摄像头。在外观上Kinect for XBox One只能在设备左侧看到一个摄像头,它来自于台湾正崴科技(Foxlink)的1080P彩色摄像头。而TOF摄像头以及激光发射设备都隐藏在前置盖下面,他的设备编号是S/N: S1337573123,P/N: X861135-001,A/N: 1337-MS2802-09,目前不知道是哪家的产品。有关这部分各种拆解报告说的都不是很清楚,有待以后完善。

 

4. 更宽的视角

Kinect2的水平、垂直视角分别升级到70°、60°,相应的Kinect1是57°和43°。由于视角的增加,Kinect2取消了Kinect1的自动追焦马达,二代不会左右旋转。一代中的马达系统机械结构比较脆弱,容易损坏,这也可能是二代中取消它的一个原因。还有多用户时候,自动追焦的判断将更加困难。更宽的视角是采用更广的镜头来达到的,Kinect2的镜头比一代的大。Kinect2的最佳视距为0.4米-4.5米,在较近处还可以有很好的深度识别效果。

 

5. 提升的骨骼追踪算法

在骨骼追踪算法上提升很多,例如:能探测手部状态(握紧或者张开);可以支持探测更多的关节,以及某些关节的旋转;可以最多跟踪6个玩家,每个玩家骨架由25各关节组成(一代是20个关节);可以探测被遮挡的关节(例如被手挡住的肘部等);可以支持侧面姿势的探测。跟踪的姿势更为精确和稳定,优化了很多场景功能:包括更稳定的姿势、更准确的姿势评估、更加简捷地交互、更多的与旁观者互动场景。

 

6. 延迟的优化

Kinect1是一款具有革命性的产品,但他也有很多缺点,用户对于Kinect1抱怨最多的是延迟。通过更快速的核芯片以及USB3.0使Kinect2的延迟降低到66毫秒。

 

Kinect2还在其他方面,例如外观、语音识别方面的改进,本文暂不关注。

 

基于Kinect2全世界的研发团队做了很多有趣的实现,其中微软研究院的Handpose是较为精彩的一个项目。Kinect最开始的时候很擅于探测身体动作,包括头部、腿部和手臂的活动轨迹,但是在辨识手势时表现一般,只能大概了解手掌和手腕在哪里,当用户做出简单的手势,比如赞成或反对的动作,它不能将其区分开来。如果能够实时准确地跟踪用户的双手位置,包括每个指关节的角度,那么,就可以灵活的操纵电脑上的虚拟手,做出和人类同步精准的相同动作。

 

 【手势交互】5. Kinect for Xbox One_第2张图片

Kinect2 Handpose项目

Handpose项目就是基于这样的目的来设计的,它大幅提升了Kinect2手势追踪的精度。要想识别手部动作,运动追踪系统需要监测手上30个数据点(手部关节点)。看起来不多,但是这些点的组合却有万亿种。同时,在特定的手势中,有些手指会隐藏起来,无法被传感器识别到。因此,即使是不精确的手势识别,也是非常困难的事情。Handpose的算法大大提升了计算机对手势的识别能力,经过大量数据的统计,把万亿种的组合猜测降低为200种最有可能的猜测,这将算法的速度提升了很多。Handpose仍然需要完善,它将会改变我们与计算机、虚拟现实、电视机等的交互方式。

你可能感兴趣的:(虚拟现实)