大神解釋,為什麼蘋果的ARKit毫無對手?


【原文刊登於雷鋒網,標題:大神揭秘:蘋果ARKit 憑什麼碾壓對手?,蘋果仁授權轉載】

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

本文由Matt Miesnieks 發表於Super Ventures Blog,雷鋒網得知Matt Miesnieks 目前為投資公司Super Venture 合夥人,曾任職於三星、Dekko、Layar 等公司。

通過這篇文章,我們能了解到:

  • ARKit的基本技術原理:視覺慣性測量(VIO)系統、平面檢測
  • ARKit的兩大神秘之處:單目攝像機3D成像、計量尺度獲取
  • ARKit、Tango、Hololens技術對比
  • 開發人員如何使用ARKit

雷鋒網(公眾號:雷鋒網)將全文整理如下。

今年,蘋果公司在 WWDC 大會上發布的 ARKit 在整個AR 生態中引起巨大轟動。開發者發現,這是他們第一次能將一款強大的AR SDK 廣泛使用於自己的應用,不再需要什麼標記點、初始化、深度攝影機,甚至是專門的創作工具。毫不意外,ARKit 讓開發者們集體開啟各種 AR demo 秀。

但是,很多開發者不清楚 ARKit 如何工作,也不了解為什麼 ARKit 比於其他SDK 更好。從底層技術看ARKit,可以幫助大家了解當前版本ARKit 能做什麼,了解ARKit 需要改進的地方以及為什麼需要改進,並且還可以幫助我們預測未來何時, Android 系統及頭戴式顯示器(VR 或AR)可以支持ARKit 類似的功能。

目前為止,我在 AR 領域工作 9 年了,過去曾研發出與ARKit 相似的技術,但當時並沒有合適的硬體可支持這個技術。作為內部人士,我了解這些系統是如何構建的,以及為什麼構建成現在的樣子。

這篇博文試圖向那些非技術人群解釋一些專業的技術問題,並不是面向計算機視覺工程師。文中,我用簡單的話來解釋ARKit,但不一定100% 符合科學的解釋,不過我希望至少可以幫助人們加深對於ARKit 的理解。

ARKit 基於什麼樣的技術?

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

技術上,ARKit 配備視覺慣性測量(VIO)系統,帶有簡單的 2D 平面檢測。具體來說,VIO 系統會實時追踪你在空間中的位置,也就是6 自由度(DoF)動作,比如說,屏幕每幀畫面刷新之間,你的動作會被重新計算,畫面的刷新率為每秒30fps 或以上,而且這些計算會同時進行兩次。

第一次是,通過將現實世界中的點與攝影機傳感器每幀畫面像素點相匹配,你的動作會被視覺系統追踪,進行一次計算。第二次是你的動作被慣性系統追踪,主要通過加速度計和陀螺儀兩個慣性測量單元(IMU)實現。

然後,卡爾曼濾波器(Kalman Filter)將VIO 系統和慣性系統的輸出進行整合,從而預測出你的最佳“真實”位置(稱為Ground Truth),並且由ARKit SDK 發布你的最新定位。就像汽車的里程表顯示車輛的駕駛距離一樣,VIO 系統記錄iPhone 手機在6 DoF 空間中經過的距離。6 DoF 表示沿著xyz 三個方向的平動,加上繞三個軸的俯仰、偏轉及滾動。

VIO 系統最大的優勢就是,即使用戶動作加速的情況下,IMU 依舊可以每秒讀數 1000 次。IMU 每次讀數之間,航位推算法被用來計算設備的運動。這時,航位推算法更像是一種猜測,就像是,我讓你往前買一步,然後猜猜這個步子有多大,你便會用航位推算法來預測步子的距離。(後面我將詳細介紹這種預測是如何實現高度準確性的。)慣性系統產生的誤差會隨時間累積,所以,IMU 每幀畫面所間隔的時間越長或者慣性系統使用時間越長,而且還沒有VIO 系統配合的時候,動作的追踪也將越來越偏離實際的動作情況。

視覺/光學測量以相機畫面幀速率進行,通常為30fps,並且基於每幀場景變化的距離。光學系統通常會隨著距離的增加,而不斷積累誤差,時間也會一定程度上影響光學系統的準確性。所以你行動的距離越遠,時間越久,誤差越大。好消息是,一個追踪系統的優勢可以抵消另一個系統的劣勢。

