文章

了解现实场景追踪

了解打造后置摄像头增强现实 (AR) 体验所需的功能和对应的最佳做法。

概览

任何增强现实体验的基本要求 (即 ARKit 的关键功能) 都是能够在用户所在的现实世界和视觉内容建模的虚拟空间之间创建对应关系并进行追踪。当您的 app 在实时摄像头图像上显示这些内容时,让用户感到眼前的虚拟内容仿佛融入了现实世界的视觉效果,就是增强现实。

插图显示了 iPhone 运行 app 来使用后置摄像头显示增强现实体验。物理环境是一个带沙发的客厅,这个 app 在沙发上面显示了一个虚拟人物。

在所有增强现实体验中,ARKit 均使用符合右手握持习惯的现实场景和摄像头坐标系统:y 轴朝上,(如果适用) z 轴指向观看者,x 轴指向观看者右侧。

会话配置可以更改坐标系统相对于现实世界的原点和坐标 (请参阅 worldAlignment (英文))。增强现实会话中的每个锚点都将定义自己的局部坐标系统,同样也遵循右手握持习惯,z 轴指向观看者;例如,ARFaceAnchor (英文) 类定义用于查找面部特征的系统。

将运动传感与场景分析相结合

为了在现实世界和虚拟空间之间创建对应关系,ARKit 使用一种称为“视觉惯性里程计”的技术。这一过程将结合来自 iOS 设备运动传感硬件以及设备摄像头所见场景的计算机视觉分析两方面的信息。ARKit 会识别场景图像中的显著特征,追踪这些特征在各个视频帧中的位置变化,并将这些信息与运动传感数据进行比较。这样便会得到设备位置和运动的高精度模型。

现实场景追踪还会分析和了解场景的内容。使用光线投射方法 (请参阅 Raycasting and Hit-Testing (英文)) 可以查找与摄像头图像中某个点对应的现实场景中的表面。如果您在会话配置中启用 planeDetection (英文) 设置,ARKit 会检测摄像头图像中的平面并报告它们的位置和尺寸。您可以使用光线投射结果或检测到的平面在场景中放置虚拟内容,或者与场景中的虚拟内容进行互动。

打造出色的增强现实体验

尽管现实场景追踪可以带来逼真的增强现实体验,但是它需要依赖设备所在物理环境的各种细节。这些细节并非总是保持一致稳定,有时亦很难实时准确无误地测量。要打造高品质的增强现实体验,请注意以下注意事项和提示。

针对可预测光照条件设计增强现实体验。现实场景追踪涉及到图像分析,而图像分析需要清晰的图像。如果摄像头观测不到任何细节 (例如摄像头指向空白墙壁或场景过暗),追踪质量就会降低。

使用追踪质量信息提供用户反馈现实场景追踪会将图像分析与设备运动关联起来。只要设备在移动,即便只是轻微移动,ARKit 也能够更好地理解场景。剧烈的动作 (包括幅度太大、速度太快或剧烈晃动) 有可能导致画面模糊,或者导致距离过长而无法在视频帧之间追踪相关特征,进而使追踪质量下降。ARCamera (英文) 类提供了追踪状态原因信息,您可以用来开发 UI,用于告知用户如何解决追踪质量较低的情况。

让平面检测有充足的时间得到清晰的结果,并在得到所需结果后停用平面检测。平面检测结果会随着时间变化;首次检测到平面时,它的位置和范围未必准确。如果这个平面一直保留在场景中,ARKit 会优化对它位置和范围的估算。如果场景中有较大的平面,ARKit 可能会在您使用这个平面放置内容后,继续改变平面锚点的位置、范围和变换。

另请参阅

整合现实场景追踪

class ARWorldTrackingConfiguration (英文)

这个配置可以监测 iOS 设备的位置和方向,同时让您可以对用户面前的环境进行增补。