Magic Leap 和微软为什么要做 AR 眼镜:关于原理及挑战


Magic Leap 和 HoloLens 是什么?


Magic Leap 和 HoloLens 都是 Augmented Reality (AR)眼镜的代表。

  

AR 和 VR 眼镜的区别是什么?


AR 眼镜是透明的,让你能同时看到现实世界,和叠加在上面的虚拟成像。应用例子:赶不上 Lady Gaga 的演唱会?没关系,戴上眼镜她就在你家里开一个。代表产品原型:Magic Leap 和微软的 HoloLens。


VR 眼镜是不透明的,只显示虚拟世界,把物理世界完全挡住。应用例子:坐在家里也能去大溪地“潜水”。代表产品/原型:三星的 Gear VR,谷歌 Cardboard,Oculus Rift。

Magic Leap 和 Microsoft 为什么要做 AR 眼镜?


总的来说,这是计算机的必然发展趋势。2007 年苹果推出 iPhone 以来,手机发展太迅猛,用户随时随地带着它,各项使用数据毫无悬念地都在超越 PC 端。所以,人机交互界面的未来主要在于移动。但现在的手机局限在于:


(1)既然要便于携带屏幕就做得小,屏幕小了某些功能就得受限;

(2)显示屏幕是平面也就是二维的,而真实世界是三维的。


未来的 AR 眼镜有望实现大突破,就是既能让用户随身携带,又能在他眼前显示超大屏幕,还能把以假乱真的 3D 内容渲染到他看到的真实世界里(想象你坐在教室里听课,你的老师看起来真实无比,但其实就是在你的眼镜上虚拟出来的)。这样的眼镜大概不会完全取代手机,但毫无疑问潜力无穷。


跟 VR 比较,AR 的应用场景也更广阔(你总不能带着 VR 头盔大街上走吧)。本质上,AR 是 VR 的超集,镜片前面一挡就成了 VR(前提是视角能做到差不多大)。

  

戴眼镜好麻烦,为什么不直接像《星球大战》一样在空气中显示全息图(Hologram)?

  


Holography 是人类的美好愿景,有一天也许能做成,但近期看离实用还早。现在有一些大学实验室在研究裸眼光场显示器(light field display),但需要很复杂笨重昂贵的设备,还只能在安装了的地方用。相对而言,眼镜的可行性要大得多。如果能做成轻便的 AR 眼镜,将是移动人机交互界面上也是计算机发展的重大革新。

在 VR 头盔上加个前视摄像头不也就成 AR 了吗?为什么非要透明的?


好问题。说起来 AR 有两种,一种是前面所说的透明 AR(optical see-through)——现实世界是透过镜片直接看到的。另一种就是“视频叠加”(video see-through 或者 video overlay)——现实世界是通过摄像头捕捉,然后以视频的方式呈现给用户(在上面再渲染一些东西)。事实上,现在手机和平板上已经出现了很多 video overlay 的应用,比如看星空,求翻译,选家具等。




那为什么不用 VR 头盔加摄像头实现这种 AR 呢?当然可以,现在很多 VR 头盔都在试探这种做法。它和透明 AR 相比各有优劣,比如优势在于用视频实现的虚拟和现实的叠加(overlay)要比透明 AR 简单得多,这也是为什么它已经开始在移动端商用的原因。


但劣势也可想而知,用户看到的毕竟只是一个 2D 视频,质量跟眼睛直接看到的世界还是差很大的。而且视频从采集到显示总归是有延迟的,如果跟体感信号不一致的话会造成身体不适。所以不管怎样都还是会有公司前仆后继地去做透明 AR 的,Magic Leap 和 Microsoft HoloLens 就是例子。

  

Magic Leap 为什么那么牛能融到 8 亿美元


前面说的应用潜力无穷肯定是助力,同时还有技术,创始人,团队的原因。




Magic Leap 的核心技术是来自华盛顿大学前研究员 Brian Schowengerdt 的,他导师 Eric Seibel 是光纤扫描内窥镜(Scanning Fiber Endoscope)的专家。大家都知道内窥镜就是医生们做手术时用来体内成像的,本质是个微小摄像头。Brian  很聪明地逆转光路把这个技术用到了显示上,这样通过极细的光纤用激光就可以打出彩色的图像(如图所示)。这个技术十几年前就发表了,后来又不断改进,生成了一堆专利。Magic Leap 很大程度上是基于 Brian 的这些专利。


