【ARCore 开发入门课程系列】AR 核心概念及技术解析

上节课我们带你解密 AR 增强现实,了解了这项技术的前世今生以及应用场景,可以看到如今 AR 在市场上开始乘风破浪,似有下一个风口的势头。AR 类产品的出现,掀起了科技圈的创新热潮,让虚拟世界与现实世界相互融合,完成屏幕的“跨越”,人机交互设计也开始从二维平面迈向三维世界。那么增强现实听起来如此高端,像是未来的科技,该怎么理解和制作呢?本篇给你答案。

深入浅出,

了解 AR 技术现状与核心思想

AR 内容创作者需要牢记以下六大核心概念——这些概念的实现是 AR “虚实结合”的关键。

放置 (Placing and Positioning assets)

首先,我们要引入“放置”的概念:静止的 AR 对象需要固定到现实环境中的某一点,比如在墙壁、地板、天花板、或半空中的某个位置,让体验者感受“虚实结合”。无论是哪种情况,放置意味着要让虚拟对象稳稳“固定”在现实环境中的相应位置上,即使体验者本身移动了位置,虚拟对象也能在原本的位置纹丝不动。我们来看下面的具体例子:

图上的咖啡杯是 AR 虚拟对象,当用户切换视角时,桌子上的虚拟的咖啡杯放置如初,这样的 AR 体验让使用者不会跳戏,保持了 AR 体验的真实感。

缩放与尺寸 (Scale & Size of assets)

AR 对象除了要一直待在所处的真实环境之外,还需能够随着观察距离的远近变化体现出大小变化。这些场景你一定不陌生:一辆汽车从远处向你驶来,开始时很小,随着它不断地靠近,汽车越来越大;当你在欣赏一副画时,站位角度、远近高低,目之所及也各不相同。在精心打造的 AR 体验中,虚拟对象也要随着与观察者的实际距离、观察角度、方向,改变大小形象,给人呼之欲出的视觉冲击,这就是缩放。它能够让 AR 虚拟对象脱离虚拟,蜕变成真正有可能取代现实事物的“神操作”。

扫描二维码关注公众号,回复: 12033634 查看本文章

遮挡 (Occlusion)

遮挡,顾名思义,指的是一个对象被另一个对象挡住的情况。在 AR 领域,虚拟对象若要看起来活灵活现,就必须能够根据相对位置,隐藏在其他虚拟对象以及真实物体之后,体现现实世界里的遮挡关系。这就意味着,AR 的硬件不仅要了解对象在房间中的位置,还要判断出虚拟对象与其他实体之间的相对距离、与用户之间的相对距离,也就是整个场景的深度地图。

AR 对象在应用内实际存在于真实环境中的感觉,我们称之为“沉浸感”。想要获得这种沉浸式交互体验,则需要不断重新校准,实现无缝遮挡。因为用户无时无刻不在移动,所以,这是创造成功的 AR 内容所要面临的最大挑战之一。

光照 (Lighting)

如同真实的物体一样,AR 虚拟对象需要对不同的光照情况映射出物体的明暗变化,才会让我们觉得逼真。这些对象的颜色、明暗、阴影,在场景的初始光照及光照变化时,都需要有相应调整。举个例子,在 AR 体验中,如果你调暗了屋内的灯光,那么虚拟对象的颜色以及明暗也应发生变化;如果对象发生移动,那么它的受光方向及阴影也要移动。

实体 (Solid)

AR 对象看上去需要是实体的。虽然这点听上去不言而喻,但仍需要开发者有意为之才能够真正实现。在创作 AR 内容时,虚拟对象绝不能与真实物体重叠或占有同一空间,也不应悬在半空中,否则会影响用户的沉浸式交互体验。

环境感知 (Context Awareness)

营造真实感的最后一个要素就是环境感知。这是最难实现的特性,需要 AR 硬件设备了解环境中的每一件事物,感知它的高矮、体积大小等。当主体对象在空间中移动时,它们的情况会如何变化,比如现实环境中桌子、椅子的摆放位置;桌子上都有哪些物品。在设备感知周围环境时,需要跟踪的因素有很多。AR 设备需要在快速生成感知信息的同时确保虚拟对象的真实感、流畅性以及功能性不会下降,这是当今的 AR 内容创作者面临的最大挑战之一。

ARCore 不可不知的重要功能

为了实现上述六大 AR 理念,帮助开发者创造出更为优秀的 AR 作品,面对种种挑战,各公司都在投资研发软件工具。ARCore 作为谷歌推出的搭建增强现实应用程序的平台,可以利用云软件和硬件设备的进步,将虚拟对象放置在现实世界中,帮助开发者以更简单的方法和更强大的工具构建增强现实体验。接下来,让我们了解一下 ARCore 是如何帮助开发者实现这一愿景的。

运动跟踪 —— Motion Tracking

AR 依赖计算机视觉来感知环境并识别其中的物体,而计算机视觉过程的第一步是将视觉信息,也就是硬件周围的环境传递给设备内部“大脑”。在沉浸式技术中扫描、识别、细分和分析环境信息的过程称为跟踪。在 AR 领域,跟踪有两种方式:由外而内跟踪(Outside-in Tracking)、由内而外跟踪(Inside-out Tracking)。

  • 由外而内跟踪 (Outside-in Tracking)

使用由外而内跟踪时,摄像头或传感器并不位于 AR 设备内部,而是安装在空间内的其他位置。例如,墙壁或支架上,来保证 AR 设备视野不受阻。同时,这些“外挂设备”会直接或通过计算机将信息传送到 AR 设备。理论上来说,外部摄像头或传感器的大小可以根据放置空间的大小进行选择,但是会遇到功耗问题。在功能性增强的同时,便携性就会降低。如果头戴设备与外部传感器的链接中断,哪怕只是短短一瞬,也可能失去跟踪信号,破坏视觉效果的沉浸感。