視覺和慣性跟踪系統是完全不同的測量系統,沒有相互依賴關係。這意味著相機可能被遮蓋,或者可能看到的是幾乎沒有光學特徵的場景,例如一面白牆,而慣性系統這時可以“加載”幾幀畫面。相對地,設備處於靜止的狀態下,視覺系統提供的動作追踪信息比慣性系統更加穩定。卡爾曼濾波器不斷選擇最佳動作信息,追踪效果也就更加穩定。

VIO系統已經出現很多年了,在行業中的認可度很高,並且市場上不少設備也配備了VIO系統。所以蘋果ARKit使用VIO系統並不意味著創新。那麼到底是什麼技術讓ARKit變得如此強大呢?

ARKit的第二個關鍵點是配備簡單的平面檢測。這個技術十分必要,你需要地面作為參照物來表示位置信息,否則物體會漂浮在空中。任何3個點可以定義一個平面,根據光學系統檢測到的特徵點(demos中看到的點),通過算法將特徵點平均化,便得到了參照平面。

如果光學系統選取的特徵點足夠多的話,你便能預測到真實的平面。這些特徵點通常被稱為“點雲”,所有的特徵點形成稀疏的點雲,用於光學跟踪。稀疏點雲僅僅需要少量的存儲內存、短暫地使用CPU。在慣性系統的支持下,光學系統即使檢測少量的特徵點,也可以正常工作。點雲和密集點雲是不同的,密集點雲看起來更加接近真實感(目前有人正在研究的使用密集點雲進行跟踪,這更複雜)。

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%以下。

Tango 、 HoloLens、 Vuforia 等SDK 怎麼樣?

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

Tango 只是一個品牌名,而不是真正的產品。Tango 包括硬體參考設計(RGB,魚眼鏡頭,深度相機和CPU / GPU規格),還參與VIO(運動跟踪),稀疏映射(區域學習)和密集3D 重建(深度感知)等軟體。

HoloLens 具有完全相同的軟體棧,另外包括一些ASIC(微軟稱之為全息處理單元)優化CPU / GPU 卸載處理並減小電耗。

Vuforia 與ARKit 幾乎是一樣的,只是Vuforia 的硬體是獨立的。

上述SDK 均使用相同的VIO 系統,而且,Tango 和ARKit 使用的均為FlyBy 最初發布的代碼庫!HoloLens 和Tango 都不使用深度相機進行追踪,那麼到底是什麼技術設備讓ARKit 大放異彩呢?

答案是ARKit並不比HoloLens好,我甚至認為HoloLens的跟踪系統是市場上最好的,但HoLolens的硬體普及並不廣。微軟可能會在Windows系統的智能手機中安裝HoloLens跟踪系統,但我相信出於商業原因,微軟不會這樣做:

因為這樣可能會增加生產和時間成本,為一款銷量或許很少的手機校準傳感器。而且,微軟版本的ARKit 也可能無法說服開發者放棄使用iOS 或Android 系統。

12 個月前,Google 本就可以輕鬆交付能夠在Android 系統上運行的Tango 手機,但Google 沒有這樣做。如果Google 早早將Tango 發貨,那麼ARKit 的問世也只是緊跟趨勢,而非重大突破。

我認為,Google公司不想為每家OEM都進行特定的傳感器校準過程,而且每家OEM廠商生產的Tango版本都不一樣,Google也不想在一些較大的OEM廠商(三星、華為等)中選擇。所以,Google為OEM廠商提供了硬體的參考設計,OEM廠商可以自行選擇“使用,或者不使用”。(當然,事情並非這麼簡單,這是OEM廠商反饋給我的關鍵點。)

隨著Android智能手機硬體商品化,相機和傳感器堆棧是Android手機最後實現差異化的地方,所以OEM廠商無法滿足Google的要求。Google認為,深度相機是手機的一部分,但是深度相機增加了手機成本,這也是OEM廠商拒絕Google的另一個原因!

自從ARKit發布以來,市場已經發生了變化。OEM廠商要么尋找Tango的替代系統,要么接受Google的硬體參考設計,然後實現平台控制。這也是有意思的變化。

總的來說,ARKit 更好的原因在於:

蘋果公司可以負擔得起將VIO 算法緊密耦合到傳感器上,並花費很多時間來校準VIO 系統,以減少計算空間位置時產生的誤差。