那这种技术为什么重要呢?我们后面留成一个专门的问题讲。


然而光有技术牛是不够的,AR 眼镜这种东西,要想做好可想而知是需要投入巨大的人力物力的,软件硬件都得有重大突破。苹果、微软、谷歌这样的公司可能有财力去做这个事,为什么会相信一个初创小企业能做成?我觉得犹太人创始人 Rony Abovitz 起的作用很大。Rony 之前是 MAKO Surgical 的联合创始人。这家公司知道的人不多,但他们做的东西说出来就吓人了——是做机器人手术(robotic surgery)的,主要是骨科手术精准定位。听起来科幻超前吧,可是人 2004 年创建,2008 年就上市了,2013 年以 16.5 亿美元卖给了 Stryker Medical。这种 track record 他拉不到投资谁能拉到。


除了创始人兼 CEO,团队也不是盖的,计算机视觉部分拉到了 Gary Bradski 和 Jean-Yves Bouguet 这样的大牛。合作的 Weta Workshop 是在好莱坞给电影做特效的,《指环王》就是他们做的。所以 Magic Leap 当年用来拉投资用的概念视频就像一个微型电影一样。


  

现在该回到前面的问题了,为什么 Magic Leap 的光场显示技术很重要?


首先,它是基于极细的光纤的,可以让眼镜做得轻薄。但更重要的是因为 Brian 证明了用这种技术不仅可以投射出一个 2D 图片,还能显示出一个光场(Light Field)。


现代的近视眼镜为了实现 3D 有两种主要的技术:Stereoscopic(中文翻译成“立体”,但其实不够准确),和 Light Field(光场)。Stereoscopic 眼镜早已商化(比如所有 3D 影院里用的,还有市面上几乎所有 AR 和 VR 眼镜/原型——包括 Microsoft HoloLens,Epson Moverio,Lumus DK-40, Facebook Oculus——都是 Stereoscopic)。而 Light Field 还只在实验室里有雏形(Magic Leap 大概是做得最好的一个)。什么是 Stereoscopic 3D 呢?为什么它不够好还要做 Light Field 呢?什么又是Light Field 呢?

  

Stereoscopic 3D 是假 3D


3D 图像比 2D 图片多了一个维度,这个维度就是景深(depth),看过 3D 电影和 2D 电影的同学知道感官上有明显的区别(只有少数人有双盲症不能看到)。大家知道人眼感知景深有很多机制,包括单眼(monocular)和双眼(binocular)的。单眼能感知的景深信号很多,比如:一个东西遮挡了另一个(occlusion),熟悉的物体的大小(relative size/height),物体移动的变化(远的物体变化慢近的物体变化快,即 motion parallax)。在此基础上,双眼的景深信号也非常强烈(所以远古的我们能更好地判断对面的老虎或者鹿到底离多远)。两只眼睛看到同一个场景会有细微差别,这让大脑能通过三角计算(triangulation)来得到物体景深。


Stereoscopic 3D 就是利用这个原理给双眼分别显示不同的图片(如下图),它们很相似,只在水平方向上有细微差别。而这两张图片拍摄的时候,就是用两个并排的相机模拟人眼的位置拍的,现在的 3D 电影都是基于这个原理。




但这样的 Stereoscopic 3D 有什么问题呢?简单讲它会引起用户身体不适如头晕、恶心等。为什么呢?这又涉及到人眼的一个有意思的机制。当我们在看一个现实世界中的物体时,眼睛其实有两种自然反应:


(1)聚焦(Accommodation/Focus)。眼睛的晶状体就像一个凸透镜,它会调节凸度来让那个物体在咱们视网膜上清楚成像。



  

(2)“会聚”(Convergence)。在每只眼睛聚焦的同时,两只眼球还会有旋转运动来一起指向那个物体。




很自然地,这两种反射运动在神经上是联接的(neurally coupled),也就是说任意一种运动会自动引发另一种运动。这也意味着,在人眼看真实物体的时候,聚焦和会聚的距离总是相等的(vergence distance = accommodation distance,参见下图A)。


