有了VR位置追踪技术,它能让你在虚拟世界中自由行走
VR和AR经过多年发展,现今也算小有所成,给很多人带来了全新的体验。然而,对比那些科幻电影,总觉得它们还差很多东西。没错,电影里那些炫酷的虚拟世界场景,都需要一个不可或缺但门槛又非常高的技术来支撑,那就是位置追踪。这个问题不解决,VR、AR就永远只能是一种宅男科技。
《头号玩家》电影相信很多人都看过,片中的场景应该算是VR的终极形态了。但是要达成这样的体验,必须要解决一个问题:如何定位玩家的空间位置?也就是所谓的位置追踪怎么实现。对于AR而言,这个问题还不算很尖锐,因为它是基于现实世界的图像增强。但全沉浸式的VR就不同了,玩家看不到周围的真实环境,展现在玩家周围的完全是个虚拟世界,这个虚拟世界又必须把真实环境里的各种障碍以及玩家的空间位置准确反映出来,才能让人畅玩。
定位空间位置这个概念很好理解。但为了接下来便于阐述各种定位技术,我们还是要从学术的角度来说明一下。我们生活在三维世界中,稍微学过几何的人都知道一旦确定了任何物体的X、Y、Z坐标,就能准确知道它的位置。VR行业将这种定位坐标称为Dof(自由度,Degree Of Freedom),由3个坐标描述的位置信息即3Dof。但是,这样只能定位到一个体积忽略不计的“点”,而现实世界任何物体都有体积,仅靠3Dof描述三维空间物体的位置是远远不够的,于是便有了“位姿”。
是的我没有打错字,位姿是指物体在三维空间里的位置和旋转量。位姿需要6Dof来描述,通俗地讲就是在3Dof的基础上,加入三个角度参数,也就是让物体还能绕三个轴转动,构成六轴定位。很多人第一次听到这个词,应该都是因为Wii和PS3的手柄。在虚拟世界中,只有6Dof才能准确定位物体。
▲由3Dof和6Dof描述的角色动作,6Dof的定位更加准确。
电影和游戏制作中经常用到动作捕捉技术,其实就是在追踪贴在人体关节上的标记点的6Dof。多个标记点根据人体动作规律连接起来就能模拟出人的动作。实际应用中一般只能捕捉较大关节的位置信息。要想精准捕捉每块骨骼、每块肌肉的位置是很难的。有了动作捕捉,才能在虚拟世界中呈现人物的准确形态。
▲动作捕捉在电影和游戏制作中都是关键技术,今后有望在AR/VR中扮演同样角色。
目前,位置追踪技术主要有两大门派:依靠各种外部设备来定位的“外向内追踪技术”(Outside-in Tracking),和不需要任何外部设备的 “内向外追踪技术”(Inside-out Tracking)。
外向内追踪技术
外向内追踪技术是当前相对比较成熟的主流技术,它的实现方法也有很多:光学追踪、电磁追踪、惯性追踪、超宽带(Ultra Wide-Band,UWB)追踪等等。这其中,光学追踪是比较常见的方案。光学追踪需要一个标记点和负责捕捉这个标记点的相机,这其中根据相机和标记点的数量、相机曝光方式、标记点是否有源等,又分成了好几个流派。PS MOVE用的是单相机单标记点;PS VR、Oculus、HTC Vive是多相机多标记点。
单标记点方案只能捕捉3Dof信息,因为对于一个点而言,它怎么旋转都还是一个点。多标记点方案才能记录到6Dof位姿信息。
以Oculus Rift为例,它利用多个红外LED作为标记点,通过两台已校准空间位置的红外相机实时拍摄获取标记点方向,再通过PnP算法,即利用四个不共面的红外LED的位置信息、四个点获得的图像信息计算出设备在红外相机坐标系里的位置,进一步拟合出设备的三维模型,最终得到玩家的位置和方向。
▲设置Oculus Rift红外相机的位置参数是很重要的。
HTC Vive采用了激光扫描方案。它有两个Steam激光发射器,分别在水平和垂直方向上以每秒6次的频率发射激光扫描定位空间。头戴显示器和手柄上有数十个光敏传感器,设备通过测量传感器接收到激光的时间差来计算传感器相对于激光发射器的位置。有多个传感器的位置就能拟合出设备的位置和方向。相对于红外定位技术而言,激光扫描定位具有成本低、定位精度高、可分布式处理等优势,且几乎没有延迟,不怕遮挡和干扰。
▲HTC Vive的“Lighthouse”,由两个steam激光发射器进行定位。
当然上面的话说起来简单,但实际上不论Oculus Rift还是HTC Vive,它们的定位计算过程都十分复杂,对于图像处理设备的要求也很高。但横向比较的话,激光扫描定位效果要优于红外追踪定位,运算量也相对较少一点。
现在我们可以看到,上面提到的这些定位方式有着很大的局限性:必须校准相机空间位置,意味着换个环境就得重新调试;必须通过线缆连接外部主机(即图像处理设备),意味着使用者不能做很大的动作;必须在相机拍摄范围内活动,这一点最不能让人容忍。除非脚下有一个万向传送带之类的玩意儿,能保证使用者无论往任何方向奔跑,在现实世界中都不会离开原地,就像跑步机那样。然而现实中并没有这样的东西。
所以需要在定位技术上做文章。这就得聊聊微软的黑科技HoloLens了。
内向外追踪技术
HoloLens是一款头戴式AR显示设备,它的价格和技术都让业界惊叹。技术层面上,它采用了不需要任何外界传感器的“内向外追踪技术”。既然不需要外界传感器,就不需要外部硬件搭建、标记,也不受传感器监测范围限制,也就有了更多样的移动性和更高的自由度。
内向外追踪也是一种光学追踪方案。在头戴设备上安装摄像头,让设备自己检测外部环境变化,经过视觉算法计算出摄像头的空间位置。HoloLens有一个深度摄像头,一个200万像素的图像摄像头,以及4个环境感知摄像头。它通过采集环境中的特征点,利用SLAM(即时定位与地图构建)算法获得空间位置信息。
▲HoloLens的玻璃罩子下集成了现今比较前沿的定位技术。
所谓SLAM算法,是通过传感器获取环境信息,包括视觉信息、深度信息、自身加速度、角速度等来确定自己的位置,并完成环境地图的构建。SLAM有几个很典型的应用场景:一是电影《普罗米修斯》中的探测球,自动飞行自动扫描,分分钟建立环境的3D地图并且还能全息呈现出来。现实的科技当然达不到这一步,但谷歌、苹果等的无人车、米家扫地机器人等,都是通过SLAM算法进行实时环境分析的。谷歌的Project Tango项目,也是利用该算法,让手机实时绘制周围环境的3D模型。可以说,SLAM是内向外追踪的核心内容。
▲电影《普罗米修斯》中的环境探测球,算是SLAM的顶级表现了。
同样地,内向外追踪也有多相机和单相机的方案,它们各有千秋。多相机方案通过多个摄像头采集外部空间的特征点,通过三角定位计算出特征点的空间数据。优点在于场景兼容性强,不需要太多的特征点就能定位。缺点就是图像处理运算量非常大而且成本很高,HoloLens内置的处理芯片成本就高达数百美元。
单相机方案利用摄像头与外部的环境的任意两个特征点形成三角定位,继而计算出空间位置。优点在于图像处理计算量较小,成本也较低,但需要在环境中标记大量的特征点,占用太多空间。意味着该方案需要足够的空间来采集特征点,才能实现定位功能。
采集特征点只是其中一个方面。其实HoloLens所实现的效果是一个非常复杂的工程。它相当于将Oculus、Kinect全部集成到用户脑袋上。除了SLAM之外,还需要实时的3D绘制能力。实时3D在今天的游戏中早已不叫事儿,但要让一款移动设备能画出以假乱真的3D背景也并不容易。当然,在英伟达、英特尔等的推动下,双摄像头实时渲染已经很成熟了。
显而易见,这类内向外追踪设备面临的挑战也很大。首先,没有外部图像计算设备的辅助,对于头戴设备的计算能力要求就更高。持续不断地SLAM再进行3D合成虚拟空间的计算量十分庞大,并且非常耗电。HoloLens基于AR而不是VR,呈现的虚拟物品也并不复杂,3D计算量顿时少了几个数量级,所以产品整体的电量主要耗在SLAM上。