知乎专栏https://zhuanlan.zhihu.com/p/21330855

在刚举行的TechWorld大会上,我们欣赏了联想带来的各种新奇产品和技术,其中最吸引眼球的无疑是Phab 2 Pro手机。这款巨屏手机的配置属于目前中上水平:高通骁龙652八核处理器,6.4寸QHD显示屏,4G内存,前800万,后1600万摄像头,4050毫安电池,指纹识别加全金属机身,跟最近上市的小米Max高配版非常相似。如果联想只是做这样一款中端机,定价在$499美元的话,相信在北美市场还是很有性价比的。但在这个平凡的外观下是它让人着迷的另一个身份——首款内置谷歌Tango技术的手机。

Tango是什么

Project Tango是谷歌为实现移动设备位置感应而研发的一系列产品与技术的集合。它源自于Google Advanced Technology and Projects group(ATAP),一个类似于Google X实验室的尖端技术研究部门。跟X实验室不一样是在于它们的项目往往有更短的周期,有明确的产品与上市时间表。Project Tango就是在这样的环境里,在很短的时间和非常有限的人力资源下成功实现技术突破与产品化的。

简单描述Tango,它的核心技术是下面三块:

  • 运动追踪 Motion Tracking - 通过移动设备自带的多种传感器,在不通过外界信号的情况下(例如GPS,WiFi,蓝牙Beacon等),实时获取设备的姿态与位置,追踪设备在三维空间中的运动轨迹。
  • 环境学习 Area Learning - 利用视觉信息记录与引索外界环境,自动矫正环境构建与运动追踪中积累的误差,识别重复环境。
  • 深度感应 Depth Perception - 利用自带的深度传感器扫描外界三维环境,构筑三维模型。 目前在移动设备上实现上面任何一项技术都是相当有挑战的,可以说在Tango发布之前,市面找不到基于移动设备本身进行计算而且售价仅在$499的解决方案。

下面聊一聊这几个技术主要的难点和Tango的突破:

运动追踪

传统的运动追踪办法可以简单分为两类,一类是靠外界参照系,比如GPS通过计算设备到轨道中不同位置的卫星距离可以判断出设备在地球表面上的具体位置,精度可以到达厘米级别,或者计算手机跟不同基站之间(包括蜂窝网,WiFi网,蓝牙Beacon)的信号衰减来做三角定位法,这样的精度可能从数米到几百米之间。对于室内环境,要么GPS信号接收不到,要么没有庞大的基础设施提供准确的参照系,所以并不是室内移动设备适用的办法。

第二类办法则叫船位推测法(dead reckoning),就是利用物体现有的位置,速度以及运动方向计算未来位置。千百年来人类在没有导航系统之前就是用这样的办法航海与航空的,甚至现在科学家发现许多动物精准的远距离迁移也是因为他们进化出了这种船位推测法的能力。这里面就引入了新的一个概念, 惯性测量单元(Inertial Measurement Unit or IMU)。IMU 包含三轴的陀螺仪与三轴的加速器,用来测量物体的姿态角度和加速度。

Wiki百科上展示dead reckoning在航空里的应用:

我们知道从物体加速度可以积分得出速度,速度再次积分可以算出绝对位置。然而传统消费电子设备里面的IMU受限于成本,精度与采用率都很低,十几秒的两次积分就能累计到骇人的误差,导致位置结果完全不可用。关于基于IMU实现的惯性导航,惯性导航 - 热门问答可以找到更多介绍。

Tango创新性的采用了鱼眼相机与IMU结合的办法来解决上面提到的这些问题。首先为IMU开发了一套精准的传感器融合算法(Sensor Fusion),保证设备在不同环境和运动状态下还能长时间积累很小的误差,尤其是对姿态角度的计算。鱼眼相机则追踪每一帧视频中出现的特征物,无论是边沿或者角落,然后比较帧与帧之间的图像差别来计算运动变化。由于Tango可以准确的追踪相机姿态,通过加速度估算出帧与帧之间的大概运动,结合图像信号,它能够算出比现有技术精准许多的运动状态,通过一次积分就可以得出设备运动轨迹。这样依然还会有一些积累误差但是已经比传统的办法好了许多倍。

环境学习

然而只知道运动轨迹并不够,因为设备并不了解它在所处环境中的位置,它也不会记住曾经见过的不同环境,所以Tango的第二项技术环境学习就变的非常有用了。当设备初次进入一个新的环境时,在它不断移动进行运动追踪的同时,它会记录下所见的环境信息。当再次进入熟悉的环境时,设备可以很快的找到自己在这个环境中的位置,并且不断的更新和矫正之前记录中不准确或者已经发生变化的地方。

