版权声明: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的优劣才能更好的扬长避短,在适当的时机通过适当的引导最佳化用户体验。

ARKit之路-ARKit概述之二相关推荐

  1. ARKit之路-运动跟踪原理

    版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载.   在前述文章中,我们对AR技术原理进行过简单学习了解,ARKit运动跟踪所采用的技术与其他移动端AR SDK一样,也是采 ...

  2. Algorithm:【Algorithm算法进阶之路】之数据结构二十多种算法演示

    Algorithm:[Algorithm算法进阶之路]之数据结构二十多种算法演示 目录 一.数据结构算法 1.顺序表 2.链表 3.栈和队列 4.串的模式匹配 5.稀疏矩阵 6.广义表 7.二叉树 8 ...

  3. SQL Server 内存中OLTP内部机制概述(二)

    ----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<SQL Server In-Memory ...

  4. 525、Java工程师的进阶之路 -【 RocketMQ (二)】 2022.01.06

    目录 1. RocketMQ 设计目的 1.1. 发布/订阅 1.2. 消息优先级 1.3. 消息顺序 1.4. 消息过滤 1.5. 消息持久化 1.6. 消息可靠性 1.7. 消息实时性 1.8. ...

  5. 面向对象开发期末复习概述(二)

    面向对象开发期末复习概述(二) 第2章 Java基础语法&第3章 运算符.表达式.语句 1.Java语言中定义了3种注释形式: (1)// 单行注释,注释到行尾 (2)/---------/ ...

  6. 蓝牙核心技术概述(二):蓝牙使用场景

    关键词:蓝牙核心技术协议  A2DP AVDTP  HF HCP BIP BPP---- 作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢!) 欢迎指正错误,共同学习.共同进步!! ...

  7. 02.02、3_Java语言基础(进制概述和二,八,十六进制图解)

    ###02.02_Java语言基础(进制概述和二,八,十六进制图解)(了解) * A:什么是进制     * 进制:就是进位制,是人们规定的一种进位方法. 对于任何一种进制--X进制,就表示某一位置上 ...

  8. 『中级篇』容器的技术概述(二)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』容器的技术概述(二) 容器的前世今生 物理机 部署非常慢 购买服务器服务,放在IDC机房,各种走流程,很多流程不可控 ...

  9. 路痴福音:二维码路牌来啦

    当你走穿梭在陌生的大街小巷的时候,是否有为找不到具体方向而困惑过?尤其是路痴人士,在街道和建筑的辨识度比较低的时候,有时候即使是在不陌生的城市里也很容易找不到东南西北. 但是二维码的出现,能在很大程度 ...

最新文章

  1. 重新mysql-server
  2. 360浏览器卸载_有恃无恐“弹弹弹”,安全卫士360自己就是最大的流氓“弹窗王”!...
  3. 2017.11.7 Python 制作EFM32/ AVR批量烧录工具
  4. 程序中添加动态用户密码
  5. 安宁计算机学院,滁州学院张燕咏、安宁两位教授应邀来我院指导工作
  6. 如何用SQL实现从第几条记录开始取几条
  7. ubuntu网站收集
  8. 一波圣诞美陈设计素材,值得收藏哦!
  9. 尽量不要在viewWillDisappear:方法中移除通知
  10. 【小技巧积累】用Style实现必填提示“*”根据选项的不同而显示或隐藏
  11. 可以看游资的app_大大游资软件下载
  12. mft按钮设计_《ZEMAX光学设计超级学习手册》一一1.2 用户界面
  13. 五大常用算法实例列举
  14. raw数据拆分成rggb四通道,拆分与合成
  15. xp系统链接不上宽带连接服务器地址,怎么样解决xp电脑宽带连接不见了
  16. jmeter使用手册
  17. Nessus访问报错(Corrupt Database A corrupt database has been detected which prevents Nessus from........)
  18. 数据结构之SWUSTOJ954: 单链表的链接
  19. linux系统分区支持ntfs吗,如何使Linux支持NTFS分区
  20. Table Compression Characteristics

热门文章

  1. traceback说明
  2. 虚拟机soft lockup CPU死锁问题
  3. 在Ubuntu20.04中继续使用linux版“网络调试助手”的方法
  4. 给研发培训资料两篇(架构设计大数据)
  5. python虚拟环境中安装diango_安装Python虚拟环境和django
  6. CADD课程学习(10)-- 模拟不同体系与蛋白-蛋白相互作用(ZDOCK)
  7. Delphi中实现MDI子窗体(转)
  8. 数据库分布式架构的落地策略与典型实践
  9. Window的DOS命令
  10. 本科毕业论文问卷调查怎么写