那么 Stereoscopic 3D 的问题就来了。因为 Stereoscopic 的投射距离总是固定的(也就是 accommodation distance 不变),而图片的 disparity 会让眼睛会聚在不同的距离(vergence distance)以产生景深 3D 效果(见下图B)。所以,这两种距离经常是不一致的(vergence distance ≠ accommodation distance),会造成这两种神经相连的运动强行分离(neurally decoupled)。


从另一个角度讲,在自然世界里,当人眼聚焦并会聚到一个物体时,别的距离的物体应该都是模糊的(下图C)。而在Stereoscopic 3D 里,不管人眼聚焦到哪儿,别的距离的物体成像都是清楚的(下图D)。


这些都不符合自然界人眼的规律,因此大脑会产生混乱,长时间就会引起恶心晕眩等症状。所以 Stereoscopic 其实是用了一个小伎俩让人能看到 3D 效果,但它并不是真 3D。



  

光场(light field)是真 3D


光场显示跟 Stereoscopic 3D 比的一个很大不同就是它有本事能让人眼聚焦到不同的距离,从而和会聚的距离保持一致。这是最符合人眼观察自然世界规律的做法,因此被称为 true-3D。


可以想象要实现这样的光场显示,并不是那么简单。现在主要是两种方法:空间复用(space multiplexing)和时间复用(time multiplexing)。“空间复用”简单说就是把一个像素当几块用来实现不同的聚焦距离。Nvidia 在 SIGGRAPH 上展示的那个原型就属于这种。这个方法最大的问题就是分辨率大打折扣。我曾经试戴过,基本就是雾里看花。


“时间复用”呢,就是用高速原件来快速产生不同的聚焦距离,让人眼以为它们是同时产生的。这样的好处就是分辨率不损失。大家知道人眼的速度感知是有限的,很多显示器都是 60Hz 的,因为人眼能分辨的极限值一般就是 60Hz(在某些高速内容比如游戏里可能达到 90-120Hz)。这意味着什么呢,如果利用高速显示 360Hz,就可以实现 6 个不同的聚焦距离。而有研究表明用6 个聚焦距离加上一种线性混合(linear blending)的渲染算法就基本能实现从约 30 厘米到无穷远让人眼自然对焦。


Magic Leap 的技术是哪种呢?它最近 demo 用的哪种技术没有公开,但很有可能还是基于 Brian 的高速激光光纤扫描(scanning fiber)技术,也是一种时间复用的办法。Brian 当年先试过只用一根光纤扫描不同聚焦距离,这样做明显对速度要求太高,后来用一个光纤束(fiber bundle/array),比如 16 根,每个光纤有一点位置差,然后同时扫描得到不同聚焦距离。


这样的光场受现实系统的局限肯定不可能是连续的,都是被采样的(downsampled)。但是,即使是这样的光场投射到眼睛里也在理论上是跟真实世界物体光线进入眼睛是一个道理,因此可以实现 true-3D。回到最初的问题,这也是为什么 Magic Leap 的技术重要的原因。现在你也理解了为什么 Rony 说“ HoloLens 会让人恶心”了吧?

 

透明 AR 眼镜面临哪些挑战

  

1、显示


首先能实现近眼光场显示就很难,现在的公司除了 Magic Leap 还都是用古老的 Stereoscopic 3D 的方法,用户戴长了就会眼困头晕恶心。而 Magic Leap 所用的近眼显示技术理论上成立,现实中也还有很多问题要解决。比如:


系统大小: Magic Leap 现在还没有公开过它的原型照片,据报道都还是像一个冰箱一样大的,离可穿戴还有很长的路要走。


光场采样:既然是采样就一定有损失,比如对比度清晰度上,如何才能最优采样?


聚焦和会聚(Accommodation-vergence matching):即便聚焦距离对了,也要保证会聚距离始终与其保持一致。Magic Leap 现在的 demo 视频还只是从单眼摄制的,还没有证据表明他们很好地解决了双眼问题。


室外显示:现在大家的 demo 都是室内的。当用户在室外时,太阳光强度比显示光高几个数量级。至少镜片需要有自动调光的技术。


捕捉内容:虽然现在可以用计算机图形来做 demo,但以后的应用一定会需要相机采集的内容,而光场的拍摄本身还有很多问题要解决。


散热:是一个容易被忽视的问题。当年 Google Glass 出来的时候有人说用着用着脸就像要烧起来了。现在还没有证据表明HoloLens 和 Magic Leap 的眼镜能长时间保持凉爽。


