最近谷歌和苹果在AR上赶上了,AR的关注度随着谷歌近期发布的AR core以及即将发布的iOS11重新受到热捧。
谈到谷歌的在AR方面的布局,Project Tango是绕不开的话题,但你真正了解和理解该项目吗?我们不妨通过雷锋网的一篇文章重温下Project Tango。
Project Tango发布初期曾经一度被称为黑科技,但现如今已慢慢走进我们的生活。如果说Kinect是3D感应技术的开创者,那么Project Tango就算是3D感应技术领路人了。Project Tango将光学传感器、惯性传感器与计算机视觉技术进行了完美的结合。
Project Tango诞生记
说到Project Tango就要说起ATAP(All Things Are Possible,ATAP是Google收购Motorola(后来又卖给了联想)后保留的一个重要部门),更要说起Johnny Lee。
如果你打开上面Project Tango的介绍视频,第一眼看到的一个面目和蔼的胖子,就是那个在2007年底把Wii玩出花的大神。07年12月John神在YouTube上传了一系列视频,记录了用Wii遥控手柄追踪人的手指,通过改装后的Wii遥控手柄和投影仪制造出多点触摸电子白板,还有用Wii遥控手柄追踪人的头部位置,与此同时,游戏画面也为了适应观众的视角而发生改变。从这几个实验中,我们可以看到当下Leap Motion、Oculus Rift等下一代人机交互方式的影子。
之后他加入了微软的Project Natal(该项目的成果是风靡全球的Kinect),后来跳槽到Google X,再之后加入Motorola ATAP(All Things Are Possible),最终带领团队在2014年6月5日启动Project Tango。
Project Tango三大核心技术
众所周知Project Tango包含三块技术:运动追踪(Motion Tracking),深度感知(Depth Perception)和区域学习(Area Learning)。我们可以通过John神的职业道路,由简入繁来看看Project Tango里面的黑科技是如何一步一步实现的。
首先就是John神的成名之作:Wii实现头动追踪。他将Wii捕捉系统翻了个个,将含有IR相机的Wii手柄作为接收器,并把Wii的“感应棒”作为一个含有两个红外点光源的发射器,如下图:
这就形成了一个典型的单目视觉系统。接收器拍摄到的图像是三维空间的场景在二维空间的投影,要识别场景的“深度”信息,就是一种逆向求解的过程。单目视觉系统一般采用对应点标定法,即通过不同坐标系中对应点的对应坐标求解坐标系的转换关系,说起来很绕口,但是简单解释就是好比你一只眼睛看一根木棍(我们假定木棍不会在水平面旋转),虽然没有了双目的立体视觉,但是通过观看木棍的长度和位置变化你就可以判断木棍的大概位置。同理John神的Demo中接收器拍摄到的图像大概是这个样子。
可能这个例子里面的原理非常之简单,但要知道他提出的这个VR Display概念要比Oculus早了近5年。
运动追踪
Project Tango的第一个核心技术“运动追踪”的三维动态捕捉就是利用了上面提到的单目视觉技术的升级版Feature Tracking(Google称为特征捕捉)。特征捕捉如何理解呢? 再回到John神的例子里,我们不再固定接收器的位置了,反而是拿着接收器(这里我们不再叫它接收器了,叫采集设备或相机)移动;而对面只有两个光点的发射器也变成一个一个的光点贴在John神家里屋子的各个角落。
当我们移动相机时不断地一帧一帧进行拍摄,因为拍摄到的光点的相对位置在不断变化(这里“变化”是指拍摄到的两帧之间同一个光点的相对位置变化),通过计算我们可以得到相机的移动距离。简单来说Tango设备在不断循环的一个过程就是:拍摄——识别特征点(个人估计是SIFT点)——匹配特征点——筛去错误匹配——坐标换算。当然Project Tango的运动追踪不仅如此,他还能通过一个内置的6轴惯性传感器(加速度计和陀螺仪)来捕捉相机的加速度和运动方向。
当融合了以上两类传感器的数据之后Project Tango就“完美”(其实还有瑕疵)实现了三维运动追踪。
区域学习
为什么说还有瑕疵的?因为运动追踪只是单纯得到了相机移动的轨迹,然而对于相机所处的场景是零认知。所以一旦设备被关掉,它之前的运动轨迹就会被“忘掉”。最大的问题还是运动追踪中所累积的误差,或者叫漂移,在长距离使用后真实位置会和运算位置有很大差异。
为解决这个问题,John神团队为Tango设备设定了一种学习模式。这应该是他在Google X里面无人驾驶汽车研究成果的冰山一角。这种学习模式理解起来就简单很多了,为了让Tango设备具有一定记忆,而不再像一个被蒙着眼睛的人一样需要靠数自己走了多少步来计算距离,Project Tango可以让用户预先录入某个场景(这里要特别提醒的是,录入的数据不光包括了运动追踪里面所识别的特征点,还包含了场景本身),当用户重回这个场景的时候Tango设备会自动用录入的数据来纠正运动追踪的数据,这个纠正的过程中录入场景里的那些特征点会被当作观测点,一旦发现与当下特征点匹配的观测点,系统便会修正当下的追踪数据。这就是Project Tango的第二大技术核心——区域学习。
深度感知
如果说把深度感知作为Project Tango的第三大技术核心,我觉得有点虚,毕竟Google也是采用的第三方的深度传感器。不过对此Google并没有掖着藏着,而是很大方的表明Tango设备可以选择任意一种现今流行的深度感知技术。而对这项技术的顺利应用多半也要归功于John神在Project Natal的经历了。Kinect一代的推出震动了业界,震动了学术界,同时也把结构光(Structured Light)的概念推广了出去。那么他到底是怎么实现深度检测的呢?检测到的“深度”又是什么概念呢?
结构光顾名思义是有特殊结构(模式)的光,比如离散光斑,条纹光,编码结构光,等等。他们被投射到待检测物体或平面上,看上去就好像标尺一样。根据用处不同,投影出来的结构光也可以分为不可见的红外光斑,黑白条纹可见光,单束线性激光,等等。比如Kinect投射出来的就是红外光斑,设想你玩游戏的时候要是一片黑白条纹光打到你身上,这画面感岂不是很怪。
人们发现把这些光投到不同深度的平面上光的纹路会发生变化,那么如果能采集到这些纹理变化,并且能精准的计算这些变化岂不是可以算出不同的深度?
回归正题,Kinect的离散光斑是如何实现深度检测的呢,我们知道如果拿一个手电照射墙壁,站近或站远,墙上的光斑是不同大小的,从不同角度照射墙,光斑也会呈现不同的椭圆。这就是基本原理了。但如何使一个红外光源按照不同角度射出?并且还要变成一堆离散的光斑?
这就要拿出它的发明者以色列PrimeSense公司的专利图了,他们非常聪明地在红外发射器前面加了一个特殊设计的diffuser(光柵、扩散片)可以使红外光线能从不同角度射出。另一个摄像头再去拍摄这些光斑然后进行计算从而得出每一个光斑所在的深度。每种结构光的扫描精度,所对应的算法,以及应用场景都有所不同。例如用于电子产业元器件锡膏检查(SPI/ AOI)一般就是可见的条纹光。另外几种结构光就不多做介绍了,总之只需要知道他们对深度感知的精准度会远远高于Kinect这种离散光斑类型的结构光(可以达到微米级),并且算法也有很大出入。
除了结构光Project Tango还提到了TOF(Time of Flight飞翔的时间?)一个激光发射器,一个接收器,一个运算光程的芯片组成。通过计算不同的光程来获取深度信息,它也是一种深度传感器。
这些深度传感器输出称之为“点云”的数据,包含了所有被采集到深度的点的三维信息。
但是这里还隐藏了一个技术难点,因为Tango设备是在一边移动一边采集的,如何把上一帧采集的“点云”信息和当下帧采集的“点云”进行匹配,并且显示在同一世界坐标中就是难点所在。Project Tango巧妙的结合运动追踪的轨迹数据达到了对“点云”的实时拼接。要知道“点云”的数量一般在几百或者上千。算法已经不易,运算量更是大的离谱,而Project Tango还把它做进了移动设备里。
结论
当这三大技术汇聚,Project Tango为移动平台带来了一种全新的空间感知技术,它可以让移动设备像人眼一样感知你所在的房间,找到行走的路,并且感知到哪里是墙,哪里是地,以及所有你身边的物体。
其实这段很酷炫的话只有一个关键词,那就是“移动平台”。为什么?此时先拿出一个上文都没有提过的词语SLAM(Simultaneous Localization And Mapping,同步定位与地图构建)。它是机器人领域里面最重要的一个概念,没有之一。
就是希望机器人能够在某个环境中认识这个环境,找到自己的位置,并且规划出合理的道路。然而自1986年这个概念被提出以来,运算复杂度就一直是它的一个有待解决的问题。可能大家也发现了,Tango设备就是一种SLAM设备,并且Google把它实现在了移动设备端。John神和他的团队靠的不是魔法,而是对于光学传感器和惯性传感器与计算机视觉技术的巧妙结合。利用光学传感器来校正惯性传感器的误差累计或者说“漂移”问题,利用惯性传感器的小尺寸,低成本,以及实时信息输出来降低光学传感器的运算量,再配合上成熟的深度感应器(其实也是光学感应器的一类)从而实现了这个人们眼中的黑科技。
Project Tango的价值并不是把某个技术做到了登峰造极,而是将多种技术完美融合在一起,做到了1+1+1大于3的功效。并且把这些技术融合在了我们每天手边拿着的设备上。在AR,VR,MR盛行的今天,Project Tango的场景扫描和运动追踪功能正是现在AR,VR,MR设备最缺失的几种输入信息方式。再加上Google最近发布的DayDream VR平台和Google移动操作系统的最新版本Android N,可见Google在移动VR上的布局是多么宏大。不过,此时看来Project Tango还处在“Tech Demo”阶段,究竟能给AR,VR带来多大的推动力,我们拭目以待。
网友评论