您的位置 首页 java

详解ios之ARkit为何碾压对手(一)

在这篇文章中,我们能学习到

1, ARKit 简介与基本了解

2, ARKit的基本技术原理,平面检测

3,ARKit的两大神秘之处:单目摄像机3D成像、计量尺度获取

明天小编会更新第二篇,

1, ARKit、Tango、Hololens技术对比

2,开发人员如何使用ARKit

这是小编的一个ios,java学习交流群659170228

说到 AR,大家可能会想到 Pokemon Go 这款风靡一时的游戏,也可能会对 AR 在技术上如何实现做一些思考。今年,苹果公司在 WWDC 大会上发布的 ARKit 在整个 AR 生态中引起巨大轰动。开发者发现,这是他们第一次能将一款强大的 AR SDK 广泛使用于自己的应用,不再需要什么标记点、初始化、深度摄像头,甚至是专门的创作工具。毫不意外,ARKit 让开发者们集体开启各种 AR demo 秀。但是,很多开发者不清楚 ARKit 如何工作,也不了解为什么 ARKit 比于其他 SDK 更好。从底层技术看ARKit,可以帮助大家了解当前版本 ARKit 能做什么,了解 ARKit 需要改进的地方以及为什么需要改进,那么今天小编将会为你揭开ARkit的神秘面纱。

ARKit 简要介绍

WWDC 的一段视频对 ARKit 做了一个整体的概述,我看过后,最简单的概括总结起来就是这样 — ARKit 不仅是简单的在摄像头屏幕上显示一些增强内容,它还提供你了一整套追踪和定位能力,比如你在 AR 场景中放置一个虚拟桌子,它不仅能将这个桌子显示在你的屏幕上,还能够随着你手机的移动,显示桌子的各个角度,如下所示:

对 ARKit 进行了一些基本了解后,确实刷新了我对 AR 的观念。首先, ARKit 不是简单的摄像头贴片,把一些 2D 或者 3D 的模型贴到你的摄像头屏幕上。如果让我用一句话来描述,它更像是对两个空间的拟合。一个是你所处的真实空间,另一个是 AR 的虚拟空间。ARKit 通过对手机上各个传感器的追踪分析,让这两个空间从逻辑上高度整合,然后再通过手机屏幕展现到你面前。

ARKit 主要用到的类其实并不多,如下:

ARSession:这是 ARKit 核心组件,所有的 AR 过程都是基于一个 ARSession,包括虚拟空间的计算,利用手机传感器和现实空间进行拟合等操作,都在这里面进行。

ARSessionConfiguration:这个是咱们上面提到过的,用于配置 ARSession 的交互方式。

ARSCNView 和 ARSKView: 用于将 ARSession 渲染出来的内容展现出来,应该不难理解。

ARAnchor:用于标识现实空间的 锚点 ,这些锚点在整个 ARSession 期间都有效。如果你开启了 Plane Detection(用于检测真实场景中的物理表面),则会自动填充这些锚点。

这样列出来 ARkit 类的介绍,第一时间不能完全理解清除很正常,这里只给大家做一个初步印象,在实践中遇到它们时再去深入了解。

ARKit 的使用需要一定的软硬件设施:

软件:

Xcode9

iOS11

MacOS 10.12.4 及以上版本(为了支持 Xcode9)

硬件:

处理器 为 A9 及以上的 iPhone 或 iPad 设备(iPhone 6s 为 A9 处理器)

ARKit 基于什么样的技术?

技术上,ARKit 配备视觉惯性测量(VIO)系统,带有简单的 2D 平面检测。具体来说,VIO 系统会实时追踪你在空间中的位置,也就是 6 自由度(DoF)动作,比如说,屏幕每帧画面刷新之间,你的动作会被重新计算,画面的刷新率为每秒 30fps 或以上,而且这些计算会同时进行两次。

第一次是,通过将现实世界中的点与摄像头传感器每帧画面像素点相匹配,你的动作会被视觉系统追踪,进行一次计算。第二次是你的动作被惯性系统追踪,主要通过加速度计和陀螺仪两个 惯性测量单元 (IMU)实现。

然后,卡尔曼滤波器(Kalman Filter)将 VIO 系统和惯性系统的输出进行整合,从而预测出你的最佳“真实”位置(称为Ground Truth),并且由 ARKit SDK 发布你的最新定位。就像汽车的里程表显示车辆的驾驶距离一样,VIO 系统记录 iPhone 手机在 6 DoF 空间中经过的距离。6 DoF 表示沿着 xyz 三个方向的平动,加上绕三个轴的俯仰、偏转及滚动。

VIO 系统已经出现很多年了,在行业中的认可度很高,并且市场上不少设备也配备了 VIO 系统。所以苹果 ARKit 使用 VIO 系统并不意味着创新。那么到底是什么技术让 ARKit 变得如此强大呢?

ARKit 的第二个关键点是配备简单的平面检测。这个技术十分必要,你需要地面作为参照物来表示位置信息,否则物体会漂浮在空中。任何 3 个点可以定义一个平面,根据光学系统检测到的特征点(demos 中看到的点),通过算法将特征点平均化,便得到了参照平面。

ARKit 可以检测水平面(我猜测 ARKit 未来能够检测更复杂的 3D 几何体,但应该要等到深度感应摄像头的发布,也许就是 iPhone 8 吧…)。