(由外而内跟踪)

(由内而外跟踪)

  • 由内而外跟踪 (Inside-out Tracking)

使用由内而外跟踪时,摄像头和传感器会内置在设备机身中。在我们的日常生活里,很多无线设备都内置了观察环境的摄像头和信息处理器,其中最典型的例子就是智能手机。Microsoft HoloLens 这种 AR 头戴设备也使用了由内而外的 AR 跟踪形式。HoloLens 框体内有 5 个用于分析周围事物的摄像头、1 个深度测量摄像头、1 个高清摄像机、1 个光传感器、4 个麦克风。

但是,所有这些硬件都需要占用空间、消耗电量、产生热量。理想情况下,独立 AR 设备可以像智能手机一样让人们方便携带、随时使用。但在此之前,基于智能手机的 AR 已成为全球大多数人与 AR 内容互动的主要方式。

无论在智能手机上还是独立式头戴设备上提供 AR 体验,每个 AR 应用都旨在展示逼真的虚拟对象。而 ARCore 系统最重要的功能之一就是运动跟踪,AR 平台需要了解用户什么时候发生了移动,这背后通用的技术被称为“实时同步定位和制图(简称 SLAM)”。这是机器人和智能手机进行技术分析、理解现实世界并确定自身朝向的过程。SLAM 过程需要使用一系列硬件来收集数据,例如,摄像头、深度传感器、光传感器、陀螺仪和加速度计。ARCore 也运用这些硬件来理解环境,并借助这些信息,通过检测平面与特征点,来设置适当的锚点,渲染 AR 体验。具体来说,通过 ARCore 进行运动追踪的过程就是“并行测距与映射”的过程(简称 COM)。

简单讲,COM 可以告知智能手机它在空间中相对于周围环境的位置,并通过捕获环境中具有视觉差异性的特征来实现这一目的。这种视觉差异性特征我们称其为“特征点”。“特征点”可以是椅子的边缘、墙上的照明开关、地毯的一角,或是环境中可能出现且位置始终不变的任意一点。所以,任何高对比度的视觉效果都可以成为“特征点”。ARCore 会将感知到的特征点与智能手机提供的运动信息(也叫惯性数据)相结合。

当下很多智能手机都会配有测量手机角度的陀螺仪、手机测速的加速度计、特征点、惯性数据结合使用,共同帮助 ARCore 确定手机在环境中的朝向和位置。当 ARCore 有了对环境的理解,就能更好地将虚拟对象放置在真实环境中,为用户带来更好的交互式沉浸体验。

环境理解:特征点及平面的查找

—— Environmental Understanding: Feature points and Plane-finding

环境理解指的是 ARCore 看到 AR 设备周围的环境并处理和使用相关信息的过程。这个过程,从“特征点”开始。ARCore 会使用手机的相机来捕获表面上成簇的特征点,进而创建平面。“平面查找”这一概念指的是 ARCore 检测并生成平坦表面的能力。ARCore 可以感知这些平面,并能够在物理空间中正确放置和调整 3D 对象。例如,将虚拟对象放置在现实的地面和桌子上,否则虚拟对象就会在现实中“腾云驾雾”。所以,即使是虚拟对象,也要遵循与真实物体相同的物理规则。

光估测 —— Light Estimation

相信你一定注意过,在你拿起手机接听电话时,手机屏幕会自动熄灭。在周围环境发生变化时,手机屏幕会相应调整明暗变化,以上功能的实现得益于智能手机配备的光传感器。目前的 AR 技术支持对光线的全局估测,例如感知整个环境的亮度、颜色和色温。ARCore 通过扫描摄像头图像的像素来确定入射光的平均值,进而为 AR 对象提供最佳的照明。

光线和阴影是肉眼判断事物是否真实的关键因素。虚拟物体到底为什么看起来真实,很大程度是因为真实地反映了光照的效果。在现实中,光源的方向、色温、高光等条件,会改变物体的外观。有光感明暗交错,有阴影,一个物体才能看上去真实。ARCore 可以利用光估测来帮助用户打造逼真的 AR 应用及游戏体验。

锚点 —— Anchor

在 ARCore 完成周围环境的分析并放置好特征点后,就可以开始为 AR 对象设置锚点了。锚点也称为定位点,是虚拟对象始终所处的位置,主要适用于静态的虚拟对象。举个例子,若想将一盏虚拟的灯放置在桌子上,就需要将锚点设置在桌面上。如下图所示,这是 ARCore 发现并识别出的一个水平面,现在把灯放好后它就会固定在一个位置上。当设备发生移动时,它会相应作出反应,但是假设你转过身去,这盏虚拟的灯一样会停留在桌面上。

像虚拟飞机这种需要悬空在现实环境中的事物,上面这种锚定方法显然无法奏效。因为锚点的设置需要平面查找、运动追踪、搭配视觉系统协同工作。所以对于 AR 平台来说,准确判定锚点会有一定难度。只有不断的探索,才能真正让平面图像活起来。

相信通过本次课程,你对 AR 的核心技术以及 ARCore 平台的强大功能有了一定的了解。在下节课中,我们将为你详细梳理 AR 目前面临的技术挑战,探索 AR 技术进一步创新的可能。

猜你喜欢

转载自blog.csdn.net/jILRvRTrc/article/details/108806184
今日推荐