值得注意的是,大型OEM 廠商有一些替代方案。可以選擇其他的追踪方案,像ORB Slam、OpenCV 等,但幾乎都是光學追踪器,都配有單個RGB、立體聲、深度相機,有些使用稀疏點雲,有些使用密集點雲。有許多創業公司正在研發追踪系統,研究增強像素也是一個很好的方向,但任何VIO 系統最終的競爭都會集中到硬體模型和校准上。

開發人員如何使用ARKit

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

你或許已經有一個可以支持ARKit 的手機了。首先,要了解使用ARKit 開發內容,與以往開發一款手機APP 有巨大的差異:一個是你不用控制場景,一個是你要控制每幀像素。

然後,想想Tango 或HoloLens,看看當你的內容與無法控制的場景中的3D 模型交互時,會發生什麼。

這其中的學習難度較大,比從網絡到移動或從移動到VR 更有難度。你需要徹底重新思考應用程序的如何運行以及用戶體驗(UX)的意義是什麼。我現在看到很多ARKit 的demo,四年前看到它們是基於Vuforia 創建,再往前四年就是Layar (2010 年荷蘭公司SPRXmobile 推出的全球第一款AR 手機瀏覽器)。這幾年來,我看到了幾乎所有類型的AR APPs 的例子,我很樂意為大家提供支持和反饋。

我常常鼓勵開發人員勇於構建新奇的APP。一些蠢蠢的APP 一上線便大獲成功,但通過AR 硬體開發讓用戶是滿意的案例也十分具有挑戰。

能構建良好追踪系統的人並不多

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

直觀地說,目前只有少數人能構建好的追踪系統。那些具備交叉學科背景的工程師們才能研發出的融入單目VIO 最好的系統,用於手機追踪的解決方案。

在二十世紀中期,VIO 系統最初由波士頓軍事/工業供應商Intersense 使用。Leonid Naimark 是該技術的創始人之一,2011 年時加入我創建的Dekko 公司並擔任首席科學家。由於傳感器限制,Dekko 證實了VIO 無法在IPad 2 上運行,Leonid 重回軍工行業,但Dekko 公司的CTO Pierre Georgel 如今已成為Google Daydream 團隊的高級工程師。

我在Super Ventures 的合作夥伴Ori Inbar 創立了Ogmento。Ogmento 公司後改名為FlyBy,FlyBy 團隊成功地構建了基於iOS 的VIO 系統,還增加了魚眼相機。該代碼庫已經授權給Google,成為Tango 的VIO 系統。蘋果公司收購FlyBy 之後,FlyBy 的VIO 系統代碼庫成為ARKit VIO 的核心。

FlyBy公司的CTO Chris Broaddus繼續為Daqri公司研究追踪系統,現在他已經加入矽谷的神秘無人車初創公司Zoox。2007年,第一個移動SLAM系統由Georg Klein在Oxford Active Computing lab(PTAM)開發,Georg Klein和David Nister一同為HoloLens建立VIO系統,David離開後還為特斯拉創建了自動駕駛系統。

Georg 帶的博士生Gerhard Reitmayr 主導了Vuforia 的VIO 系統的研發。此前擔任Vuforia 公司副總裁的Eitan Pilipski,現在是 Snap 公司的AR 軟體工程師。

牛津大學、劍橋大學和倫敦帝國學院研發團隊的核心成員研發了Kinect 追踪系統,現在也成為Oculus 和Magic Leap 追踪系統開發的負責人。

有趣的是,我無法說清,當前致力於AR 追踪系統研發的初創公司,到底是由哪個學科的人才主導。因為,這些創始人不管是機器人背景,或是其他計算機視覺背景,已經不足以支撐在一個更大領域範圍應用的追踪系統的研發。

後面,我會談談當代科學家們正在開展的工作。

歸根到底是統計學問題

AR 系統沒有“可行”或者“不可行”一說。大部分情況下,AR 系統可以很好的完成工作。AR 系統力求變得“更好”,也是推動統計學發展的事情。

故而,不要完全相信AR APP的演示,特別是發佈於YouTube上,顯示出驚人的效果的AR APP。在精心安排的環境中所表現的效果與現實生活中普通用戶所能獲得的效果之間,往往存在很大差距。但是智能手機或VR應用的演示通常並不存在這種問題。所以,觀眾常常被愚弄。

這是一個具體的技術示例,為什麼統計數據最終可以確定係統的運行情況。

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

