关于华为AR/HUAWEI AR Engine

1.HUAWEI AR Engine概览
HUAWEI AR Engine 是一个用于在 Android 上构建增强现实应用的平台。 HUAWEI AR Engine 通过垂直整合AR核心算法和海思麒麟芯片提供AR基础能力,目前提供了运动跟踪、平面检测、光照估计和命中检测、手势识别和指关节跟踪、人体姿态识别和骨骼跟踪,后续会持续推出更多AR基础能力:
• 运动跟踪:持续稳定跟踪手机的位置和姿态相对于周围环境的变化,同时输出周围环境特征的三维坐标信息。
• 平面检测:让手机可以检测到水平平面和垂直平面(例如地面或墙面)的大小和位置。
• 光照估计:让手机可以估测当前环境的光照条件,目前支持估计环境光的强度。
• 命中检测:让用户可以通过手机屏幕上的屏幕点选中现实环境中的兴趣点。
• 手势识别:识别特定的手势和特定的动作,目前可识别6种手势。
• 手部骨骼跟踪:识别和跟踪21个手部骨骼点的位置和姿态,形成手部骨骼图。
• 人体姿态识别:识别特定的人体姿态,目前支持6种特定姿态。
• 人体骨骼跟踪:识别和跟踪15个人体骨骼点的位置和姿态,形成人体骨骼图,支持单人和多人
2.支持的设备
HUAWEI AR Engine 可以在运行华为最新的中高端手机上,**如P20、P20 Pro和Mate RS,后续将支持所有华为中高端手机,具体手机型号见官方公示。为AR Engine目前很专注地只支持安卓,只支持华为手机,**这也是华为作为硬件厂商,软硬件结合的一个优势。
3. HUAWEI AR Engine 的工作原理
从本质上讲,HUAWEI AR Engine 在做两件事:在手机移动时跟踪它的位置和构建自己对现实世界的理解。
HUAWEI AR Engine 的运动跟踪技术使用手机摄像头标识兴趣点(称为特征点),并跟踪这些点随着时间变化的移动。 将这些点的移动与手机惯性传感器的读数组合,HUAWEI AR Engine 可以在手机移动时确定它的位置和屏幕方向。
除了标识关键点外,HUAWEI AR Engine 还会检测平坦的表面(例如地面和墙面),并估测周围区域的平均光照强度。 这些功能共同让 HUAWEI AR Engine 可以构建自己对周围世界的理解。
借助 HUAWEI AR Engine 对现实世界的理解,您能够以一种与现实世界无缝整合的方式添加物体、注释或其他信息。 您可以将一只打盹的小狗放在书桌的一角,或者利用画家的生平信息为一幅画添加注释。 运动跟踪意味着您可以移动和从任意角度查看这些物体,即使您转身离开房间,当您回来后,小狗或注释还会在您添加的地方。
同时HUAWEI AR Engine 还让手机具备了对人的理解能力:通过定位人的手部位置和特定手势的识别,可以将虚拟物体或内容特效放置在人的手上;结合深度器件,还可以精确还原手部的26个自由度运动,做更为精细化的交互控制和特效叠加;将识别范围扩展到人的全身,可以利用识别到的15个人体关键位置,实时的检测人体的姿态,为体感类和运动健康类的应用开发提供了支持

  1. 基本概念
    在使用 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 稍后调整了与书桌关联的平面的姿态,小狗仍会看起来位于桌子上。
    4.7 手势识别
    HUAWEI AR Engine提供6种特定手势的识别,输出识别类别结果并给出手掌BBOX屏幕坐标,左手和右手都能够有效识别,当图像中出现多只手时,只反馈最清晰置信度最高的手的识别结果和坐标信息,支持前后置相机切换。
    通过手势识别能力,您可以将虚拟物体叠加到人的手部位置,并根据不同的手势变化来激活某些状态的切换,这可以给您的AR应用提供基础的交互功能并增加新的玩法。
    4.8 手部骨骼跟踪(特定机型支持)
    HUAWEI AR Engine提供单手关节点和骨骼识别能力,输出手指端点、手掌朝向、手部骨骼等手部高级特征。左手和右手都能有效识别,当图像中出现多只手时,只反馈最清晰置信度最高的手的识别结果和坐标信息,目前仅支持可获取深度信息的指定华为机型。
    通过手部骨骼识别能力,您可以将虚拟物体叠加到更为精确的手部位置,例如手指指尖、手掌掌心等;利用手部骨骼,可以驱动虚拟手做出更为丰富和精细的操控,这可以给您的AR应用提供增强的交互功能和难以置信的新奇玩法。
    4.9 人体姿态识别
    HUAWEI AR Engine 提供单人的身体姿态识别能力,识别六种静态身体姿势并输出识别结果,支持前后摄像机切换。
    通过人体姿态识别能力, 开发者可以用于需要识别动作并触发某些事件的应用场景,比如交互界面控制, 游戏操作动作识别等触发类交互行为,是体感类应用的基础核心功能,为您的AR应用提供较远距离远程控制和协作的能力,丰富应用的交互体验。
    4.10 人体骨骼跟踪
    HUAWEI AR Engine提供单人和多人的身体关节点和骨骼识别能力,输出四肢端点、身体姿态、人体骨骼等人体高级特征。支持2D骨骼(屏幕坐标系)和3D骨骼(与SLAM结合的空间坐标系)的输出,支持前后置相机切换。
    通过人体骨骼识别能力,您可以将虚拟物体叠加到人体的指定部位位置,例如左肩、右脚踝等;利用人体骨骼,可以驱动虚拟人偶做出更为丰富和精细的操控,这可以给您的AR应用提供大范围的交互功能和难以置信的新奇玩法

猜你喜欢

转载自blog.csdn.net/Smliling/article/details/85053274