这个功能描述起来很容易,但实施起来则相当的困难,首先设备会对它见到的每一帧提取特征,然后对出现的特征进行保存和引索,再利用一些高效的储存和搜索算法,实时的判断新的一帧是否跟过去曾经看到的环境有相似之处,如果匹配准确的话,设备可以立即利用之前已经收集的环境信息。

因为上一步的运动感应会慢慢的积累一些测量误差,环境学习另外一个重要的功能就是实现位置的矫正。如果设备通过环境匹配确定自己回到了之前曾经到过的某一点,即使运动感应积累的结果说自己在另一点,系统也应该把新的位置矫正过来,因为外界环境一般是恒定不变的而且相对可靠的。

这张插图解释环境学习是如何矫正设备积累的偏移量的。

深度感应

Tango设备背面都有特殊的距离感应传感器,用来测量物体到设备的距离与尺寸。目前市面有三种深度感应技术,各有一些利弊,第一代的Tango原型平板采用的是类似第一代Kinect的结构光Structured Light技术,而到了第二代的Tango原型手机以及这次发布的量产机型Phab 2 Pro则采用了跟第二代Kinect类似的Time of Flight技术,主要的优势在于不需要红外界发射器与接收器之间保持比较大的距离,很适合做在手机这种长宽非常有限的设备里。

深度感应对于Tango设备来说意义非常大,它提供了详细的环境深度信息,用来构筑三维的环境模型。同时配合运动追踪,它可以告诉用户在空间中的位置,与四周障碍物的距离。这就完全解决了HTC Vive和Oculus头盔需要依靠外界传感器才能判断用户空间位置的问题。

以上这三项技术相互结合,就让设备拥有了以前从未有过的对环境的感应和学习能力。Tango项目同时提供了大量基于安卓和Unity平台的开发工具,方便开发者利用这些独特的功能开发出让人振奋的游戏与应用。

Tango可以做什么

用户可以用Tango轻松扫描家庭环境空间,在添置家具时看到家具在室内的摆放效果。美国家具巨头Lowes已经开发了类似的App,会成为Tango手机的首发零售商来推动这项应用。

对于视觉障碍的用户,Tango第一次给他们带来了低成本,高可靠性的导航工具。

另外用户可以扫描身边房间环境然后玩逼真的AR游戏,比如谷歌展示的在房间里现实外星人demo。

Tango意味着什么

聊完了Tango的技术和功能,再来聊下它的战略意义,这款拥有独创技术的Phab 2 Pro手机很可能对手机与VR,AR行业产生不小的变化:

  • 实现跟VR系统的完美结合

现有的HTC Vive和Oculus是比较单一的VR内容平台,并没有很好的环境感应能力。从Vive需要搭建的复杂的环境感应器就可以看出,简易的环境感应能力是VR系统急需的功能。在其他公司需要外置传感器和性能庞大的PC的今天,谷歌通过Tango在一个低功耗的移动设备上实现了类似的功能,其技术的先进性是毋庸置疑的,而这正好是谷歌在VR领域的完美结合与补充。

  • 对大众市场教育与普及AR技术

目前AR系统主要集中在眼镜与头盔的形式,技术与人机界面的成熟度都还很低,更别说动辄上千美元的价格。Phab 2 Pro以一个低廉的价格($499),大众熟悉的手机模式,给用户起到了教育与普及AR技术的作用,激发更多AR应用的探索与成熟。

  • 制定类似Daydream的技术与设备标准

Google Daydream是Cardboard进一步发展的VR平台,是一套面向所有安卓设备厂商的开放标准。Tango所需的许多技术和标准其实跟Daydream是非常相似的,比如都需要低延时,低误差的IMU传感器,都需要高精度,同步的时钟系统,以及对传统的非实时性的Linux内核提出了更严格的实时性要求。这些标准如果都是由谷歌主导和推进,采用廉价甚至免费的形式提供给设备厂商,它对未来手机行业的控制就会进一步坚强,对上下游产业都会有更强的影响力。

  • 引领新技术发展,颠覆iPhone对创新应用的垄断

很长时间以来优质和创新的应用都会选择iOS作为首发平台。最近几年Apple在手机革命性技术方面的投入似乎有所变缓,而谷歌趁机构筑Cardboard,Daydream,Tango这些将对手机应用和形态产生深远影响的技术与标准。随着大量设备厂商与内容商拥抱谷歌标准,iPhone未来在手机行业中的领先位置将会受到很大的冲击。

关于作者

陈哲,现谷歌眼镜部门高级软件工程师,关注智能传感,VR/AR,可穿戴设备等领域。曾任加拿大黑莓软件工程师,从事无线通信和传感器软件方面的设计与开发。加拿大McGill大学电子工程专业荣誉学士,滑铁卢大学电子工程硕士。