华为AR开发者联盟正式开放AR引擎,邀请开发工程师体验华为AR引擎性能并共享华为的各种开放能力。 不过最初其仅支持P20、P20 Pro、Mate RS几款机型。
HUAWEI AR Engine 功能说明
1. HUAWEI AR Engine 概览
HUAWEI AR Engine 是一个用于在 Android 上构建增强现实应用的平台。 HUAWEI AR Engine 通过垂直整合AR核心算法和海思麒麟芯片提供AR基础能力,目前提供了运动跟踪、平面检测、光照估计和命中检测,后续会持续推出更多AR基础能力:
(1)运动跟踪:持续稳定跟踪手机的位置和姿态相对于周围环境的变化,同时输出周围环境特征的三维坐标信息。
(2)平面检测:让手机可以检测到水平平面和垂直平面(例如地面或墙面)的大小和位置。
(3)光照估计:让手机可以估测当前环境的光照条件,目前支持估计环境光的强度。
(4)命中检测:让用户可以通过手机屏幕上的屏幕点选中现实环境中的兴趣点。
2. 支持的设备
HUAWEI AR Engine 可以在运行华为最新的中高端手机上,如P20、P20 Pro、Mate RS和Mate10,后续将支持所有华为中高端手机,具体手机型号见官方公示。
3. HUAWEI AR Engine 的工作原理
从本质上讲,HUAWEI AR Engine 在做两件事:在手机移动时跟踪它的位置和构建自己对现实世界的理解。
HUAWEI AR Engine 的运动跟踪技术使用手机摄像头标识兴趣点(称为特征点),并跟踪这些点随着时间变化的移动。 将这些点的移动与手机惯性传感器的读数组合,HUAWEI AR Engine 可以在手机移动时确定它的位置和屏幕方向。
除了标识关键点外,HUAWEI AR Engine 还会检测平坦的表面(例如地面和墙面),并估测周围区域的平均光照强度。 这些功能共同让 HUAWEI AR Engine 可以构建自己对周围世界的理解。
借助 HUAWEI AR Engine 对现实世界的理解,您能够以一种与现实世界无缝整合的方式添加物体、注释或其他信息。 您可以将一只打盹的小狗放在书桌的一角,或者利用画家的生平信息为一幅画添加注释。 运动跟踪意味着您可以移动和从任意角度查看这些物体,即使您转身离开房间,当您回来后,小狗或注释还会在您添加的地方。
4. 基本概念
在使用 HUAWEI AR Engine 之前,了解一些基本概念会有很大帮助。 这些概念共同介绍了 HUAWEI AR Engine 怎样呈现一种逼真的体验,让虚拟内容看起来就像位于真实表面或者处于现实世界中的位置一样。
4.1 运动跟踪
当您的手机在现实世界中移动时,HUAWEI AR Engine 会通过视觉惯性导航的技术来理解手机相对于周围世界的位置和姿态变化。 HUAWEI AR Engine 会检测捕获的摄像头图像中的特征点,并使用这些点来计算其位置和姿态变化。 这些视觉信息将与设备的惯性测量结果相结合,一起用于估算摄像头随着时间推移而相对于周围世界的位置和姿态变化。
通过将渲染 3D 内容的虚拟摄像头的姿态与 HUAWEI AR Engine 提供的设备摄像头的姿态对齐,开发者能够从正确的透视角度渲染虚拟内容。 渲染的虚拟图像可以叠加到从设备摄像头获取的图像上,让虚拟内容看起来就像现实世界的一部分一样。
4.2 平面检测
HUAWEI AR Engine 会通过检测特征点和平面来不断改进它对现实世界环境的理解。
HUAWEI AR Engine 可以查找看起来位于常见水平表面(例如桌子和书桌)上的成簇特征点,并让这些表面可以由您的应用用作平面。 HUAWEI AR Engine 也可以确定每个平面的边界,并将该信息提供给您的应用。 您可以使用此信息将虚拟物体置于平坦的表面上。
由于 HUAWEI AR Engine 使用特征点来检测表面,因此可能无法正确检测像白色书桌一样没有纹理的平坦表面。
4.3 光照估测
HUAWEI AR Engine 可以检测其环境光线的相关信息,并为您提供给定摄像头图像的平均光强度。 此信息让您能够使用与周围环境相同的光照来照亮您的虚拟物体,提升它们的真实感。
4.4 命中检测
HUAWEI AR Engine 利用命中检测来获取对应于手机屏幕的 (x,y) 坐标(通过点按或您希望应用支持的任何其他交互提供),并将一条射线投影到摄像头的视野中,返回这条射线贯穿的任何平面或特征点以及交叉位置在现实世界空间中的位置和姿态。 这让用户可以选择环境中的物体或者与它们互动。
4.5 定向点
定向点可以让您把虚拟物体摆放在非水平的表面上。当您运行命中测试而返回特征点时,HUAWEI AR Engine 将查看附近的特征点并使用它们来尝试估计给定特征点处的表面角度。 然后 HUAWEI AR Engine 将返回一个顾及该角度的姿势。
由于 HUAWEI AR Engine 使用特征点簇来检测表面的角度,因此可能无法正确检测到没有纹理的表面(如白色墙壁)。
4.6 锚点和可跟踪对象
手机的位置和姿态会随着 HUAWEI AR Engine 改进它对自身位置和环境的理解而变化。 当您想要放置一个虚拟物体时,您需要定义一个锚点来确保 HUAWEI AR Engine 可以跟踪物体随时间推移的位置。 很多时候,您需要基于命中测试返回的姿态创建一个锚点,如命中检测中所述。
手机的位置和姿态会发生变化,这就意味着 HUAWEI AR Engine 可能会更新平面和特征点等环境物体随时间推移的位置。平面和特征点是一种特殊类型的物体,称为可跟踪对象。顾名思义,HUAWEI AR Engine 可以随着时间推移跟踪这些物体。 您可以将虚拟物体锚定到特定的可跟踪对象,确保您的虚拟物体与可跟踪对象之间的关系即使在设备移动时也能保持稳定。这意味着,如果您将一个虚拟的小狗放在您的书桌上,即使 HUAWEI AR Engine 稍后调整了与书桌关联的平面的姿态,小狗仍会看起来位于桌子上。
99VR视界:对于安卓的开放性让视界君不仅期待起来开发大神们会利用华为AR引擎开发出什么样令人新奇的AR应用。