体感技术:Kinect背后的故事

原文:http://app.tgbus.com/saver/read.aspx?type=tvgame&id=229085

  我首先说一句,我最近一年的工作,就是负责Natal-like的工作...具体说,就是那个Kinect摄像头,我们一般称之为3D 摄像头。这东西做了一年,心得也有一些,愿意与大家分享;谁有任何关于3D摄像头的问题,也请回帖问,知无不言,言无不尽。
  
  我不是搞爬格子工作的,很久不写字了,所以难免说的有些前言不答后语,还请大家多包涵....
  
  先说3D摄像头技术,我是个产品经理,不是搞技术的人,很多技术资料,我能读明白,但是最深层的原理,咱可就解释不了了。对于产品经理来说,能把技术变成真正好用的产品,那才是我们的工作和目标。咱们先从这个3D摄像头技术了来说起。

  去年微软宣布了下一代体感游戏设备,项目代号Natal的Xbox Kinect。如果说当年Wii创造了体感游戏这种全新的操作方式,Natal的到来,无疑是一记重磅炸弹,让整个世界轰动。大家都知道,前年微软宣布收购了以色列3D摄像头技术公司3DV,要不说犹太人聪明呢,人家其实一直潜心研究高科技产品。其实这种技术,已经有10年的研究史了,10年中所被注册的专利也是不胜枚举,微软购买3DV的目的,也算是高瞻远瞩,其实一直到2010年3月,3DV以及类似公司的技术,离真正商用(是商用,而不是演示哦!)还有一段距离,微软购买3DV,也算是提前在这个圈子里占坑,提前占领这个领域,阻击Sony和任天堂进入。

  3DV被收购以后,微软解散了公司,遣散了所有员工,这也可以理解,微软人才济济,唯独不缺的就是IT高人,3DV这些人根本不入微软的法眼。这些人拿着遣散费,就纷纷加入了另外一家以色列公司,也就是现在Natal真正使用的摄像头提供商 - Prime Sense。很多人都很好奇,为什么微软收购了3DV,却要买另外一家的技术,这得从这两家公司的技术谈起。

  3DV公司,力推的是TOF,namely Time of Flight,所谓时光飞行技术(有兴趣的朋友可以wiki一下 http://en.wikipedia.org/wiki/Time-of-flight), 前面提到,这技术最大的问题就是商用还差点意思。而Prime Sense公司选择的是研发时间长,相对比较成熟的Structured light技术,namely 结构光,已经有了至少25年的历史。这两家从理论上压根就没关系,但是使用效果是一样的。Structured Light最大的优势,就是商用成熟,Prime Sense公司已经在量产上下足了功夫(貌似4年左右),而且相比较小弟弟TOF来说,整体性能要好,这也是微软为什么能够今年E3正式发布的主要原因,而且我可以很负责任的告诉大家,Kinect摄像头正在日以继夜的生产着,代工方就是网上盛传的富士康。

  要说Prime Sense,其实最早找的并不是微软,而是任天堂。可惜任天堂的开发者们,太执迷于自己控制棒的成功之中了(重力加速度计/Accelorameter+陀螺仪/motion plus),不得不承认,现在一切的Wii-like设备,都是基于Wii的灵感,Wii的成功,是把极为普通的工业芯片成功用于了游戏机上,从而创造了前无来者的游戏方式,其实这技术本质没啥高深的,之前那些诺基亚N系列手机,都内置了这种芯片。言归正传,任天堂拒绝了这种无任何控制器的肢体交互方式,或者说纯手交互吧,但是Prime Sense关键时刻遇到了正为下一代游戏机发愁的微软,二者一拍即合。当时与之竞争的正是3DV,说实话,微软不愧是微软,在技术判断上高瞻远瞩,老子有的是钱,我买了你,就为你的专利,但是我跟更为成熟的Prime Sense合作。至此,一个以色列名不见经传的Prime Sense,一下子变成了炙手可热的公司。

  要说Natal所用的结构光(Structured light),原理并不难懂。Natal用的是激光作为光源,大家一听激光,可能都有点心虚,理论上来说,Prime Sense用的是class 1的激光,应该是挺安全的,不过心理作用,谁都有点打鼓。激光会透过Diffuser,好像叫光栅,均匀分布投射出矩阵来,而且居中的摄像头,会同步抓取深度图像(RAW data),然后将抓取的内容传输到主机,由middleware(中间件)处理,最终得出游戏者的骨骼数据,并实时跟踪,大家在e3发布会上看到的,对于这个技术来说,简直是小菜一碟。有人会问了,到底是什么原理实现的3D识别的呢?前边说了,激光透过光栅均匀的投射成矩阵,而摄像头实时抓取矩阵中每个点并计算它们的距离,最终就可以得到深度数据,也就是3D数据。举个例子,当你站在摄像头前边,不可见的激光均匀投射在你脸上,当你不断靠近摄像头的时候,脸上的激光矩阵也随之变化,而摄像头以一秒钟30帧的速度同步抓取,然后通过Prime Sense的核心技术 - PSXXXX的芯片进行计算,这样摄像头就知道你走近了。(我对技术描述实在是不在行,回头找点资料贴上来,有心的朋友多研究研究,也帮忙解释解释)。

  大概其说了说原理,其实我不是学光学的,对这里的有些东西还是一知半解,不过不耽误我自己的工作,有强有力的技术人员做支持,咱就什么都不怕了。
  下面就说说Natal摄像头的优势:
  - 性能优:目前从技术数据上来比较,Prime Sense摄像头物理分辨率为VGA,啥?才640x480的分辨率?对,没错!其实这种体感游戏,QQVGA(VGA的四分之一,namely, 160x120)就足够用了,很多体感游戏,如大家在国产Natal泄漏文章中看到的游戏,仅仅使用了QQVGA的分辨率。本人对这些游戏太熟悉了,其实效果真的还不错,比用眼看自己猜测的效果要强;
  - 光源好:结构光技术对光源要求高,所以激光一般都会作为最好的选择,这也是Prime Sense性能优的地方;
  - 距离远:如果我没猜错,Prime Sense的摄像头,使用距离是4m,而视场(FOV)也达70度,垂直FOV是45度,在2米外的距离,足以容纳2个人同时进行游戏。

  缺点其实也有的:  
  - 占用资源:由于每秒30帧VGA的高数据量,主机需要分出一定的资源来处理这些数据(通过middleware),一定程度上给日益吃紧的Xbox/eBox的性能带来更多的负担,不过微软是自己开发Middleware,没辙,谁叫人家就牛人多呢!估计大家也不会感觉到“卡”;
  - 延时:国内外网站一直在猜测Natal的性能,特别是延迟,可以负责任的告诉大家,Natal延迟是存在的,而且还比较明显,这与Prime Sense处理数据的方式不无关系,因为摄像头在抓取深度数据的时候,是按照图像计算的,学图像处理的朋友可能比我更明白这其中的原理和技术,所以为Natal开发的游戏,肯定在程序上会有一定的“优化”,这种所谓的优化就是尽最大量的消除延迟的感觉;
  - 精准定位:其实Prime Sense摄像头玩游戏还是很爽的,但是遇到射击类或者模拟鼠标操作,就会有很大的问题,因为技术的限制,摄像头无法做到精细的追踪,你站在3米,摄像头很难在VGA的分辨率下感知你每个手指的细微变化;
  - 伪VGA:这个缺点,技术层面更深一些,我也是从Prime Sense竞争对手和合作方哪里听到的,这与结构光技术的缺陷和要求有关,所谓的VGA抓取,其实最后能形成的也是QVGA的图想,不过这仅仅停留在技术层面上,使用效果没什么区别。
  - 无法识别:既然用激光作为光源,最大的问题,也就是无法识别某些材料所作的衣服,这些材料统统对激光都“不感冒”,另外,黑色也是这种技术的一个“致命伤”,但不是所有的黑色都不行,例如有些黑色运动裤,材料本身能够对激光进行发射,那也没问题;
  - 光源:有一个最大的问题,就是无法在阳光下使用,这还是跟激光光源有关系,学光的朋友或者物理高手来帮忙解释吧。哦,对了!还有Halogen light,就是卤素灯,貌似都是波长惹的货...
  - 镜子:其实不言而喻,镜子直接反射激光,就算用红外LED也是一样的,但是透明玻璃就不是问题了。
  - 怕摔/碰:Prime Sense摄像头对光源和深度摄像头的距离有明确的要求,而且生产过程中需要对摄像头进行复杂的校准,如果一旦用户不小心摔/碰了摄像头,造成光源或者深度摄像头位置有所偏差,那基本上东西就要报废了,需要返场重修,不过我相信微软已经有了更好的解决办法,而且一般没事谁摔他啊...

  去年发布的Natal家庭聚会的视频,还有e3上的星战,其实都有虚假的成分,特别是与Death Vadar对决的时候,有些腕部动作,摄像头还做不到这么精细,但是目前为止99%都是真的,偶尔的小细节有点夸张的成分。

  关于TOF摄像头,本人接触了基本上世界90%的厂商,这里可以列举的有:Optrima(比利时),Canesta(美国),Mesa(瑞士),PMDtec(德国),松下(日本)还有正在研发的三星(韩国)。这些摄像头以后有机会再说....

 

 

你可能感兴趣的:(体感技术:Kinect背后的故事)