2019-05-10 基礎技術視覺慣性里程計

ARKit使用視覺慣性里程計(Visual lnertial Odometry愧旦,VlO)來精準追蹤周圍的世界拘泞。VlO將攝像頭的傳感器數據同Core Motion 數據進行融合流译。這兩種數據允許設置能夠精度地感測設備在房間內的動作,而且無需額外校準

場景識別與光亮估量

借助ARKit卖怜,iPhone和iPad可以分析相機界面中所呈現的場景,并在房間當中尋找水平面础爬。ARKit不僅可以檢測諸如桌子和地板之類的水平面散劫,還可以在較小特征點(featurepoints)上追蹤和放置對象。ARKit還利用攝像頭傳感器來估計算場景當中的可見光總亮度幕帆,并為虛擬對象添加符合環(huán)境照明量的光量。

高性能硬件與渲染優(yōu)化

ARKit運行在AppleA9和A10處理器上赖条。這些處理器能夠為ARKit提供突破性的性能失乾,從而可以實現快速場景識別,并且還可以讓您基于現實世界場景纬乍,來構建詳細并引入注目的虛擬內容碱茁。您可以利用Metal、Scenekit以及諸如Unity仿贬、虛幻引擎之類的第三方工具纽竣,來對ARKit進行優(yōu)化。

ARKit

ARKit將iOS設備的攝像頭和設備動作檢查(Motion)功能茧泪,集成到您的應用或者游戲當中蜓氨,從而為用戶提供增強現實體驗。

所謂的增強現實(AugmentedReality队伟,AR)穴吹,指的是向設備攝像頭產生的實時動態(tài)視圖中,添加2D或者3D元素嗜侮,然后用某種方法讓這些元素看起來就處于現實世界當中港令,所產生一種用戶體驗。ARKit提供了設備動作追蹤锈颗、相機場景捕獲和高級場景處理顷霹,并讓AR元素的展示變得極為便利,從而大大簡化了建立AR用戶體驗的工作難度击吱。

探索Ar的概念淋淀、特性,以及了解建優(yōu)秀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會話中估計場景照明信息關聯(lián)到一個捕獲的視頻幀


Understanding Augmented Reality

探索Ar的概念、特性似芝,以及了解構建優(yōu)秀AR場景的最佳實踐那婉。

對于所有的AR場景而言,最基本要求是:創(chuàng)建并追蹤現實空間和虛擬空間之間的關系党瓮,其中详炬,現實空間是用戶所處的世界,虛擬空間是可對可視化內容進行建模的世界寞奸,這同時也是ARKit的基本特性呛谜。當您的應用將這些虛擬內容與實時視頻結合,并在一起顯示的時候枪萄,用戶就可以體驗到所謂的增加現實:您的虛擬內容成為了真實世界的一部分隐岛,盡管這只是錯覺而已。

HowWorldTrackingWorks

為了在現實世界和虛擬世界之間建立對應關系瓷翻,ARKit使用了一種被稱為視覺慣性里程計的技術聚凹。這項技術會將iOS設備的動作感測硬件信息,加上對可見場景的計算視覺分析功能齐帚,然后與設備的攝像頭相結合妒牙。ARKit將會去識別場景圖像當中的顯著特征,然后在視頻震中追蹤這些特征位置的距離童谒,然后再將這些信息與動作感測數據進行比較单旁。從而生成具備設備位置和動作特征的高精準模型。

全局追蹤(WorldTracking)同樣也可以分析和識別場景當中的內容饥伊。通過使用點擊測試(hit-testing)方法(參見ARHitTestResult類)象浑,從而找到與相機圖像中的某個點所對應的真實的世界面。如果您在Session(會話)配置當中啟用了planeDetection配置的話琅豆,那么ARKit就會去檢測相機圖像當中的水平面愉豺,并報告其位置和大小。您可以使用點擊測試所生成的結果茫因,或者使用所檢測到的水平面蚪拦,從而就可以在場景當中放置虛擬內容,或者與之進行交互冻押。

BestPractices and Limitations