至于平面检测,就是在获得一定数量的 3D 特征点后,尝试在这些点中安装一些平面,然后根据尺度、方向和位置找出最匹配的那个。ARKit 会不断分析 3D 特征点并在代码中报告找到的平面

所以一定要注意 ARKit 需要看向能检测出许多有用特征点的内容。可能检测不出特征点的情况如下:

1,光线差——没有足够的光或光线过强的镜面反光。尝试避免这些光线差的环境。

2,缺少纹理——如果摄像头指向一面白墙,那也没法获得特征,ARKit 也去无法找到并追踪用户。尝试避免看向纯色、反光表面等地方。

3,快速移动——通常情况下检测和估算 3D 姿态只会借助图片,如果摄像头移动太快图片就会糊,从而导致追踪失败。但 ARKit 会利用视觉惯性里程计,综合图片信息和设备运动传感器来估计用户转向的位置。因此 ARKit 在追踪方面非常强大。

ARKit的两大“神秘之处”

有人会把 ARKit 称为 SLAM ,或者使用术语 SLAM 来指位置跟踪。在此澄清一下,SLAM 是一个相当广泛的术语,就像“多媒体”这个术语一样。“追踪”本身就是一个通用的术语,使用“测距”更具体,但在 AR 领域,使用“追踪”来表达即可。有很多方法可以实现 SLAM,追踪踪只是 SLAM 系统的一个组成部分。 我认为 ARKit 是一个轻型或简单的 SLAM 系统。Tango 或 Hololens 的 SLAM 系统除了距离测量外,还有其他很多其他特征。

ARKit 存在两大“神秘之处”:一是,如何通过单目镜头获得 3D 效果;二是,如何获得计量尺度(像那个卷尺测量 demo 一样)。答案在于“非常好地”移除 IMU 产生的误差,即让航位推算法实现高精度地预测。当实现这点后,便会发生以下的效果:

为获得 3D 效果,需要从不同角度获得 2 个场景视图,进而通过立体计算得到你所在的空间位置。这就是双眼如何看到 3D 图像,以及为什么一些跟踪器要要依靠立体摄像机。如果有两台摄像机,可以容易计算摄像机之间的距离,同时捕获帧画面。ARKit 为什么仅仅使用了一个摄像头便获得了 3D 效果呢?是因为一个摄像头可以捕获一帧画面,而后摄像头移动捕获第二帧画面。

使用 IMU 航位推算法计算,便可计算出两帧画面之间的移动距离,然后正常计算出立体画面。实际上,你可能捕捉更多的帧画面进行计算,从而获得更高的精确度。如果 IMU 足够准确,两帧画面间产生的“移动”可以仅仅通过手握拳后手臂微小肌肉群的运动来检测,这看起来像魔术一样神奇。

系统需要依赖于 IMU 航位推算法来获得计量尺度。通过 IMU 给出的加速度和时间测量值,可以计算出速率并获得 IMU 每帧画面之间的距离。数学运算并不难,困难的是消除 IMU 误差,以获得近似完美的加速度测量值。一个微小的错误,在画面每秒刷新 1000 次的情况下,持续几秒钟后可能会导致 30% 甚至更大的计量尺度误差。令人惊讶的是,苹果 ARKit 已经把误差下降到 10% 以下。

各位看官觉得小编写的不错的话,可以动动小手点一波关注跟收藏!

文章来源:智云一二三科技

文章标题:详解ios之ARkit为何碾压对手(一)

文章地址:https://www.zhihuclub.com/180236.shtml

关于作者: 智云科技

热门文章

评论已关闭

18条评论

  1. 1990, 252 365 369 74 A recent Cochrane review found that three placebo controlled trials of carbamazepine in trigeminal neuralgia demonstrated a combined NNT of 2

  2. It s also expected to host the region s largest wind farm with 44 turbines danazol losartana potassica 100mg posologia Despite considerable investment in early education and early childhood services there is still a shocking and unacceptable gap between the poorest children and their better off peers when they reach school age, the report says

  3. From 2015 through 2017, 52 out of 75 districts of the country reported cases of and or deaths due to scrub typhus Source EDCD data using Arc GIS software

  4. The conventional stroke risk factors, including hypertension, diabetes mellitus, smoking, and cardiac diseases, do not fully account for the risk of stroke, and stroke victims, especially young subjects, often do not have any of these factors

  5. Most of the people in my group will never stop taking it including myself I only take two tablespoons of oil and flaxseeds as a preventative we love the way it makes us feel and it would be total stupidity to stop using it

  6. The endometrial response as seen in both the groups shows a progressive increase in ET from 6

  7. Tisdale s work is supported by the American Heart Association Midwest Affiliate and the Strategic Research Initiative, Indiana Clinical Translational Sciences Institute

  8. Ventilation was assessed by correlation of minute ventilation V̇ e with minute C o 2 production V̇ co 2

  9. Thiazides were associated with a reduction in stroke, coronary disease, cardiovascular events and mortality Yu F, Ryan LH, Schaie KW, et al

  10. To maintain adequate systemic perfusion, all infants received norepinephrine NE and epinephrine E in a dose up manner according to clinical judgements specific to each case, adequate volume resuscitation and hydrocortisone Osteoporosis and Aging Related Bone Disorders

  11. Estrogens dramatically decrease both LDL and HDL cholesterol plasma levels in rats Simultaneous measurement of percentage free thyroxine and triiodothyronine comparison of equilibrium dialysis and sephadex chromatography

网站地图