在上面的圖像中,有一個網格,表示相機中的數字圖像傳感器。每個格子都是一個像素點。為了穩定追踪,在假設設備完全靜止的情況下,每個像素應該在現實世界中的有一個相匹配的對應點。然而,右側圖像顯示光子不是那麼的聽話,各種光子會隨意落到任何地方,每個像素點是光子的總數。場景中的光線變化(太陽光穿透雲層,熒光燈閃爍等)也會改變傳感器中的光子組成,現在傳感器要對應現實世界的不同像素點。那麼,這樣的情況下視覺追踪系統就認為用戶移動了!

所以,各種ARKit demo中光點閃爍時,系統必須確定哪些點是“可靠”的。系統對這些點進行三角測量來計算用戶的空間位置,求平均數後得到對實際位置的最佳估計數。因此,為確保錯誤的統計完全被移除,便需要研發更精確的系統。這就需要相機硬體堆棧(多個鏡片和塗層、快門和圖像傳感器等)、IMU硬體和軟體算法之間的嚴密集成和校準。

硬體與軟體的集成

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

其實開發VIO 系統並不難,而且VIO 系統的算法已經公開了,還有不少的應用案例。但是,很難把VIO 系統良好地運作起來。我指的是,慣性和光學系統完全融合創建立體地圖,在低精確度時確定度量標度。

例如,在我創辦的Dekko 時,應用的案例中要求用戶開始按照具體的要求移動,然後手機前後移動約30 秒才能使慣性和光學系統融合創建立體地圖。建立一個優良的慣性追踪系統需要經驗豐富的工程師。然而,全球只有約20 名工程師具備必須的技能和經驗,而且這20 名工程師中大多數從事巡航導彈追踪系統,或者火星漫遊者導航系統等。

即使你可以聘請到其中一位工程師,為了最大限度地減少誤差,仍然需要硬體和軟體的緊密結合。這意味著可以通過軟體準確建模IMU,詳細了解整個攝影機以及每個組件的詳細規格,更重要的是IMU 和攝影機都需要非常精確地同步。

系統需要準確知道IMU 讀取的數據哪個對應開始畫面,哪個對應結束畫面。這對於兩個系統的關聯至關重要,這一點最近才得以實現,因為硬體OEM 廠商認為沒有必要投資於此方面。這就是Dekko 公司花費了很長時間,才把基於iPad 2 系統的硬軟體融合的原因。第一個Tango 手機是第一台實現精準時間同步的設備,並且是第一款具備良好追踪系統的消費級手機。

目前,追踪系統採用的來自Qualcom 等公司的芯片都有一個同步的傳感器集線器,適用於所有組件,這意味著VIO 系統在大多數當前設備上可行,並配有相應的傳感器校準。

由於密切依賴硬體和軟體,在沒有OEM廠商的深度支持下,軟體開發人員幾乎不可能構建一個優良的系統。Google投入了大量資金,讓一些OEM廠商支持Tango的硬體規範,微軟、Magic Leap等公司也正在努力創建自己的硬體。蘋果之所以如此成功地發布ARKit,正是因為ARKit能夠很好地集合硬軟體。

光學校準

為了使軟體精確地把攝像機的像素點與現實世界中的點相匹配,攝像機系統需要精確校準。存在有兩種類型的光學校準:

第一種為幾何校準:使用相機的針孔模型來校正鏡頭的視場和鏡頭效果。由於鏡頭透鏡的影響,基本所有圖像都會變形。大多數軟體開發人員可以在沒有OEM 廠商的幫助下,通過使用基於標準棋盤格和基本公開攝影機參數校準。

第二種為光度校準:這種校準方式使用更多,通常需要OEM 廠商參與圖像傳感器本身的細節優化及內部鏡頭塗層的使用。此校準用於處理顏色和強度映射。例如,拍攝星空的望遠鏡所連接的攝像機,需要知道傳感器上光強度的輕微變化是否確定是星星,或者僅僅是傳感器或透鏡產生的誤差。校準使得AR 追踪器具有更高的確定性,因為傳感器上的每個像素點都對應於真實世界的點,所以光學追踪更加精準,產生的誤差更小。

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

在上面的圖片中,各種RGB 光點落入圖像傳感器上的“像素桶”中,這個過程很好地說明了問題。現實世界中點產生的光點通常落在幾個像素的邊界上,這些像素點將平均光點的密集度。用戶運動、或場景陰影或閃爍的熒光燈等微小的變化,都會改變與像素點對應的現實世界點的變化。這時,所有的光學校準都盡可能地消除產生的誤差。

慣性校準

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

對於IMU 來說,測量加速度比測量距離或速率更加重要。IMU 的讀取錯誤隨著時間的推移不斷累積,產生誤差的速度非常快!校準和建模的目標是確保距離的測量在每秒鐘X 等分時間下的精度足夠高。理想情況下,這個時間段要足夠長,以減少當鏡頭被遮蓋或場景中發生其他情況時,導致攝像機丟失對幾幀畫面的追踪。

使用IMU 測量距離稱為航位推算。這基本算是一個猜測,對IMU 收集的數據進行建模,確定積累錯誤的方式,然後編寫過濾器來減小誤差。想像一下,如果你被要求邁出一步,然後猜測邁出的步子有多大。只猜測邁出一步的距離會產生很高的誤差。但是,如果你反复邁出千步並猜測每一步的距離,所產生的誤差便會非常小。因為你對於踏出哪隻腳、地板的種類、鞋子的款式、移動速度的快慢、身體狀態的好壞等等熟知,那麼你最終的猜測便會非常準確。基本的IMU 校準和建模便是這一原理。

數據有很多誤差來源。機器臂通常以完全相同的方式重複地移動設備,捕獲IMU 的輸出並寫入濾波器,直到來自IMU 的輸出與來自機器臂的移動精確匹配。為進一步減小額外的誤差,Google、微軟甚至在國際空間站(ISS)及“零重力飛機”在微型重力環境下進行校準。

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

實際上,達到真正的精準度,比嘴上說說難的多。OEM 廠商必須對所有設備進行校準,即使許多設備有不同的IMU(例如,Galaxy 7 可能有來自Invensense 和Bosch 的IMU,當然Bosch 不適用於Invensense)。當然,這是蘋果相對於Android OEM 廠商的另一個優勢所在。

追踪技術的未來

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

如果VIO是今天我們能實現的,那麼今後將如何發展,會讓ARKit看起來很多餘嗎?令人驚訝的是,VIO系統將一直是數百米範圍內最好的追踪方法(對於更長距離的追踪,VIO系統需要融合GPS,重新定位地標識別)。優化VIO系統的原因是:即使其他光學系統像VIO一樣準確,其他系統的GPU或攝影機仍然需要耗費電池,而這對頭戴顯示器影響很大。所以,單目攝影機的VIO系統是最準確,最低功耗,最低成本的解決方案。

深入學習確實對研究追踪系統有重大影響。目前為止,基於追踪系統的深度學習大約產生10% 的誤差,其中頂級的VIO 系統的誤差只有個位數,這一數字還在變小,並且將優化室外重新定位。

深度攝影機能在各個方面優化VIO系統,其中對於特徵點不明顯的情況,精確測量地面實況和尺寸,以及邊緣追踪都能得帶很好的改善。但是耗電量大,需要以低幀率運行,並且每幀之間使用VIO。深度攝影機不適用於戶外,因為攝影機工作時產生的紅外線會被陽光生成的紅外線所干擾。攝影機的工作範圍也取決於功耗,這意味著手機的工作範圍可能只有幾米。深度攝影機的BOM成本很高,因此OEM廠商將避免在大批量生產的手機中安裝深度攝影機。

雙攝影機或魚眼鏡頭有助於看到更大的場景,可以捕獲更多的光學特徵。例如:普通鏡頭可能只看到白色的牆壁,魚眼鏡頭下可以看到天花板的圖案和地毯,Tango和HoloLens均採用了這種方案。而且,雙攝影機或魚眼鏡頭可獲得深度信息,其運算成本要低於VIO,但是VIO使用低成本的Bom和低功耗便能獲得深度信息。

由於雙攝影機手機的攝影機(即便是HMD)所處位置很接近,所以攝影機的精確範圍對於深度計算來說,非常有限。相隔幾厘米的攝影機只能精確幾米範圍內的深度。

而從頭到尾追踪最關鍵的是,支持更大範圍的追踪,尤其是支持戶外數錢公里的範圍追踪。在這點上,AR 追踪和無人駕駛跟踪幾乎沒有區別,只是AR 系統使用較少的傳感器,耗能也較低。最終,任何設備都將適用於大範圍追踪,雲服務也是必須的,故而,Google 最近宣布了Tango 的視覺定位服務意圖也在此。未來幾個月我們將看到這些變化,這也是每個人現在都關心3D 地圖的原因。

AR 計算機視覺的未來

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

6 Dof 位置追踪技術將在未來12-18 個月內完全商品化,覆蓋所有設備。現在還有哪些問題亟待解決呢?