全局追蹤是一項不精確的科學(inexact science)盡管在這個過程當中驰贷,經常會產生可觀的準確度,從而讓AR的體驗更加真實洛巢。然而括袒,它嚴重依賴于設備物理環(huán)境的相關細節(jié),而這些細節(jié)并不總是一致稿茉,有些時候也難以實時測量锹锰,這也就導致這些物理細節(jié)往往都會存在某種程度的錯誤芥炭。要建立高品質的AR體驗,那么請注意下述這些注意事項和提示:

基于可見的照明條件來設計AR場景恃慧。全局追蹤涉及到了圖像分析的相關內容园蝠,因此就需要我們提供清晰的圖像。如果攝像頭沒有方法看到相關的物理細節(jié)痢士,比如說攝像頭拍到的是一面空空如也的墻壁彪薛,或者場景的光線實在太暗的話,那么全局追蹤的質量就會大大降低怠蹂。

根據追蹤質量的相關信息來給用戶進行反饋提示陪汽。全局追蹤會將圖像分析與設備的動作模式關聯(lián)起來。如果設備正在移動的話褥蚯,那么ARKit就可以更好地對場景進行建模,這樣即便設備只是略微晃動况增,也不會影響追蹤質量赞庶。但是一旦用戶的動作過多、過快或者晃動過于激烈澳骤,就會導致圖像變得模糊歧强,或者導致視頻幀中要追蹤的特征之間的距離過大,從而致使追蹤質量的降低为肮。ARCamera類能夠提供追蹤狀態(tài)摊册,此外還能提供導致該狀態(tài)出現的相關原因,您可以在UI上展示這些信息颊艳,告訴用戶然后解決追蹤質量低這個問題茅特。

給水平面檢測預留點時間來上成清晰的結果,一旦您獲得所需的結果后棋枕,就禁用水平面檢測白修。一開始對水平面進行檢測的時候,所檢測到的水平面位置和范圍很可能不準確重斑。不過隨著時間的推移兵睛,只要仍然保持在場景當中,那么ARKit就能夠較為精準地估計水平面的位置和范圍窥浪。當場景中有一個比較大的平坦表面的話祖很,就算您已經使用過這個水平面來放置內容,那么ARKit可能還會繼續(xù)對水平面的錨點位置漾脂、范圍和變換點進行修正假颇。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市符相,隨后出現的幾起案子拆融,更是在濱河造成了極大的恐慌蠢琳,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镜豹,死亡現場離奇詭異傲须,居然都是意外死亡,警方通過查閱死者的電腦和手機趟脂,發(fā)現死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門泰讽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人昔期,你說我怎么就攤上這事已卸。” “怎么了硼一?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵累澡,是天一觀的道長。 經常有香客問我般贼,道長愧哟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任哼蛆,我火速辦了婚禮蕊梧,結果婚禮上,老公的妹妹穿的比我還像新娘腮介。我一直安慰自己肥矢,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布叠洗。 她就那樣靜靜地躺著甘改,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灭抑。 梳的紋絲不亂的頭發(fā)上楼誓,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音名挥,去河邊找鬼疟羹。 笑死,一個胖子當著我的面吹牛禀倔,可吹牛的內容都是我干的榄融。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼救湖,長吁一口氣:“原來是場噩夢啊……” “哼愧杯!你這毒婦竟也來了?” 一聲冷哼從身側響起鞋既,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤力九,失蹤者是張志新(化名)和其女友劉穎耍铜,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體跌前,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡棕兼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了抵乓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伴挚。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖灾炭,靈堂內的尸體忽然破棺而出茎芋,到底是詐尸還是另有隱情,我是刑警寧澤蜈出,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布田弥,位于F島的核電站,受9級特大地震影響铡原,放射性物質發(fā)生泄漏皱蹦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一眷蜈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沈自,春花似錦酌儒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酪夷,卻和暖如春榴啸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晚岭。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工鸥印, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坦报。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓库说,卻偏偏與公主長得像,于是被迫代替她去往敵國和親片择。 傳聞我的和親對象是個殘疾皇子潜的,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內容