2019-05-10 基础技术视觉惯性里程计

ARKit使用视觉惯性里程计(Visual lnertial Odometry,VlO)来精准追踪周围的世界。VlO将摄像头的传感器数据同Core Motion 数据进行融合。这两种数据允许设置能够精度地感测设备在房间内的动作,而且无需额外校准

场景识别与光亮估量

借助ARKit,iPhone和iPad可以分析相机界面中所呈现的场景,并在房间当中寻找水平面。ARKit不仅可以检测诸如桌子和地板之类的水平面,还可以在较小特征点(featurepoints)上追踪和放置对象。ARKit还利用摄像头传感器来估计算场景当中的可见光总亮度,并为虚拟对象添加符合环境照明量的光量。

高性能硬件与渲染优化

ARKit运行在AppleA9和A10处理器上。这些处理器能够为ARKit提供突破性的性能,从而可以实现快速场景识别,并且还可以让您基于现实世界场景,来构建详细并引入注目的虚拟内容。您可以利用Metal、Scenekit以及诸如Unity、虚幻引擎之类的第三方工具,来对ARKit进行优化。

ARKit

ARKit将iOS设备的摄像头和设备动作检查(Motion)功能,集成到您的应用或者游戏当中,从而为用户提供增强现实体验。

所谓的增强现实(AugmentedReality,AR),指的是向设备摄像头产生的实时动态视图中,添加2D或者3D元素,然后用某种方法让这些元素看起来就处于现实世界当中,所产生一种用户体验。ARKit提供了设备动作追踪、相机场景捕获和高级场景处理,并让AR元素的展示变得极为便利,从而大大简化了建立AR用户体验的工作难度。

探索Ar的概念、特性,以及了解建优秀AR场景的最佳实践。

1.ARSession类

这是一个单例,是ARKit的核心类,用于控制设备摄像头,处理传感器数据,对捕获的图像进行分析等等

2.ARSessionConfiguration类

跟踪设备方向的一个基本配置,在运行时,需要指定AR运行的配置

3.ARWorldTrackingSessionConfiguration

配置跟踪设备的方向和位置,以及检测设备摄像头所看到的现实世界的表面

4.ARCNView类

用来增强相机通过3D SceneKit所捕捉到的内容并展示AR效果的一个View

5.ARSKView类

用来增强相机通过2D SpriteKit所捕捉所捕捉到的内容并展示AR效果的一个View

6.ARAnchor类

真实世界的位置和方向,用于在一个AR场景中放置一个物体

7.ARPlaneAnchor类

在一个AR Session会话中检测一个真实中平面的位置和方向的相关信息

8.ARHitTestResult类

在一个AR Session会话中通过检测相机视图中的一个点来获取真实世界中表面的相关信息

9.ARFrame类

捕获一个视频图像和位置追踪信息作为一个AR会话的一部分

10.ARCamera类

在一个AR会话中摄像机的位置的成像特征信息为捕获视频帧

11.ARLightEstimate类

在一个AR会话中估计场景照明信息关联到一个捕获的视频帧


Understanding Augmented Reality

探索Ar的概念、特性,以及了解构建优秀AR场景的最佳实践。

对于所有的AR场景而言,最基本要求是:创建并追踪现实空间和虚拟空间之间的关系,其中,现实空间是用户所处的世界,虚拟空间是可对可视化内容进行建模的世界,这同时也是ARKit的基本特性。当您的应用将这些虚拟内容与实时视频结合,并在一起显示的时候,用户就可以体验到所谓的增加现实:您的虚拟内容成为了真实世界的一部分,尽管这只是错觉而已。

HowWorldTrackingWorks

为了在现实世界和虚拟世界之间建立对应关系,ARKit使用了一种被称为视觉惯性里程计的技术。这项技术会将iOS设备的动作感测硬件信息,加上对可见场景的计算视觉分析功能,然后与设备的摄像头相结合。ARKit将会去识别场景图像当中的显著特征,然后在视频震中追踪这些特征位置的距离,然后再将这些信息与动作感测数据进行比较。从而生成具备设备位置和动作特征的高精准模型。

全局追踪(WorldTracking)同样也可以分析和识别场景当中的内容。通过使用点击测试(hit-testing)方法(参见ARHitTestResult类),从而找到与相机图像中的某个点所对应的真实的世界面。如果您在Session(会话)配置当中启用了planeDetection配置的话,那么ARKit就会去检测相机图像当中的水平面,并报告其位置和大小。您可以使用点击测试所生成的结果,或者使用所检测到的水平面,从而就可以在场景当中放置虚拟内容,或者与之进行交互。

BestPractices and Limitations

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容