3D 重建系統,HoloLens 稱之為空間映射(Spatial Mapping),Tango 稱之為深度感知(Depth Perception)。3D 重建系統能夠找出場景中真實物體的形狀或結構。這個技術允許虛擬內容隱藏於現實世界後面。

這讓人們出現概念混淆,認為AR 便是“混合”現實,其實是增強現實,多數AR demo 並沒有3D 重建系統的支持,所以AR 內容只是覆蓋於所有真實世界物體的前面。

3D 重建系統通過從場景中捕獲密集點雲(今天使用深度攝影機),將其轉換為網格,將“隱形”網格連同真實世界的坐標導入Unity 中,然後當真實世界的景像出現在攝影機中時,把那些網格放置在真實的景像上。

這意味著虛擬內容可以與現實世界互動。注意2D 版本的ARKit 通過檢測2D 平面實現,這是最為基本的要求。倘若ARKit 沒有參照地面,用Unity 製作的內容肯定會肆意“漂浮”。

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

圖片中,Magic Leap 公司演示了一款躲在桌腿後面的機器人。我們不知道桌子腿是實時重建,還是預先建模,再把虛擬機器人放在真實桌子腿的後面。

上述提到的深度攝像方面問題在3D 重建上仍然存在,這就是為什麼目前無法廣泛使用。研究人員正在研究,讓單目RGB 攝影機支持實時的照片級3D重建。這個技術至少需要12-18 個月才能應用於產品中。也是因為這樣,我才認為“真正的”消費級AR 頭戴設備依舊離我們很遠。

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

在2012 年,Dekko 的3D 重建系統可在iPad 2 上工作。我們不得不將網格顯示出來,否則用戶不敢相信他們所看到的(追踪系統可理解現實世界)。圖中越野車剛剛完成了跳躍,部分隱藏在紙巾盒後面。

3D重建之後,有許多有趣的研究註解3D場景。你現在能看到的幾乎所有的計算機視覺深度學習使用的是2D圖像,但對於AR(汽車、無人機等),我們需要在3D中從語義方面理解這個世界。

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

圖片為一例3D 場景語義解釋。底部是原始圖,中間是3D 模型(可能由立體相機或LIDAR 構建),最上面是通過深度學習的圖像分割,所以我們能從中分辨出人行道。這對《Pokemon Go》也十分有用。

然後,我們需要弄清楚,如何將所有驚人的技術擴展到實時支持多個用戶。這是終極目標。

大神揭秘:蘋果ARKit 憑什麼碾壓對手?

隨著3D 重建所需容量越來越大,我們需要了解如何將其託管至雲服務,讓多個​​用戶共享並擴展模型。

AR 其他技術的未來

AR 其他技術的未來說起來太廣泛,先談談要進一步發展的技術:

  • 光學:視野範圍、鏡頭尺寸、分辨率、亮度、焦深、聚光度等等都需要解決。

我們會看到一些“過渡性”的HMD 設計,它們受制於一些關鍵參數,只試圖解決一個問題,如社交性,或是追踪技術,或是企業用戶案例,以及其他,之後我們才能看到最終的消費級產品方案。

  • 渲染:使虛擬內容與現實世界融合。

確定真正的光源,將其與虛擬世界相匹配,使陰影和紋理看起來很合理。這個技術是好萊塢SFX 多年來一直努力的方向。但是對於AR 來說,需要在手機上實時完成,並且不會影響到真實世界的光或背景,即便是瑣碎的事情也很重要。

  • 輸入:這方面還有很長的路要走。

研究表明,多模式輸入系統效果最佳(有謠言說蘋果正在做這方面的事情)。多模式意味著各種各樣的輸入“模式”,如手勢、語音、計算機視覺、觸感、眼睛跟踪等,為最好理解用戶意圖,AI 也應該一起考慮進去。

  • 圖形用戶界面(GUI)和應用程序:目前還沒有我們想像中的AR APP。

我們只想看看Sonos (無線智能音響)在設備上顯示控件,並不想選擇Sonos 按鈕。而且我們一直關注的是視野範圍內畫面,和與實現世界的交互,沒有人知道該如何呈現,但肯定不會是4 x 6 的網格圖像。

  • 社會問題:只有Apple和Snap知道如何營銷時尚,AR HMD的銷售可能只是人們最求時尚。這個問題或許比所有技術問題都難以解決。

via  Super Ventures Blog  雷鋒網編譯