Niantic深度总结:如何用AR唤起魔幻现实主义,为人类感知设计AR系统
用增强现实技术来唤起魔幻现实主义
(映维网 2019年09月04日)Diana Hu是Niantic的工程总监和Augmented Reality Platform负责人,她曾帮助开发了诸如《Pokemon Go》,《Ingress》和《哈利波特:巫师联盟》等AR游戏。在这之前,她是Escher Reality的联合创始人兼首席技术官。Escher Reality是Y Combinator于2017年孵化的初创公司,并在后来被Niantic收购。
Diana Hu涉足AR大概有3-4年时间,而她自2012年以来就为不同的产品构建大规模的机器学习和计算机视觉系统。
日前,Diana Hu在QCon大会发表了题为“Evoking Magic Realism with Augmented Reality Technology(用增强现实技术来唤起魔幻现实主义)”的演讲。
1. 何谓魔幻现实主义
Diana Hu首先通过四本书来介绍何谓魔幻现实主义。
例如,《百年孤独》的作者是加西亚·马尔克斯,一位诺贝尔文学奖获得者。他来自哥伦比亚,而这本书与马孔多镇有关,同时涉及大量关于哥伦比亚的历史。它叙述了一个家庭的日常生活,一段关于孤独的旅程。这本书的有趣之处在于,它以新闻和世俗的方式讲述了一系列故事,但其中的角色经历了很多看似普通的神奇经历。例如,有会变老的鬼魂,有能够飞行的飞毯,而这对于那里的角色来说似乎是最普通不过的事情。
第二本书是弗兰兹·卡夫卡的《变形记》。它讲述了一个年轻工作狂的故事。突然有一天,这个年轻人变成一只昆虫,然后从昆虫的视角来感受现实和社会。这本书的有趣之处在于故事的叙述方式,这种昆虫变形十分奇异,但在故事中,这听起来十分正常,仿佛只是刚刚发生的一件普通事情。你醒来,你变成了昆虫,就这样而已。
第三本书的作者是村上春树。他是一位日本作家,这本书的书名是《奇鸟行状录》。这是一个关于冈田亨寻找妻子失踪的猫咪的侦探故事。这听起来同样十分正常,但有趣的是,随着故事的开展,他开始在东京发现了一系列奇幻的事情。这个故事同时是以一种非常实事求是式的方法来叙事故事,令这一切看似十分魔幻的事情是可以出现在我们的日常生活之中。
最后第四本书改编成了电影,由萝拉·艾斯齐维撰写的《巧克力情人》,它讲述了一位禁止婚恋的女人在制作巧克力时能够释放魔法的故事。同样,这样戏剧化的事件在故事中是非常平常的事情。
她说道:“上面提到的书籍及作者有什么共同之处呢?所有这一切都遵循一种名为魔幻现实主义的文学写作方式,不是科幻作品或幻想作品,而是魔幻现实主义。对于幻想主义,一个关键的要点是它需要一个完全不同于现世的世界,如《权力的游戏》,《哈利波特》或《星球大战》。一个不存在于现世的,完全不同的世界。科幻作品同样不是魔幻现实主义,它主要描述了一个变样的世界诶,其中科学带来了疯狂的进步。”
魔幻现实主义的有趣之处在于,其虚构的元素发生在我们的现世世界中。它们可能发生在你的邻居身上,可能是我向你讲述的故事,或者是你奶奶向你讲述的故事。它对魔幻元素有一个有趣的介绍,而魔幻元素在很多时间都可以作为升华故事和叙述故事,或者批判现实社会所发生的事情,如卡夫卡和《变形记》对社会孤立的批判。
2. 映照现实的魔幻启示
上面所提的内容有什么关系呢?对于这种映照现实的魔幻启示,它经常是都以类似新闻报道的,不带任何感情色彩的方式来叙述故事,比如说“是的,有一条飞毯,但那又如何?”正是这种仿佛是在叙述事实一样的方式来讲述包含在日常世界中的魔幻元素,但请注意,这种想象力是用于丰富现实而不是像科幻作品或幻想作品那样逃避现实。它依然是基于现实,因为如果它只是魔幻,这将是纯粹的奇思妙想。通过将其植根于现实世界中,这会以一种意想不到的方式构建出令现实更加美好的维度。
对于大多数这样的故事和书籍的叙述方式,一个重要的地方是它以一种引人入胜的,现世所无法实现的方式来叙述故事,但同时又令这一切显得逼真可信,以至于你相信飞毯确实能够飞行,鬼魂确实会变老,而且因为相关的叙事方式,它们看起来是十分普遍的事情。
这与增强现实又有什么关系呢?Diana Hu对增强现实的定义是:一种能够将魔幻元素包含在物理世界中。魔幻的类比对照是数字化元素,是数字角色,它们可以显示出现并无缝融合至物理世界,并且遵循物理定律和人类的行为感知方式,但同时用奇幻元素作为佐料,因为有了数字,你可以用更有趣的方式来表示信息。
3. 增强现实
你如何构建这样的现实呢?其中有什么要素呢?
对于魔幻现实主义,其构成是魔幻+现实。至于增强现实,其对应的是数字+物理。Diana Hu指出,构建这样的现实有三个原则:探索;锻炼和社交。
- 探索是指更多地探索我们周围的世界。这意味着到处都有很多故事和冒险等待被发现。诸如《Ingress》或《Pokemon Go》会在你的社区呈现一次冒险之旅,而你将会找到一些自己所不了解的历史地标信息。
- 锻炼是一个方面,我们都需要一点推动力量,而这种类似于嵌入其中的,遵循其物理,遵循身体自然节奏的元素能够增加AR的可信度。
- 另一方面是社交,我们天生是社交动物。创建你能够与朋友一起参与至现实世界的体验,以及创建一种我们可以结交新朋友的方式,不仅仅只是社交网络意义上的朋友,而是某种能够在真正意义上与你建立联系的朋友。
Diana Hu继续指出,数字世界应该遵循与现实世界类似的规则,从而维持真实感。作为现实的一部分,世界十分多样化,其存在诸如天气这样的元素,它会下雨,它会出太阳,又或者会下雪等等,所以Niantic希望游戏能够将其体现出来。这是《Pokemon Go》中的一项功能。当下雨时,你会看到相应的效果会正确得呈现在手机的数字屏幕之中。
4. 实现可信的数字元素
如果实现可信的数字元素呢?Diana Hu表示我们可以向魔幻现实主义大师学习,因为他们已经编织了所有这些可信的故事,当你阅读它们时,你能够完全沉醉其中。对于AR,我们如何做到这一点呢?
这主要涉及三个元素:理解世界;视觉;创造。
- 为了实现优秀的AR体验,首先你需要理解世界,然后才能用数字增强世界。这意味着你必须主要利用所有不同的传感器,比如说摄像头。你需要开始理解和解释它的意义,语义,并且标记你所看到的内容。理解世界与SLAM和Vince等算法息息相关,其中你利用不同的摄像头捕获位置来进行三角测量,并且通过基于时间的立体视觉来建立3D理解,然后进行特征提取和使用一系列其他组件来构建用于AR的世界表示。为什么AR需要它们呢?因为为了显示数字角色,你需要将它们锁定于世界。你如何锁定它们呢?你必须大致了解你的相干系统,而SLAM具备构建它的能力。
- 另一点是视觉的需要。为了显示可信的数字对象和数字角色,它们需要融入至真实世界。你需要创建中合理存在于3D空间中的角色。这是一个充满图形,3D动画或诸如此类的世界。
- 第三点是创造。你拥有了所有这些组成要素,‘好,我理解了世界。现在,我可以渲染一些角色’,接下来你应该如何创建角色呢?增强现实之所以适合游戏的原因是,游戏开发者一直以来都是以在3D中感觉自然的方式来创建世界和体验。用于构建体验的工具有诸如Unity和Unreal及其他。
4.1 为人类感知设计AR系统
Diana Hu讨论了构成AR的一些要素。她同时提到与AR相关的重要方面:人类。你必须构建能够响应人类的AR系统。上文提到的很多算法都与自动驾驶汽车相似,而这是两者产生不同的地方,因为AR系统需要为人类提供非常高的交互性。
Diana Hu提到了米勒响应时间测试。这个研究的核心是,对于任何不足100毫秒的响应,你会感觉它是瞬间或实时发生,或者感觉自然。
一秒左右足够快,但不是瞬时,这样的速度足够获得响应,但不够好。如果它超过10秒,也许当你看到加载栏时你就会失去用户,因为用户将失去耐心。所以,你需要设计小于100毫秒的系统。这是创建难以置信的真实感或令一切成为支持物理世界支持我们感官的事实的关键。
右图的研究是关于心理学场景感知期间的眼球运动和视觉编码,它说明视网膜需要看着图像80毫秒左右才能完全登记完成,并理解它是什么。
4.2 提高响应时间
要构建可信的AR,我们需要在移动设备的限制内构建足够迅速的AR系统。它们只能提供小量的计算,它们的续航不长,摄像头质量不够好,而且大多数传感器相较于机器人或自动驾驶汽车系统都有点低端。对于后者,你或许可以把GPU放到汽车尾箱。但对于移动设备,你显然不想这样做,因为在未来当我们发展到头显时代时,你不会希望烧着用户的头发。有很多诸如此类的约束,所以你必须为低计算和低续航进行优化,同时实现非常非常快的响应速度。
我们如何做到呢?
Niantic采取了上面这两个设计原则。一个是你希望尽可能实现超级高效的网络;另一个要素是并行编程。
Diana Hu说道:“世界正在越来越多地朝多核发展,而非单个越来越快的大核,所以我们需要可以利用这一点,令更多的核心而非单个大核来负责处理。一个例子是iPhone的处理器,甚至是三星设备的处理器,四个大核心和四个小核心的设计。四个小核心负责快速简单的计算,四个大核心负责计算负载更高的任务,所以你需要聪明地利用它们,而随着时间的发展,这种设计将会越来越普遍。”
她进一步指出,我们的生活是实时进行。当你和朋友说话时你没有加载条,你希望与包含角色的AR体验同样没有加载条,它们应该要感觉自然。
传统云架构服务的当前限制之一是,对于大多数基于云端的应用程序,一系列的机器都是托管在远处。如果你经常逛亚马逊,弗吉尼亚州或俄勒冈州的亚马逊,当你在世界其他地方付款时,潜在的往返将是几百毫秒。单单这个数字已经超过我之前提到的低于100毫秒的人类感知。如果是几百毫秒并且你尝试渲染你朋友的AR位置,你将大致是每秒渲染一个位数的帧,而这是非常糟糕的事情。
Diana Hu接下来列出了四个象限:实时;非实时;可靠信息;不可靠信息。显然,逼真可信的AR需要位于左上象限。
我们如何达到我们想要的象限?事实上,没有一种神奇的解决方案能够真正结合两者。当然,是有一些新的网络协议或一些巧妙的解决方案。
Diana Hu解释说,Niantic用自己的网络协议来建立AR技术的实时P2P技术。她指出:“你可以把它想象成WebSockets,但效果更好,不是非常笨重,但对包,对计算机视觉进行了优化。如果你尝试利用云端领域,你手机拨号一次,信号进入一个手机信号塔,然后进入云端,然后云端又传到手机信号塔,最后再传到另一个手机。整个往返是几百毫秒,而届时你不会看到你的朋友被虚拟角色所包裹。画面会不和谐,因为存在偏差。它将发送先前的位置,而不是当前的位置。”
“我们所做的事情是砍掉将往返云端的过程,而是直接与手机信号塔对话。这是一种有趣的方法,因为在5G的世界中,数据传输速度变得更快。这是另一项定律,计算存在各种各样的定律,埃德霍姆带宽定律表明无线通信在某个时候将与有线通信一样快。存在可以做到这一点的物理定律和数据传输方法。”
“围绕边缘计算的概念正在推动业界将计算放在手机信号塔上,由于我前面提到的所有原因,这对AR而言将非常有趣。你可以开始聚合一些计算并在信号塔中执行它们。现在,我们所做的实际上只是在手机进行操作,并消耗多一点你的电池电量,但稍后我们可以减少这一点。这是行业发展的有趣之处,同时是我们押宝的地方。现在,你可以从几百毫秒减少到几十毫秒,然后你就达到了人类响应时间方面的神奇预算。”
4.3 加速计算
另一个设计考虑因素是加速计算这个概念,目前行业正在实现更多的内核而非更大的内核。我们如何做到这一点?
Diana Hu首先从High Level入手讲述传统的增强现实SLAM管道。对于High Level,你有这四个阶段。你有来自像素和IMU的原始传感器输入,亦即陀螺仪加速度计,然后它们用于特征提取,以更有用的方式提取数据。
Diana Hu提到我们不应该使用原始图像。她举例道:对于摄像头,如果你面对的是1080P,想象一下你获得的是一个1080×720再乘以3的矩阵,因为是RGB。这未进行压缩,所以是很大,10的6次方或10的8次方,速度是每秒30到60赫兹。你的手机很难处理所有这一切并一直予以支持。
然后你还有其他数据,而它们都是用于惯性测量单元的高分辨率数据,惯性测量单元基本上是陀螺仪和加速度计,它们能够说明X,Y,Z旋转加速度,同时可以说明你在世界中的位置。这是有损的数据。从技术上你可以根据它们知道你在这个世界中的位置,但由于这些都是非常廉价的传感器,所以会积累很多的错误。
所以,Niantic致力于特征提取。所谓的特征提取是,你将这个原始矩阵(1080×720)分为3个通道,这里只是一个灰度通道,然后提取基于场景纹理的特征。
Diana Hu进一步解释说:“我们采用了传统的计算机视觉算法,当实现原始版本时,比如说每秒单位数的帧数,他们能够达到每秒60帧。我们没有对算法进行任何改动,这基本上只是一种新的编程范式。这是一个新的并发编程框架,名为角色模型。在High Level层面,“角色”是完全孤立的原始计算单元,并使用内部状态进行某种计算。它们不会妨碍任何人,它们有自己的内存trunk。”(注:角色模型/Actor Model是一种并发运算上的模型。“角色”是一种程序上的抽象概念,被视为并发运算的基本单元:当一个角色接收到一则消息,它可以做出一些决策、创建更多的角色、发送更多的消息、决定要如何回答接下来的消息。角色模型在1973年于Carl Hewitt、Peter Bishop及Richard Steiger的论文中提出)。
这里的关键字是异步。你没有妨碍其他人或等待其他人,因为如果你开始基准测试和运行这些SLAM系统,有一半的时间你只是忙着循环和等待,而你正改变是情景的成本十分昂贵。“角色”系统摆脱了这一点,因为它们都是完全独立的计算块。
5. 总结
作为总结,Diana Hu主要讨论了AR中的魔幻现实主义;我们可以做些什么来实现这一点;如何令数字元素可信;以及我们如何为人类感知构建AR系统感等等。她认为,至少对于AR来说,实现高响应速度并为之优化非常重要。
下面是完整的演讲视频: