美文网首页iOS从入门到放弃
iOS ARKit 看我就受够了

iOS ARKit 看我就受够了

作者: ZIM东东 | 来源:发表于2017-08-01 11:20 被阅读461次

因为有项目需求ARKit,查询后反馈的文档
现发布出来,还没注明转载出自哪里,见谅,找到地址时补齐;

https://developer.apple.com/documentation/arkit

截图

AR增强现实技术

在即将发布的iOS11系统上,ARKit正式成为iOS系统框架,让开发者能够使用OC或swift语言开发AR类型的APP。
ARKit的大部分计算都是在CPU上处理的,在A8处理器上的性能损耗在15%~ 25%,
在A9处理器上的性能损耗在10% ~ 15%。为了更好的体验,所以苹果仅支持 A9 及以上处理器


AR支持系列

ARKit 实现测量尺功能:

实现该功能原理:收集相机的视觉信息,以及手机中传感器,包括陀螺仪、罗盘和加速度计来计算并确定设备的位置。
当然,这都是基于ARKit开发的,不想深入,想深入,深入,入...

•多媒体捕捉现实图像:如摄像头
•三维建模:3D立体模型
•传感器追踪:主要追踪现实世界动态物体的六轴变化,这六轴分别是X、Y、Z轴位移及旋转。其中位移三轴决定物体的方位和大小,旋转三轴决定物体显示的区域。
•坐标识别及转换:3D模型显示在现实图像中不是单纯的坐标点,而是一个三维的矩阵坐标

注意:

  1. 如果手机中的场景越丰富,那么测量的结果也就越精确。如果想要测量一面白墙的长度,暂时还不是很准确。AR应用是通过“特征点”进行识别的,也因为是三维矩阵坐标,要求测量时必须很稳的在同一个 Z 轴高度上测量平面的长度;

  2. 不要期望 AR检测的平面会完全贴合表面,虽然检测到了平面但角度可能不完全正确,所以如果开发的AR app需要获得非常精确的几何体来提供更好的效果,可能会出现问题

  3. 边缘检测不是特别好,实际的平面范围有时会太大或太小,所以不要尝试做需要准确边缘的 ARapp

ARKit还存在一些问题:

ARKit是基于惯性-视觉来做空间定位的,这项技术会将iOS设备的动作感测硬件信息,加上对可见场景的计算机视觉分析功能,然后与设备的摄像头相结合,需要平稳缓慢的移动+转向手机,才能构建更加准确的世界,这对用户来说是一种考验,需要积极提示。

一旦刚开始检测平面失败,出现时间久,飘逸的现象,后期很难再正确检测,要强制重启。

AVFoudation与ARSession之间的切换会有轻微的卡顿,切换后ARSession就停止摄像头采集了,但3D渲染会继续,只是丧失了空间定位与检测识别的能力.

不支持前置摄像头。ARKit并不是一个用于前置摄像头环境的技术,因为空间有限,能提供的信息也非常有限。100米左右是ARKit在保持较好用户体验的最大测量距离。

ARKit没有计划支持连接两个不同ARKit世界。

要建立高品质的 AR 体验,那么请注意下述这些注意事项和提示:

全局追踪是一项不精确的科学 (inexact science)。
尽管在这个过程当中,经常会产生可观的准确度,从而让AR 的体验更加真实。然而,它严重依赖于设备物理环境的相关细节,而这些细节并不总是一致,有些时候也难以实时测量,这也就导致这些物理细节往往都会存在某种程度的错误。

基于可见的照明条件来设计AR场景。
全局追踪涉及到了图像分析的相关内容,因此就需要我们提供清晰的图像。如果摄像头没有办法看到相关的物理细节,比如说摄像头拍到的是一面空空如也的墙壁,或者场景的光线实在太暗的话,那么全局追踪的质量就会大大降低。

根据追踪质量的相关信息来给用户进行反馈提示。
全局追踪会将图像分析与设备的动作模式关联起来。如果设备正在移动的话,那么ARKit 就可以更好地对场景进行建模,这样即便设备只是略微晃动,也不会影响追踪质量。但是一旦用户的动作过多、过快或者晃动过于激烈,就会导致图像变得模糊,或者导致视频帧中要追踪的特征之间的距离过大,从而致使追踪质量的降低。ARCamera类能够提供追踪状态,此外还能提供导致该状态出现的相关原因,您可以在 UI 上展示这些信息,告诉用户如何解决追踪质量低这个问题。

给水平面检测预留点时间来生成清晰的结果,一旦您获得所需的结果后,就禁用水平面检测。一开始对水平面进行检测的时候,所检测到的水平面位置和范围很可能不准确。不过随着时间的推移,只要水平面仍然保持在场景当中,
那么 ARKit 就能够较为精确地估计水平面的位置和范围。当场景中有一个比较大的平坦表面的话,就算您已经使用过这个水平面来放置内容,那么 ARKit 可能还会继续对水平面的锚点位置、范围和变换点进行修正 。

综上所述:ARKit 实现测量尺功能,对物理环境要求较高,
第一,环境光检测,清晰的获取摄像头的帧图像;
第二,平面检测,准确的获取水平面,如果精确测量,需要边缘化检测准确;
第三,运动追踪稳定准确等外部因素,对环境和用户操作要求较高;

后记补充:

ARKit是有环境光估计的,这个功能会通过摄像头捕捉并计算捕捉到的场景中的光的总量,来给虚拟物体施加正确的光照条件,渲染效果更加真实。环境光的模拟对于AR出来的画面的真实感,还是有非常大的影响的。

在此说一下ARKit没有提供图像识别方面的功能,所以平时可能看到身边有的AR场景是可以识别特定的图像做其他操作类型的App,用ARKit是不能实现的;

相关文章

网友评论

    本文标题:iOS ARKit 看我就受够了

    本文链接:https://www.haomeiwen.com/subject/jdcjlxtx.html