增強現實技術的“魔法”奇蹟!移動AR運作原理全面揭祕

增強現實近年來越來越火,玩家一定見過或者玩過 Pokemon Go 這款遊戲,這就是增強現實的應用之一。甚至我給女兒買的 AR 地球,也是增強現實的應用之一。增強現實技術可以將虛擬對象合併到現實場景中,並能支持用戶與其進行交互,它已經成爲虛擬現實研究中的一個重要領域,也是人機界面技術發展的一個重要方向。 可是你知道嗎?其實增強現實早在 1966 年就誕生了,但受限於當時計算機的處理能力以及技術不發達,一直沒有引起轟動。人類實現的第一套增強現實系統是由計算機圖形學之父和增強現實之父 Ivan Sutherlandand 開發的。直到 1992 年才正式誕生增強現實這一術語:波音公司的研究人員 Tom Caudell 和 David Mizell 在論文《Augmented reality: an application of heads-up display technology to manual manufacturing processes》首次使用了增強現實這個詞,用來描述將計算機呈現的元素覆蓋在現實世界上這一技術。今天,我們翻譯並分享了 Alex Chuang 的博文,以饗讀者。

本文最初發佈於 Alex Chung 的 Medium 博客,經原作者 Alex Chung 授權由 InfoQ 中文站翻譯並分享。


英國科幻作家 Arthur C. Clark 爵士曾經說過,“任何足夠先進的技術都與魔法無異。”

增強現實(Augmented Reality,AR)有潛力像魔法一樣,讓我們感到敬畏和驚奇。這是計算機歷史上,我們第一次擁有這樣的能力:能夠模糊物理世界和虛擬世界之間的界限。AR 有望帶來新的創意經濟的曙光,在這個經濟中,數字媒體可以被賦予“生命”,並賦予與現實世界互動的能力。

AR 體驗看起來很神奇,但在幕後到底發生了什麼呢?要回答這個問題,我們必須看看像智能手機這樣的基於相機 AR 系統的三個基本基礎。

  1. 計算機如何知道它在世界上的位置?(定位 + 地圖創建)
  2. 計算機如何理解世界的樣子?(幾何學)
  3. 計算機如何像我們一樣理解這個世界?(語義學)

第一部分 計算機如何知道它在世界上的位置?(定位)

“好奇號”火星車在火星上的自拍(來源:https://www.nasa.gov/jpl/msl/pia19808/looking-up-at-mars-rover-curiosity-in-buckskin-selfie/)

當 NASA 將火星探測器送上火星時,他們需要一種方法,讓機器人在不使用 GPS(Global Positioning System,全球(衛星)定位系統)的情況下,能夠在另一顆星球上實現自主導航。他們想出了一種名爲“視覺慣性測程”(Visual Inertial Odometry,VIO)的技術,可以在沒有 GPS 的情況下跟蹤火星車在一段時間內的運動情況。這和我們的智能手機用來跟蹤它們的空間位置和方向所用到的技術是一樣的。

VIO 系統由兩部分組成。

  • 光學系統
  • 慣性系統或慣性測量單元(Inertial Measurement Unit,IMU)

光學系統由攝像機組組成,攝像機組包括鏡頭、快門和圖像傳感器等。慣性系統由加速度計和陀螺儀組成,其中加速度計用於測量加速度,陀螺儀測量方向。它們一起幫助設備確定它的位置(x,y,z)和方向(俯仰、偏航、滾轉),也就是六自由度(6-degrees-of-freedom,6DoF)姿勢。

六自由度的一般定義(來源)

當你移動智能手機去查看 AR 內容時,你的手機基本上是通過捕捉環境的許多照片,並進行比較以確定其位置。對於它捕捉到的每張照片,它還可以識別環境中視覺上獨特、有趣的關鍵特徵,例如場景中獨特對象的邊、角、脊。通過比較兩幅圖像及其各自的關鍵特徵,並利用手機慣性測量單元的傳感器數據,你的手機就可以通過立體計算來確定它的位置。這和我們的人眼如何推斷出深度非常類似。

通過一種稱爲“SIFT 尺度不變特徵轉換”(Scale-Invariant Feature Transform)的的穩健、精確的算法進行檢測與匹配](來源)

地圖創建是如何工作的?

當我在一座陌生城市迷路時,我要做的第一件事,就是打開 Google 地圖,四處尋找視覺上的線索(如地標、Starbucks 咖啡店、路標等)來找出我在地圖上的位置。

爲了讓你的手機瞭解它在空間的位置,它需要首先通過“環顧四周”來構建並記憶它周圍的地圖。這張機器可讀的地圖基本上是手機識別的所有有趣點的圖表,包括對它們的描述(如顏色和燈光等)。這些點或特徵一起形成了一個稀疏的點雲,看起來就像下面的 Gif 動圖:

生成用於定位和三維重建的稀疏點雲圖。(來源

當手機失去跟蹤時,這張地圖對於手機重新定位非常重要。如果你遮住攝像頭、放下手機或者移動手機過快並捕捉到模糊的圖像時,你的手機可能會失去跟蹤。當這些情況發生時,手機就需要重新定位。當手機再次看到場景並識別出場景的關鍵特徵時,重新定位過程即開始。然後,它將這些特徵與之前記憶的地圖上的特徵進行比較。當找到匹配時,它就能夠再次找到它在空間的位置。

什麼是 SLAM(同步定位與地圖創建)

爲了把所有的東西整合在一起,SLAM (Simultaneous Localization and Mapping,同步定位與地圖創建)指的是更爲廣泛的系統,它允許手機構建和更新未知環境的地圖,同時跟蹤其在地圖中的位置。SLAM 系統包括我們已經提到過的子系統,如手機的光學系統、慣性系統和地圖創建系統。通過軟硬件的緊密集成,手機現在擁有了這種難以置信的能力,可以瞭解它在世界上的位置,並在其環境中跟蹤自身。

爲什麼 GPS 不夠好?

GPS 能夠提供你在世界上的經緯度位置的粗略估計,但它並不夠準確,無法爲你提供準確的位置。此外,GPS 在地下室和室內環境中也不起作用,因爲衛星發出的信號在穿過固體物質時,會減弱或失真。

第二部分 計算機如何理解世界的樣子?(幾何學)

2016 年,當 Pokemon Go(精靈寶可夢 Go)第一次風靡全球時,我們被在現實世界中可以看到標誌性黃色毛茸茸怪物給迷住了。然而,我們很快意識到,Pikachu(皮卡丘)並不知道世界是什麼樣子的。令我們失望的是,Pikachu 只不過是一個由計算機生成的圖形,疊加在現實世界的畫面上罷了。

期望與現實。右圖的 Pikachu 對世界的樣子一無所知。(來源

將時間快進到 2019 年,在 6D.aiwww.6d.ai)軟件的幫助下,手機擁有了不可思議的能力:在空間上根據你的環境進行地圖創建(三維重建)。這意味着它可以理解場景中真實物體的形狀或結構,從而使遮擋和碰撞成爲可能。遮擋是虛擬對象隱藏在真實對象後面的能力。而碰撞是虛擬對象與現實對象發生碰撞的能力。當虛擬對象對現實世界做出物理反應,就好像它們是真實的一樣時,這使得 AR 體驗變得更加可信。

6D.ai 在手機三維重建領域中取得了巨大的技術進步。藉助這款軟件,手機上的單目 RGB 攝像頭得以擁有了深度傳感器的能力。它可以掃描環境並捕獲密集點雲,然後通過計算幾何將其轉換爲網格。

可以將網格想象成一張薄薄的隱形毯子,覆蓋在場景上,勾勒出物體的外部表面。當移動手機時,這個網格會實時更新,爲設備提供對物理環境的最準確的空間理解。有了這些新信息,虛擬 Pikachu 就可以跳到你的沙發上,鑽到桌子底下,跑到櫥櫃後面。

使用 6D.ai 軟件進行空間地圖創建,無需深度傳感器( 來源)

利用 ZED 的 3D 相機進行空間地圖創建(來源

在下面的演示中,我們使用了 6D.ai,可以快速生成物理環境的紋理化三維網格,並允許虛擬的外星植物在牆壁、地板和桌面上“生長”。

通過手機攝像頭,我們現在就可以進入一個與我們世界平行的另一個維度,就像《怪奇物語》(《Stranger Things》)裏的“逆世界”(The Upside Down)一樣。

Will 進入了“逆世界”,這是《怪奇物語》中的與我們世界平行的另一個維度。(來源

第三部分 計算機如何像我們一樣理解這個世界?(語義學)

前方高能!告訴我,你在下面的照片看到了什麼?

來源

有些人可能會說,看到了兩條狗和兩隻貓。還有些人可能會說看到兩條小狗和兩隻小貓。對那些真正優秀的人來說,會說發現兩條臘腸犬小狗和兩隻俄羅斯藍貓。

當計算機看到這幅圖像時,它們看到的只是一堆 1 和 0。但是通過卷積神經網絡(CNN)模型,可以訓練計算機來定位、檢測、分類和分割對象。在最簡單的層次上,卷積神經網絡是一個系統,它獲取如上圖所示的源圖像,通過一系列專門的層來計算出它在照片中看到的不同模式。每一層都有過濾器,經過訓練後可以識別特定的圖案,比如邊緣、形狀、紋理、角甚至是複雜的對象,比如狗、貓、人、騎車或停車標誌。

以 CNN 爲主幹,計算機現在可以執行其他計算機視覺任務,例如對象檢測和分類、語義分割和實例分割。

來源

對象檢測 + 分類

對象檢測與分類是圖像中對象周圍繪製邊界併爲其提供類別標籤(如狗、貓、人等)的過程。有兩種類型的算法需要考慮:

  1. 基於分類的算法分兩個階段進行。在第一步中,模型選擇一個感興趣的區域,然後嘗試使用 CNN 對這些區域進行分類。對每個選定區域進行預測,直到 CNN 模型確信它已檢測到它正在尋找的對象爲止。這是一種計算開銷很大的方法,因爲你實際上是在處理整個圖像來尋找一個對象。
  2. 基於迴歸的算法在算法的一次運行中預測整個圖像的類別和邊界框。這類算法最著名的例子是 YOLO(You only look once),它通常用於實時對象檢測。

YOLO 在運轉。最先進、超精確、強大而快速的實時對象檢測和分類。

語義分割

語義分割是這麼一個過程:在像素級別上識別和理解圖像中的內容。圖像的每個像素都與一個類別標籤相關聯,例如草、貓、樹和天空等。每個類別標籤也由唯一的顏色高亮顯示。

來源

但是,語義分割並不會以不同的方式來突出顯示類的各個實例。例如,如果照片有兩頭奶牛,它將會突出兩頭牛的集體區域,但我們卻無法區分這兩頭奶牛分別是哪頭。而這就是實例分割發揮作用的地方。

實例分割

實例分割實際上就是一種對象檢測和語義分割的組合方法。首先,模型將使用對象檢測在兩條狗的周圍繪製一個邊界框。然後在邊界框內執行語義分割,將實例分割出來。

來源

這個特殊的模型被稱爲 Mask R-CNN(基於掩模的區域卷積神經網絡),由 Facebook 人工智能研究團隊於 2017 年構建。

Mask R-CNN 能實時用於增強現實嗎?

簡短的回答是肯定的。但在質量和速度方面存在權衡。Niantic 使用類似的深度神經網絡來推斷周圍世界的三維信息,因此可以實現感知遮擋。在下面的演示中,很明顯,像人類這樣的動態對象是被實時分割和遮掩的,因此,Pikachu 和 Eevee 可以在它們後面跑動。

下面是如何應用實時實例分割的另外一個例子,讓你可以虛擬地嘗試新發色。

下面是情境感知和 AR 射擊遊戲的演示。神經網絡能夠識別場景中的不同對象及其材料(例如木材、玻璃、織物等)。因此,當虛擬子彈穿過每種材質時,會產生不同的動畫效果。比如,當子彈射穿布藝椅時,羽毛爆炸了。

所有這一切對增強現實的未來意味着什麼?

當計算機學會自我定位、像我們一樣觀察和理解這個世界時,我們就離虛擬世界和現實世界的融合又近了一步。

未來有一天,我們將創建一個機器可讀的、等比例的世界模型,稱爲“AR Cloud”(AR 雲)。AR Cloud 有許多可供選擇的名稱,如“世界的數字雙胞胎”、“鏡像世界”或“魔法世界”。就我個人而言,我更願意將它想象成一個完全覆蓋在現實世界之上的我們世界的數字複製品。

“AR Cloud 將成爲計算機歷史上最重要的軟件基礎設施,遠遠超過 Facebook 的社交圖譜或 Google 的搜索引擎。”

——Ori Inbar,Super Ventures

AR Cloud 不僅能夠讓每個人共享體驗,它的應用還能很好地擴展到自動駕駛汽車、物聯網、自動化、智能城市或自動導航送貨無人機。

不久的將來,我們將能夠編程情境感知的媒體應用程序與我們的現實世界進行交互。2015 年,Niantic 發佈了 Pokemon Go 的概念預告片,在預告片中,他們展示了數百人使用他們的 Pokemon 在時代廣場與 Mewtwo 作戰。隨着 AR Cloud、5G、人工智能和 AR 眼鏡等關鍵技術的成熟,這種體驗將有望成爲可能。

來源

JK Rowling 曾經說過:“我們不需要魔法來改變世界,我們已經擁有了我們內心所需要的所有力量,我們有能力更好地想象。”藉助增強現實技術,我們的世界變成了一幅畫布,我們可以用它來描繪出我們的想象。希望本文能夠激發你使用 AR 來進行實驗和創作!


英文原文:

https://medium.com/swlh/reality-check-the-marvel-of-computer-vision-technology-in-todays-camera-based-ar-systems-69b00947f954

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章