伴随着微软开发者版Hololens的公开发售和Magic Leap的混合现实数字光场技术进入大众视野,混合现实(Mixed Reality)技术受到了越来越多的关注。甚至有不少人预测在未来MR技术的市场容量将大大超过VR,成为取代手机和便携电脑的移动计算平台。
这里先说说混合现实MR和增强现实AR这两种技术之间的关系。混合现实这个名词被大量报道其实是在Magic Leap和微软的Hololens进入大众视野之后的事,微软和Magic Leap都用混合现实来命名自己的技术以显示自己的技术和之前的增强现实技术之间的区别。其实这完全是基于市场方面因素的考虑,因为AR是包含MR在内的一个相当广的范围,包括普通的手机AR(口袋妖怪 Go)、智能眼镜(谷歌眼镜)、Project Tango 手机(联想Phab 2 Pro)、智能试衣镜等都可以算是AR。所以为了区别于那些技术含量较低的AR应用,微软和Magic Leap使用了MR这个名词。微软和Magic Leap定义的MR设备是AR里的光学透视头戴AR(See-through AR)这一分支。MR设备应该是一个轻便的头戴设备,有透明的镜片,用户可以通过这个镜片直接看到外界的环境,还可以通过这个镜片看到显示的虚拟数字物体,虚拟数字物体看起来就像是真实存在于现实环境之中,可以和现实环境中的对象动态的互动。
由以上的介绍可以看出MR是AR里技术难度最高的那个部分,比VR的技术难度还要高出许多。因为MR相比VR在显示方面需要能让使用者看到真实世界的同时也可以看到显示的虚拟数字物体;在延迟方面,目前的主流VR设备只需要把延迟限制在20毫秒以下就能获得可以接受的效果,但是MR却需要至少把延迟降低到10毫秒以下;在和现实世界的交互方面,VR只需要知道用户自身的状态来和虚拟世界进行交互,而MR就还需要知道周围真实世界的各种信息才能让虚拟数字对象和真实世界动态的互动。目前对于VR来说还有很多技术难题没有解决,所以就更别说MR了,其技术难度可想而知。
接下来我们把MR所面临的的那些技术难题分为几个方面,分别讨论一下它们在近期内被解决的可能性。这几个方面包括:显示技术、延迟、三维图形渲染、空间感知。因为大多数MR平台同时也是移动计算平台,所以在解决MR所面临的那些难题时还要受到体积、功耗散热、电池续航的限制。
显示技术
我们先来列一下MR的显示技术需要拥有哪些特性:
高分辨率,以便能清晰的显示文字、物体细节和降低图形边缘的锯齿。
显示图像的广视场角(FOV)以提高虚拟物体的存在感。
有高亮度范围以适应室内和户外环境的使用。
人眼看到显示的虚拟物体所需要的晶状体聚焦程度应该和虚拟物体距离人眼的距离有正确的对应关系。
能遮挡外界的光线,以显示阴影、黑色和让显示的虚拟物体不透明。
为了能够舒适的长时间佩戴,必须要体积小、轻便。
要造出拥有这些特性的显示设备是一项非常艰难的任务。目前市面上的显示设备能实现以上一到两项特性的都属于凤毛麟角。在近期唯一有希望实现这些特性的显示技术就只有Magic Leap的基于激光光纤扫描的数字光场显示技术了。
目前主流的VR设备的单眼分辨率在1K左右,显示图像的颗粒感较强,文字的辨识度很差。为了能够实现较好的显示效果,单眼2K的分辨率是非常必要的。如果要想对文字有比较精细的显示效果,那么单眼4K的分辨率也是需要尽量实现的。通过目前Magic Leap放出Demo看,其单眼分辨率可能在1K至2K之间,能满足基本的文字显示需求。其实Magic Leap在很早前就已经申请过4K分辨率显示设备的专利,所以在未来技术成熟成本降低后Magic Leap也是很有希望能实现4K单眼分辨率的。
目前基于光波导等技术的透明MR显示设备的视场角通常在40度以下。有试用过Magic Leap的人透露其视场角要大大优于现有设备,所以Magic Leap应该已经实现了广视场角的显示技术。显示设备显示图像的亮度和它们采用的光源有很大的关系。由于采用了激光光源,所以Magic Leap的亮度范围也会比采用其它光源存在优势。
Magic Leap的数字光场显示技术是目前唯一实用化的能够使显示的虚拟物体处于和其距离人眼距离相一致的焦平面的显示技术。其它的光场显示技术大多还处于实验室研究阶段。关于Magic Leap的数字光场显示技术的细节可以参考Magic Leap问答(FAQ)。
从Magic Leap已经放出的Demo视频看,它还没有完全解决遮挡外界光线来显示黑色的能力。这很可能是由于对显示设备轻便化所作出的妥协,因为Magic Leap已经申请过多项相关专利。所以只能期待Magic Leap能在未来逐步完善这项功能。
因为MR设备的理想设计目标就是轻便的能够全天佩戴的眼镜,所以显示部分的体积和重量能越小就越好。传统的微投(LCOS,DLP)要想实现高分辨率,体积和重量很难缩小。Magic Leap的光纤投影技术因为能把光源和投影元件进行分离设计用光纤连接,而投影元件的直径只有一毫米左右,所以比较容易设计出轻便的MR眼镜,满足日常长时间佩戴的需求。
由以上这些分析可以看出Magic Leap的显示技术已经能够基本满足MR眼镜的需求。再经过一段时间的发展和完善,提高分辨率到单眼4K水平,实现对外界光线的遮挡功能后就能达到MR对显示技术的所有要求了。
延迟(Latency)
不论是对VR、AR还是MR来说延迟都是一项非常重要的指标。延迟包括了从用户的各种输入活动到因此活动造成的显示图像变化到达用户眼睛的全部时间,所以也叫Motion-to-photon latency。这里主要讨论一下因为头部运动所造成的Motion-to-photon延迟。Oculus的首席科学家Michael Abrash之前还在Valve工作的时候专门发表过一篇文章介绍降低延迟的难度。包括Oculus Rift CV1在内的目前的主流VR设备的延迟在略小于20毫秒的水平。
对于MR来说延迟更为重要,因为用户可以直接通过透明的镜片看到现实世界的景物,而看到现实世界是没有任何延迟的。当用户运动头部后,即使是微小的延迟也会造成显示的虚拟物体在现实世界中的位置出现漂移,从而降低虚拟物体的存在感。MR降低延迟的难度也比VR大,因为大多数MR设备都是移动设备,因为体积和功耗的限制计算能力比桌面电脑要低很多,所以要通过提高计算速度来降低延迟就很困难。
微软的Hololens已经可以把延迟降低到10毫秒以下,所以才会让很多用户感觉到显示的虚拟物体就像是固定在了现实场景中一样。不过10毫秒仍然不是一个非常理想数值。让我们假设有这么一个MR眼镜,它的分辨率是1K,视场角FOV是100°。我们用它来在一个真实的桌子上显示一个距离用户一米的虚拟茶杯。在用户以每秒100°转动头部的情况下(头部每秒转动100°其实是一个比较慢的速度,人可以每秒转动几百度),如果是10毫秒的延迟,虚拟茶杯显示的位置和它应该处于的真实位置在屏幕上就相差了10个像素,在空间中就相差了1.7厘米的距离。这个差距还是相当明显的,用户会观察到漂移和抖动现象。如果延迟是1毫秒,那么像素差距就是1个像素,距离就是1.7毫米,这样就显得相当稳定了。所以对于MR来说对低延迟的需求是没有止境的。
要想降低延迟就先让我们来看看延迟都是从何而来。延迟主要来自三个部分:追踪传感器、三维图形渲染、显示。传感器探测到运动后,GPU用新的位置参数渲染出一帧新的画面,然后显示器把画面显示出来被人眼看到。这其中的每一步都存在着延迟。下面让我们分开来看看各部分的延迟都有没有被进一步缩小的可能。
1、追踪(tracking)
目前的MR设备进行头部运动追踪用到的传感器一般为IMU(惯性测量单元)加摄像头。IMU主要用来低延迟的确定头部方向,而摄像头用来结合SLAM(同步定位与地图构建)算法定位头部位置和姿态。
IMU包括陀螺仪和加速度计,可以用来确定头部的相对方向。IMU的优点是工作频率非常高延迟很低。有些IMU的工作频率可以达到几千赫兹以上,所以用IMU追踪方向变化的延迟可以低于1毫秒。IMU的缺点是得到的方向信息会慢慢漂移,所以需要定期用其它传感器测得的数据来进行校正。
通常情况下对于MR应用,因为头部方向转动所带来的虚拟物体相对位置的变化要比头部平移高出许多。所以IMU追踪方向变化的低延迟能够非常好的适应MR应用的这一特性。
要确定头部的位置和没有漂移的方向数据就需要靠摄像头加SLAM算法了。这一方法的延迟取决于摄像头的帧率FPS和处理器运行SLAM算法的速度。目前适用于SLAM算法的全局快门摄像头模块的帧率大多在100FPS左右,也就是10毫秒延迟。但是最近一段时期摄像头图像传感器的技术发展非常迅速,所以在短期内能够出现小型实用化的帧率高于200FPS甚至300FPS的全局快门摄像头模块也是非常有可能的。
要想提高SLAM算法的速度就只有提高处理器的计算速度,但是移动平台的CPU性能是非常有限的,而且还要考虑功耗问题,如果耗电太多电池很快就会被用光。所以为了提高SLAM算法的速度和减少CPU占用降低功耗,就需要使用专用的处理器来解决这个问题。微软的Hololens使用的是专门设计的HPU(Holographic Processing Unit)。Hololens的HPU使用的其实是Cadence设计的24核DSP(数字信号处理器),其运算速度比纯软件的实现方案要快200倍。这也正是Hololens能够处理四个环境传感器的数据并实现低于10毫秒延迟的原因。联想推出的Google Project Tango手机使用的方案也是基于DSP的,不过使用的是集成在高通骁龙SOC内部的DSP。Project Tango的这套方案最终能够实现CPU占用率小于10%的视觉追踪和定位功能。
使用DSP跑SLAM算法的方案其实还不是效率最高的。如果能把SLAM算法ASIC(专用集成电路)化,那么速度和功耗还能得到进一步优化。所以未来使用200FPS以上帧率的摄像头加ASIC化的SLAM能够把位置和姿态的追踪延迟降低到5毫秒甚至更低的水平,而功耗可能会低于1瓦。这样的性能在近期的技术条件下是可能实现的。
这样整个头部追踪定位系统就有可能实现低于1毫秒的方向延迟和低于5毫秒的位置延迟。
2、图形渲染
当获得了当前头部的位置和姿态数据后,就需要根据这些数据使用GPU来进行三维图形的渲染。这个过程的延迟也取决于GPU渲染的帧率。目前主流VR设备的渲染帧率大多在90FPS,这样延迟就会在10毫秒以上。这么高的延迟显然不适合于MR设备。如果要为了降低延迟而提高帧率到200FPS甚至300FPS显然是非常不现实的,因为本身移动平台的GPU性能就非常有限比桌面平台要低一个数量级以上,如果还要提高帧率到这个水平,那么可想而知渲染出来的画面会有多么惨不忍睹。
所以就需要寻找除了提高GPU渲染帧率以外的其它方法来降低渲染部分的Motion-to-photon延迟。其实在90FPS的帧率下,虽然GPU渲染出来的每帧画面会有不同,但是这个不同已经非常小了。所以如果能够根据当前最新的头部位置和姿态数据把之前一帧画面的像素扭曲一下或者说是重投影一下,那么就可以不用重新渲染一帧画面而得到对应当前头部位置和姿态的新的一帧画面了。
类似这样的技术其实已经广泛应用于VR设备了。例如Oculus把这项技术叫做ASW(Asynchronous Spacewarp),还有其他人把它叫做Reprojection。使用ASW技术后当前画面根据头部位置和姿态的更新就可以独立于GPU的渲染过程了。不过如果渲染帧率过低的情况下使用ASW还是会产生各种画面缺陷的,而且ASW只能解决头部运动造成的Motion-to-photon延迟。
ASW需要使用到的计算比较简单,所以可以在极短时间内完成,每次做ASW的时候都是使用当前最新的头部位置和姿态数据来完成的,所以这样就大大降低了Motion-to-photon延迟。
3、显示
显示系统的延迟受到很多因素的影响,比如传输、编码、缓存、显示技术等。理想情况下画面被渲染好后显示系统如果立即可以把画面的各个像素显示出来用光子发射到人眼,那么就不存在延迟了。但是实际情况却要复杂的多。有些显示器把接收的数据缓存起来,然后一次性的显示出来,普通的LCD液晶显示器只是去改变像素的显示状态就需要几毫秒的时间。所以要降低延迟就需要从底层开始重新设计显示系统。
最直接的降低显示延迟的方法就是提高显示器的刷新率了。虽然Nvidia已经开发出了刷新率能达到1700Hz的实验用显示器,但是实用化可能还需要相当长的一段时间。所以就需要用其它的方法来降低显示延迟。
之前提到过的Abrash的文章中提出了一种叫“race the beam”的方法。这种方法是专门为扫描式显示技术所提出的。因为扫描式显示技术是逐像素逐行进行扫描显示的,所以在显示一个像素前如果GPU能用最新的头部位置和姿态数据也进行逐像素逐行的图形渲染,渲染好这个像素后立即发送给显示器进行显示,那么就有可能在不提高显示器的整体刷新率的情况下极大的降低延迟。
这种“race the beam”的方法的问题在于需要改变现有GPU的渲染模式,所以可行性不高。但是如果使用上面提到的ASW技术来以极高的频率进行ASW画面更新,那么就不需要改变现有GPU的渲染模式就能使扫描显示每个像素时都能对应最新的头部状态。
不过当前ASW是在GPU上完成的,也需要消耗GPU资源,并受到GPU处理能力的限制。好在ASW需要用到的计算比较简单,并且高度并行化,所以非常适合ASIC化。因此如果能够把ASW的功能也ASIC化就能在不增加GPU负担的情况下实现非常低功耗而且高刷新率的ASW画面更新功能了。为了降低“race the beam”延迟把ASW的频率提高到每秒1000甚至2000次以上应该都是有可能的。
这样对于扫描显示技术,即使刷新率不能达到1000Hz以上,配合“race the beam”和高刷新率的ASW,也能达到1毫秒以下的低显示延迟。
Magic Leap所使用的正好是激光扫描显示技术,所以可以采用上面提到的方法来实现低于一毫秒的显示延迟。而且由于Magic Leap使用了几十个光纤扫描元件同时进行扫描显示,所以显示的画面有可能出现的变形也会大大减小。
结合了上面提到的各种降低延迟的方法,MR设备的总体延迟是有可能达到低于1毫秒的转动延迟和低于5毫秒的移动延迟的。而且随着技术的发展,在短期内这些延迟还会继续减少,从而基本上解决MR技术所面临的延迟问题。
图形渲染
之前在显示技术部分已经提到过要实现令人满意的显示效果需要达到单眼4K级别的分辨率。虽然通过上面提到的降低延迟的方法GPU已经没有了提高渲染帧率的压力,但是要实现单眼4K级别的渲染分辨率对于移动GPU来说还是一项不可能完成的任务。
不过现在已经有方法可以降低MR设备在高分辨率下的渲染压力了。Foveated Rendering(视网膜中央凹渲染)通过追踪人眼的视点,在人眼视野的中央位置进行高分辨率的渲染,而在周边视野只用进行较低分辨率的渲染。因为人眼的分辨率在视野中央高而在边缘逐渐降低,所以Foveated Rendering能在大幅降低GPU渲染计算量的情况下维持人眼看到的画面的质量。
还可以采用对虚拟场景的不同部分使用不同的分辨率进行渲染的方法进一步降低GPU的压力。使用过目前的VR设备的人可能会注意到,虽然单眼分辨率只有1K左右,但是场景中的三维物体和背景看起来却没有那么不清晰,不过如果场景中有文字,那么文字就会显得比较难辨认。所以文字就需要比三维物体高的分辨率才能有较好的显示效果。因此就能根据这一特点使用4K分辨率来渲染文字,使用2K分辨率来渲染三维物体,这样就能进一步的减少GPU的负担。
通过以上的方法即使是使用了单眼4K分辨率的显示系统,比起当前的单眼1K分辨率的显示系统,所需要的GPU计算资源也不会有太大的提高。到了单眼4K分辨率显示系统普及的时候,那时的移动GPU完全有能力支持MR眼镜的渲染和显示工作。
空间感知
其实之前提到过的视觉SLAM算法也属于空间感知功能的一部分。除此之外还包括物体的识别、手势识别输入和根据深度摄像头对场景进行三维重建等功能。这些功能的算法随着近期计算机视觉和深度学习等技术的迅速发展而逐渐进入实用化阶段。不过这些技术应用在MR眼镜上所面临的困难是它们都需要很大的计算量。好在近期面向移动平台的计算机视觉和深度学习专用处理器都开始出现了。除了Hololens的HPU外,最近被Intel收购的Movidius就是专门生产面向移动平台的计算机视觉和深度神经网络处理器的。还有诸如IBM和国内的一些公司也在设计人工神经网络处理器。这些处理器都有着极低的功耗。
所以未来在移动平台完成一些较复杂的空间感知任务所面临的那些难题也正在被慢慢解决。
虽然MR技术所面临的那些难题能够在近期被基本解决并满足日常的使用需求,但是作为一个移动计算平台其所受到的计算能力和功耗的限制在可以预见的未来是很难被解决的。所以把MR的一部分计算搬到云端就是非常有必要的了。
云计算
MR技术的画面渲染和空间感知是对计算量需求最大的两个部分了。虽然我们可以使用各种算法来进行优化使用各种专用处理器来辅助计算,但是所受到的限制还是非常大,无法与桌面平台对比,更别说云端强大的服务器了。要想用便携的MR眼镜来玩特效绚丽的大型三维游戏或者运行极耗资源的专业软件是不太现实的。所以我们就需要讨论一下把这些功能搬到云端的可能性了。
先来说说三维图形的渲染部分。因为MR对延迟有着极高的要求,所以要实现画面的云端渲染就面临着很大的挑战。不过好在有了类似ASW这样的技术后对延迟的要求有所放松,但是超过10毫秒的延迟仍然是无法接受的。那么当前的技术条件下能实现的延迟可以低到多少呢?最近云游戏公司Parsec发表了一篇文章来介绍它们的技术细节以及能达到的性能。它们在使用现有GPU编解码功能的情况下已经实现了本地网络10毫秒以下的延迟,云主机17毫秒的延迟的水平。这个水平已经能够实现在本地网络用桌面主机来加速MR眼镜画面渲染的程度了。
但是在公共无线网络环境下要想实现这么低的延迟就不太容易了。现有的4G移动网络是无法实现的,只有依靠未来几年的5G移动网络才有可能达到。5G网络在设计初就确定了低延迟高带宽的特性,因为5G预想的未来使用场景就包括了自动驾驶汽车、远程机器人手术、VR等对实时性和延迟要求极其严格的情况。5G网络的目标是达到1毫秒的延迟和最高10Gbit/s的带宽。不过只凭5G移动网络还不足以消除延迟,因为信号传播虽然是光速也仍然是有限的,要达到1毫秒级别的延迟,云数据中心距离用户的距离最好还是要在几十公里以内。所以未来支持MR移动计算平台的云计算平台一定是基于5G网络和较高空间密度的云数据中心的。
减小网络延迟到1毫秒级别后,还需要对视频编解码等技术进行降低延迟的优化才能降低总体的延迟水平。在经过各种优化后移动MR设备用云计算进行图像渲染便成为了可能,甚至有可能把延迟降低到低于目前本地网络渲染10毫秒的水平。
接下来再说说用云计算来辅助进行空间感知的部分。现在已经有例如Cloudgine这样的云计算创业公司计划为未来的VR和AR应用提供云服务了。使用Cloudgine的云服务可以把人工智能、物理、逻辑等消耗大量资源的计算工作放在云端,从而加速本地应用的运行速度。MR空间感知这一部分可能对延迟就没有那么高的要求了,因为低延迟的部分可以在本地处理,而需要计算量大的部分可以交给云数据中心处理。而且有些功能并不需要重复进行,比如对周围空间的三维重建功能一般在短期内就只需要进行一次。
有了云计算的支持,空间感知部分就能实现一些高级的功能了。比如把MR眼镜拍到的视频和深度图像上传到云平台,云平台将来就有可能通过这些信息推算出你周围空间的包含所有光源的光照信息。利用这个信息就能对虚拟物体进行模拟现实光照的渲染,从而使虚拟物体看起来就像是真的存在于真实世界一样。利用云平台还可以帮助识别周围的景物进行精确的室内和室外导航,识别建筑和物品来搜索查询信息等。近期深度神经网络和人工智能技术的迅速发展使这些功能的实现成为了可能。把MR、5G网络、云计算、深度学习和人工智能等技术结合起来将成为未来改变人们生活方式的新一代的计算平台。
让我们设想一下未来把MR和云计算结合起来的应用场景会是什么样的。在家里,MR眼镜可以连接到本地网络的台式主机,于是你就可以用台式主机辅助计算来用MR眼镜玩一场高品质的VR游戏。到了工作场所,MR眼镜可以扫描你的虹膜进行认证后直接连接到公司的私有云,这样你就可以在私有云里处理公司事务,利用私有云的计算能力运行一些大型专用软件来完成工作。到了公共场所和户外,你可以通过5G网络连接到付费的MR云计算服务,这样就能享受到那些各种各样的公共MR服务了。
总结
通过上面的这些分析我们可以看出MR所面临的那些技术难题都是可以在近期被解决的。所以未来MR技术即将进入一个飞速发展期,并逐渐成为人们工作生活中的主要计算平台。极有可能在面向普通消费者的MR眼镜设备就会开始大规模上市,并且在接下来的五到十年内使MR发展成为一项成熟的技术。
如果觉得《MR混合现实技术所面临的那些难题有可能在近期被解决吗?》对你有帮助,请点赞、收藏,并留下你的观点哦!