2、 镜片




近眼显示有两个关键部件:显示器和镜片。现在大部分的 AR 眼镜镜片都是基于分光镜(beamsplitter prism)的,比如 Google Glass,HoloLens,Epson Moverio。如图,简单的分光镜就是 45 度角,把显示器产生的光从眼镜框反射进人眼,也同时让现实世界的光透进来。这样做简单便宜,但是镜片厚。一个以色列公司 Lumus 做出了一个光导(waveguide)技术让镜片变得很薄,可惜工艺复杂成本太高。后来也有一些便宜的光导产品出现,但质量还远不如 Lumus。所以,镜片也还有很长的路要走,不仅要做到视角(Field-of-View)大,还要轻薄,透光性好,在折射/反射显示光的时候也要尽量保持光的属性并做到尽量小的光损失。


3、视角(FoV)和分辨率(Resolution)


视角直接决定了用户体验。现在的很多 AR 眼镜视角还在 20°-40°之间,不少试戴了 HoloLens 的记者都对它的视角表示失望。而人眼的横向视角双眼差不多有 200°,纵向有 130°。视角大意味着总的分辨率也要很大才能覆盖,8K*8K 才会比较理想。


4、遮挡(Occlusion)


前面说到过单眼的景深感知有一个很重要的信号就是物体之间的遮挡。在用透明 AR 眼镜时,一个关键问题就是虚拟物体和现实物体之间的遮挡怎么实现。


如果是现实物体在前面,虚拟物体在后面,还相对比较好办,就是要自动探测现实物体的距离,再计算出虚拟物体哪些部位需要遮挡从而不渲染。但是如果反过来,虚拟物体需要遮挡现实物体,就没那么直接了,因为理论上需要把现实物体的光从眼镜上选择性地滤掉。从 Magic Leap 最近的 demo 看,在虚拟物体明亮时,它本身的亮度会自然遮挡后面的真实物体,但当虚拟物体比较暗时,还是有所谓的“鬼影效果”(ghost effect),不符合自然规律,又会让大脑产生混乱。


如果想实现完全正确的遮挡效果,只能在镜片上做实时的像素级的滤光机制(per-pixel shutter),但现在的技术都还不成熟。




5、渲染黑色


透明 AR 眼镜现在还没办法渲染黑色。因为它说到底是虚拟光和自然光的叠加。如果画黑色,用户是看不到的,只会看到后面的背景真实物体的光。类似的暗色都有这个问题。


6、延迟


透明 AR 眼镜还有一个很大的挑战就是延迟。把虚拟物体叠加到真实物体上(比如放一个虚拟水杯到一个真实桌子上)涉及到一系列计算:探测真实物体→计算它的空间位置和方向→计算叠加位置→渲染虚拟物体等。


这一切都必须在一眨眼内发生,让用户感觉不到延迟。比如在那个水杯例子里,我们的头可能是一直在动的,随着我们头动,我们看到的那个水杯应该在桌上原来的位置不动才对。而如果系统延迟过大,我们看到的那个水杯的位置可能就总是不对,大脑就又混乱了。


这对透明 AR 挑战尤其大,因为真实世界我们是直接看到的,几乎没有任何延迟,而虚拟物体的渲染得能跟上这个速度才显得自然。在 video overlay 里,就没有这个问题,因为我们看到的真实世界的视频已经是延迟的了,这样在上面的物体叠加就比较容易跟它保持同步。


7、激光


Magic Leap 以前的技术专利是用激光直接打到人眼里,虽然据说很安全,但还没有确切的科学证据。所以用户接受度是个问题,很多人估计一听到这个就望而却步了。


说了这么多,下一代移动人机交互界面到底什么时候能做成呢?我个人感觉要做成人民群众喜闻乐见的版本至少要 5 年时间,也许更长。因为以上列出的这些挑战,每一个都还需要很多努力才能解决。目前它们很多都还不到量变(只是需要优化)的阶段,而是需要大的质的飞跃。所以,路漫漫其修远兮。但既然这是计算机发展的必然方向,拭目以待吧。


VIA iimedia,作者:吴万敏


魔多VR,虚拟现实专业媒体,让虚拟现实更好玩。

关注魔多VR微信公众号:moduovr


// share