ARKit框架详细解析(二)—— 关于增强现实和ARKit

版本记录

版本号 时间
V1.0 2017.09.27

前言

苹果最近新出的一个API就是ARKit,是在2017年6月6日,苹果发布iOS11系统所新增框架,它能够帮助我们以最简单快捷的方式实现AR技术功能。接下来几篇我们就详细的对ARKit框架进行详细的解析。感兴趣的可以看上面几篇。
1. ARKit框架详细解析(一)—— 基本概览

关于增强现实和ARKit

先看一张ARKit的效果图。

ARKit框架详细解析(二)—— 关于增强现实和ARKit_第1张图片

任何AR体验的基本要求 - 以及ARKit的定义特征 - 是创建和跟踪用户居住的现实世界空间与可视化内容建模的虚拟空间之间的对应关系的能力。 当您的应用程序显示内容与实时摄像头图像时,用户体验到增强的现实:您的虚拟内容是真实世界的一部分的错觉。

在所有AR体验中,ARKit使用世界和相机坐标系,遵循右手惯例:y轴向上指向,(当相关时)z轴指向观察者,x轴指向观看者的右侧。

会话配置可以改变坐标系相对于现实世界的起点和方向(参见worldAlignment
)。 AR会话中的每个锚定义了自己的本地坐标系,也遵循右手的z向观众约定; 例如, ARFaceAnchor类定义了一个用于定位面部特征的系统。


How World Tracking Works - 世界跟踪的工作原理

为了在真实空间和虚拟空间之间创建一个对应关系,ARKit使用一种称为视觉惯性测距的技术。 该过程将来自iOS设备的运动感应硬件的信息与设备相机可见的场景的计算机视觉分析相结合。 ARKIT识别场景图像中的显着特征,跟踪视频帧中这些特征位置的差异,并将该信息与运动感测数据进行比较。 结果是设备的位置和运动的高精度模型。

世界跟踪还分析和了解场景的内容。 使用命中测试方法(参见ARHitTestResult 类)来查找与摄像机图像中的点相对应的真实世界曲面。 如果在会话配置中启用planeDetection设置,ARKit会检测摄像机图像中的平面,并报告其位置和大小。 您可以使用命中测试结果或检测到的平面在场景中放置或与虚拟内容进行交互。


Best Practices and Limitations - 最佳做法和限制

世界跟踪是一个不精确的科学。 这个过程经常会产生令人印象深刻的准确性,从而导致现实的AR体验 然而,它依赖于设备的物理环境的细节,这些细节并不总是一致的,或者难以实时测量而没有一定程度的错误。 要建立高品质的AR体验,请注意这些注意事项和提示。

  • 为可预见的照明条件设计AR体验

世界跟踪涉及图像分析,需要清晰的图像。 当相机无法看到细节时,例如当相机指向空白墙或场景太暗时,跟踪质量会降低。

  • 使用跟踪质量信息来提供用户反馈。

世界跟踪将图像分析与设备运动相关联。 如果设备正在移动,ARKit可以更好地了解场景,即使设备只是微妙移动。 过多的动作——太远,太快或者太剧烈地晃动,会导致图像模糊或跟踪视频帧之间的特征差别太大,从而降低跟踪质量。 ARCamera类提供跟踪状态原因信息,您可以使用它来开发UI,告诉用户如何解决低质量的跟踪情况。

  • 允许平面检测的时间产生明确的结果,并在您获得所需的结果时禁用平面检测。

平面检测结果随时间而变化 - 当首次检测到平面时,其位置和范围可能不准确。 随着时间的推移,平面仍然在现场,ARKit对其位置和程度进行了细化。 当一个大的平坦表面在场景中时,ARKit可能会在您已经使用平面放置内容之后继续改变平面的位置,范围和变化。

后记

未完,待续~~~

ARKit框架详细解析(二)—— 关于增强现实和ARKit_第2张图片

你可能感兴趣的:(ARKit框架详细解析(二)—— 关于增强现实和ARKit)