版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。

  ARKit需要运行在iOS11以上的iPhone与iPad上。AR应用属于计算密集型应用,对计算硬件要求较高,就算在应用中什么虚拟对象都不渲染,AR也在对环境、特征点跟踪进行实时解算,因此设备需要足够强大的CPU来整合软硬件,才能确保达到优秀的性能和高效的实时计算渲染能力。为了更好的用户体验,运行ARKit的设备最低需要A9处理器,因此iPhone6s以前的设备将无法使用ARKit,另外由于移动端硬件设备资源限制,一些高级AR特效只能在最新的处理器(包括CPU和GPU)上才能运行,如人形遮挡与人体动捕功能、景深、运动模糊需要A13处理器,在使用某一项特定功能出现不能运行的情况时最好先检测设备是否支持该功能。

(一)ARKit支持的设备

  具体支持ARKit的iPhone和iPad型号如下表所示。

最低操作系统版本

型号

iOS11

iPhone 6S、iPhone 6S Plus、iPhone SE

iOS11

iPhone 7、iPhone 7 Plus

iOS11

iPhone 8、iPhone 8 Plus

iOS11

iPhoneX

iOS12

iPhone Xr、iPhone Xs、iPhone Xs max

iOS13

iPhone 11、iPhone 11 Pro、iPhone 11 Pro Max

iOS13

iPhone SE2

iOS14

iPhone 12、iPhone 12 Max、iPhone 12 Pro、iPhone 12 Pro Max

iPadOS11

iPad Air 第3代

iPadOS11

iPad mini 第5代

iPadOS11

iPad 第5代、第6代、第7代

iPadOS11

iPad Pro 12.9英寸第1代、第2代、第3代、第4代(iPadOS13.4以上版本)

iPadOS11

iPad Pro 11英寸

iPadOS11

iPad Pro 10.5英寸

iPadOS11

iPad Pro 9.7英寸

  上表是一张动态更新的表,理论上,苹果公司新发布的所有iPhone都会支持ARKit,高端的iPad肯定也会支持ARKit,但在购买或者使用时,最好先查询相关产品的规格参数。

(二)ARKit的不足

  ARKit SDK是同时期所有移动端AR SDK中表现最好的(主要得益于苹果公司的软硬件生态),其提供了稳定精准的运动跟踪与强大的计算机视觉处理与机器学习能力。但从ARKit使用的VIO和IMU技术可以推测出(后文会详细论述ARKit的运动跟踪原理),ARKit的跟踪在以下情况下会失效:

  (1)在运动中做运动跟踪
  假设用户是在火车上使用ARKit,这时IMU获取的数据不仅包括用户的移动数据(实际是加速度),也包括火车的移动数据(实际是加速度),这样将导致跟踪误差,从而引起漂移甚至完全失败。

  (2)跟踪动态的环境
  假设用户设备对着波光粼粼的湖面,这时从摄像头获取到的图像信息是不稳定的,这将引起特征点提取匹配问题进而导致跟踪失败。

  (3)热飘移
  相机感光元件与IMU都是对温度敏感的元器件,前文我们讨论过相机和IMU的OEM校准,这个校准通常都会在某一个或者几个特定温度下进行,但在用户设备使用过程中,随着时间的延长会导致设备发热,发热会影响相机获取图像的颜色信息和IMU测量的加速度信息的准确性,表现出来就是跟踪的物体出现飘移。

  (4)昏暗环境
  基于VIO的跟踪效果与环境中光照条件有很大关系,昏暗的环境采集的环境图像信息对比度低,这对提取特征点信息非常不利,因此会大大影响到跟踪的准确性,这也会导致基于VIO的跟踪失败。

  除运动跟踪问题外,由于移动设备资源限制或其他问题,ARKit也存在以下不足:

  (1)表面检测需要时间
  ARKit虽然对真实世界物体表面特征点提取与平面检测进行了非常好的优化,但还是需要一个相对比较长的过程,在这个过程中,ARKit需要时间收集环境信息构建对现实世界的理解。这是一个容易让不熟悉AR的使用者产生困惑的地方,因此,应用开发中必须设计良好的引导,指导使用者更好的检测平面或者特征点。

  (2)运动处理有滞后
  当用户设备移动过快时会导致摄像头采集的图像模糊,从而影响ARKit对环境特征点的提取,进而表现为跟踪不稳定或者虚拟物体漂移。

  (3)弱纹理表面检测问题
  ARKit使用的VIO技术很难在光滑、无纹理、反光的表面提取到所需的特征值,因而无法构建对环境的理解和检测识别平面,如很难检测识别光滑大理石地面和白墙。

  (4)鬼影现象
  虽然ARKit在机器学习的辅助下对平面边界预测作了很多努力,但由于现实世界环境的复杂性,检测到的平面边界仍然还不够准确,因此,添加的虚拟物体可能会出现穿越墙壁的现象。所以对开发者而言,应当鼓励使用者在开阔的空间或干净的桌面使用AR应用程序。

  本小节讨论的ARKit不足为不使用LiDAR传感器时VIO SLAM存在的先天技术劣势,在配备有LiDAR传感器的设备上,由于LiDAR传感器并不受到弱纹理、灯光等影响,因此ARKit能实时精准高效的重建场景几何,可以大大弥补由于VIO原因给ARKit带来的不足,但LiDAR只对场景重建有帮助,并不能解决如昏暗环境跟踪失效、热漂移、运动中跟踪等问题,所以对开发人员而言,了解ARKit的优劣才能更好的扬长避短,在适当的时机通过适当的引导最佳化用户体验。