Magic Leap和Hololens技術上的異同點

最近看到國內網絡上突然Magic Leap的話題火瞭,並且跟著很多人無理由和根據的贊或黑Magic Leap。我在斯坦福計算機系上學的時候,對Magic Leap很好奇,正好在學校能接觸到各路和Magic Leap相關的大神,所以在這方面做瞭些研究,我覺得可以分享點技術性幹貨,解釋一些原理,讓大傢有點材料來贊或黑。

目前Magic Leap隻有一個公開視頻是實際拍攝的,註意桌腿後的機器人和太陽系,本文隻以這個視頻的例子來做闡釋。

先說一下我關於Magic Leap的信息來源:

2014年11月10日,Magic Leap在2014年9月融瞭5個億以後,來Stanford招人,開瞭一個Info Session,標題是”The World is Your New Desktop” (世界就是你的新桌面)多麼霸氣!當時是Magic Leap 感知研究的高級副總裁 (VP of Perception) Gary Bradski 和計算視覺的技術負責人 (Lead of Computer Vision) Jean-Yves Bouguet 來作演講。

Gary是計算機視覺領域的領軍人物,在柳樹車庫(Willow Garage)創造瞭OpenCV(計算機視覺工具庫),同時也是Stanford顧問教授。Jean-Yves原來在Google負責谷歌街景車(Street View Car)的制造,是計算視覺技術的大牛,他們加入Magic Leap是非常令人震驚的。



我參加瞭這次Info Session, 當時Gary來介紹Magic Leap在感知部分的技術和簡單介紹傳說中的數字光場Cinematic Reality的原理,並且在允許錄影的部分都有拍照記錄。本文大部分的幹貨來自這次演講。

我今年年初上瞭 Stanford 計算攝影和數字光場顯示的大牛教授Gordon Wetzstein的一門課:EE367 Computational Imaging and Display(計算影像和顯示器) :其中第四周的Computational illumination,Wearable displays 和 Displays Blocks(light field displays) 這三節都講到Magic Leap的原理。現在大傢也可以去這個課程網站上看到這些資料,EE367 / CS448I: Computational Imaging and Display

順便介紹一下 Gordon 所在的Stanford 計算圖形組,由Marc Levoy(後來跑去造Google Glass的大牛教授)一直致力於光場的研究,從Marc Levoy提出光場相機,到他的學生Ren Ng開創Lytro公司制造光場相機,到現在Gordon教授制造光場顯示器(裸眼光場3D顯示器),這個組在光場方面的研究一直是世界的領頭羊。而Magic Leap可能正在成為光場顯示器的最大應用。 Computational Imaging Research Overview

11.webp

今年參加瞭光場影像技術的研討會 Workshop on Light Field Imaging,現場有很多光場技術方面的展示,我和很多光場顯示技術的大牛交流瞭對Magic Leap的看法。特別的是,現場體驗瞭接近Magic Leap的光場技術Demo,來自Nvidia的Douglas Lanman的 Near-Eye Light Field Displays 。Near-Eye Light Field Displays

今年年中去瞭微軟研究院Redmond訪問,研究院的首席研究員Richard Szeliski (計算機視覺大神,計算機視覺課本的作者,Computer Vision: Algorithms and Applications)讓我們試用瞭Hololens。感受瞭Hololens牛逼無比的定位感知技術。有保密協議,本文不提供細節,但提供與Magic Leap原理性的比較。

下面是幹貨。

首先呢,科普一下 Magic Leap 和 Hololens 這類AR眼鏡設備,都是為瞭讓你看到現實中不存在的物體和現實世界融合在一起的圖像並與其交互。從技術上講,可以簡單的看成兩個部分:對現實世界的感知 (Perception) 和 一個頭戴式顯示器以呈現虛擬的影像 (Display) 。

我會分感知部分和顯示部分來分別闡釋Magic Leap的相關技術。

先簡單回答這個問題:

顯示部分

Hololens和Magic Leap有什麼區別?Magic Leap的本質原理是什麼?

感知部分其實Hololens和Magic Leap從技術方向上沒有太大的差異,都是空間感知定位技術。本文之後會著重介紹。Magic Leap 與 Hololens 最大的不同應該來自顯示部分,Magic Leap是用光纖向視網膜直接投射整個數字光場(Digital Lightfield)產生所謂的Cinematic Reality(電影級的現實)。Hololens采用一個半透玻璃,從側面DLP投影顯示,虛擬物體是總是實的,與市場上Espon的眼鏡顯示器或Google Glass方案類似,是個2維顯示器,視角還不大,40度左右,沉浸感會打折扣。

本質的物理原理是:光線在自由空間中的傳播,是可以由4維光場唯一表示的。成像平面每個像素中包含到這個像素所有方向的光的信息,對於成像平面來講方向是二維的,所以光場是4維的。平時成像過程隻是對四維光場進行瞭一個二維積分(每個像素上所有方向的光的信息都疊加到一個像素點上),傳統顯示器顯示這個2維的圖像,是有另2維方向信息損失的。而Magic Leap是向你的視網膜直接投射整個4維光場, 所以人們通過Magic Leap看到的物體和看真實的物體從數學上是沒有什麼區別的,是沒有信息損失的。理論上,使用Magic Leap的設備,你是無法區分虛擬物體和現實的物體的。

使用Magic Leap的設備,最明顯的區別於其他技術的效果是人眼可以直接選擇聚焦(主動選擇性聚焦)。比如我要看近的物體,近的物體就實,遠的就虛。註意這不需要任何的人眼跟蹤技術,因為投射的光場還原瞭所有信息,所以使用者直接可以做到人眼看哪實哪,和真實物體一樣。舉個例子:在虛擬太陽系視頻的27秒左右(如這個gif圖),攝影機失焦瞭,然後又對上瞭,這個過程隻發生在攝影機裡,和Magic Leap的設備無關。換句話說,虛擬物體就在那,怎麼看是觀察者自己的事。這就是Magic Leap牛逼的地方,所以Magic Leap管自己的效果叫Cinematic Reality。

1

主動選擇性聚焦有什麼好處?傳統的虛擬顯示技術中,為什麼你會頭暈?Magic Leap是怎麼解決這個問題的?

眾所周知,人類的眼睛感知深度主要是靠兩隻眼睛和被觀察物體做三角定位(雙目定位, triangulation cue)來感知被觀察物體的與觀察者的距離的。但三角定位並不是唯一的人類感知深度的線索,人腦還集成瞭另一個重要的深度感知線索:人眼對焦引起的物體銳度(虛實)變化(sharpness or focus cue) 。但傳統的雙目虛擬顯示技術(如Oculus Rift或Hololens) 中的物體是沒有虛實的。

舉個例子,如下圖,當你看到遠處的城堡的時候,近處的虛擬的貓就應該虛瞭,但傳統顯示技術中,貓還是實的,所以你的大腦就會引起錯亂,以為貓是很遠的很大的一個物體。但是這和你的雙目定位的結果又不一致,經過幾百萬年進化的大腦程序一會兒以為貓在近處,一會兒以為貓在遠處,來來回回你大腦就要燒瞭,於是你要吐瞭。而Magic Leap投影瞭整個光場,所以你可以主動選擇性聚焦,這個虛擬的貓就放在瞭近處,你看它的時候就是實的,你看城堡的時候,它就是虛的,和真實情況一樣,所以你不會暈。演講中Gary調侃對於Jean-Yves這種帶10分鐘Oculus就吐的傢夥來說,現在他一天帶16個小時Magic Leap都不會暈。誰用誰知道,巴紮嘿!

補充:有人問為什麼網上說虛擬現實頭暈是因為幀率不夠原因?

幀率和延時雖然是目前的主要問題,但都不是太大的問題,也不是導致暈得決定性因素。這些問題用更快的顯卡,好的IMU和好的屏幕,還有頭部動作預測算法都能很好解決。我們要關心一些本質的暈眩問題。

這裡要說到虛擬現實和增強現實的不同。

虛擬現實中,使用者是看不到現實世界的,頭暈往往是因為人類感知重力和加速度的耳垂體感受到的運動和視覺看到的運動不匹配導致的。所以虛擬現實的遊戲,往往會有暈車想吐的感覺。這個問題的解決不是靠單一設備可以搞定的,如果使用者的確坐在原定不動,如果圖像在高速移動,什麼裝置能騙過你的耳垂體呢?一些市場上的方案,比如Omni VR,或者HTC Vive這樣的帶Tracking的VR系統讓你實際行走才解決這個不匹配的問題,但這類系統是受場地限制的。

不過THE VOID的應用就很好的利用瞭VR的局限,不一定要跑跳,可以用很小的空間做很大的場景,讓你以為你在一個大場景裡就好瞭。現在大部分虛擬現實的體驗或全景電影都會以比較慢得速度移動視角,否則你就吐瞭。

但是Magic Leap是AR增強現實,因為本來就看的到現實世界,所以不存在這個耳垂體感知不匹配的問題。對於AR來講,主要挑戰是在解決眼前投影的物體和現實物體的銳度變化的問題。所以Magic Leap給出的解決方案是很好的解決這個問題的。但都是理論上的,至於實際工程能力怎麼樣就靠時間來證明瞭。

為什麼要有頭戴式顯示器?為什麼不能裸眼全息?Magic Leap是怎麼實現的?

人類希望能憑空看到一個虛擬物體,已經想瞭幾百年瞭。各種科幻電影裡也出現瞭很多在空氣中的全息影像。

但其實想想本質就知道,這事從物理上很難實現的:純空氣中沒有可以反射或折射光的介質。顯示東西最重要的是介質。很多微信上的瘋傳,以為Magic Leap不需要眼鏡,我估計是翻譯錯誤導致的,視頻中寫瞭Shot directly through Magic Leap tech.,很多文章錯誤的翻譯成”直接看到”或”裸眼全息”,其實視頻是相機透過Magic Leap的技術拍的。

目前全息基本還停留在全息膠片的時代(如下圖,我在光場研討會上看到的這個全息膠片的小佛像),或者初音未來演唱會那種用投影陣列向特殊玻璃(隻顯示某一特定角度的圖像,而忽略其他角度的光線)做的偽全息。

2

Magic Leap想實現的是把整個世界變成你的桌面這樣的願景。所以與其在世界各個地方造初音未來那樣的3D全息透明屏做介質或弄個全息膠片,還不如直接從人眼入手,直接在眼前投入整個光場更容易。其實Nvidia也在做這種光場眼鏡,

Nvidia采用的方法是在一個二維顯示器前加上一個微鏡頭陣列 Microlens array 來生成4維光場。相當於把2維的像素映射成4維,自然分辨率不會高,所以這類光場顯示器或相機(Lytro) 的分辨率都不會高。本人親測,效果基本就是在看馬賽克畫風的圖案。

而 Magic Leap 采用完全不同的一個方法實現光場顯示,它采用光纖投影。不過,Magic Leap用的光纖投影的方式也不是什麼新東西。在Magic Leap做光纖投影顯示( Fiber optic projector) 的人是Brian Schowengerdt ,他的導師是來自華盛頓大學的教授Eric Seibel,致力於做超高分辨率光纖內窺鏡8年瞭。

簡單原理就是光纖束在一個1mm直徑管道內高速旋轉,改變旋轉的方向,然後就可以掃描一個較大的范圍。Magic Leap的創始人比較聰明的地方,是找到這些做高分辨率光纖掃描儀的,由於光的可逆性,倒過來就能做一個高分辨率投影儀。如圖,他們6年前的論文,1mm寬9mm長的光纖就能投射幾寸大的高清蝴蝶圖像。現在的技術估計早就超過那個時候瞭。

而這樣的光纖高分辨率投影儀還不能還原光場,需要在光纖的另一端放上一個微鏡頭陣列microlens array,來生成4維光場。你會疑問這不就和Nvidia的方法一樣瞭麼?不,因為光纖束是掃描性的旋轉,這個microlens array不用做的很密很大,隻要顯示掃描到的區域就好瞭。相當與把大量數據在時間軸上分佈開瞭,和通訊中的分時一樣,因為人眼很難分辨100幀上的變化,隻要掃描幀率夠高,人眼就分辨不出顯示器是否旋轉顯示的。所以Magic Leap的設備可以很小,分辨率可以很高。

12.webp

他本人也來Stanford給過一個Talk,Near-to-Eye Volumetric 3D Displays using Scanned Light。這個Talk講的應該就是Magic Leap早期的原型。參考: Fiber Scanned Displays

感知部分

首先為什麼增強現實要有感知部分?

是因為設備需要知道自己在現實世界的位置(定位),和現實世界的三維結構(地圖構建),才能夠在顯示器中的正確位置擺放上虛擬物體。舉個最近的Magic Leap Demo視頻的例子,比如桌子上有一個虛擬的太陽系,設備佩戴者的頭移動得時候,太陽系還呆在原地,這就需要設備實時的知道觀看者視角的精確位置和方向,才能反算出應該在什麼位置顯示圖像。同時,可以看到桌面上還有太陽的反光,這就要做到設備知道桌子的三維結構和表面信息,才能正確的投射一個疊加影像在桌子的影像層上。

難點是如何做到整個感知部分的實時計算,才能讓設備穿戴者感覺不到延時。如果定位有延時,佩戴者會產生暈眩,並且虛擬物體在屏幕上漂移會顯得非常的虛假,所謂Magic Leap宣稱的電影級的真實(Cinematic Reality)就沒有意義瞭。

3

三維感知部分並不是什麼新東西,計算機視覺或機器人學中的SLAM(Simultaneous Localization And Mapping,即時定位與地圖構建)就是做這個的,已經有30年的歷史瞭。設備通過各種傳感器(激光雷達,光學攝像頭,深度攝像頭,慣性傳感器)的融合將得出設備自己在三位空間中的精確位置,同時又能將周圍的三位空間實時重建。

4

最近 SLAM 技術尤其火爆,去年到今年兩年時間內巨頭們和風投收購和佈局瞭超級多做空間定位技術的公司。因為目前最牛逼的3大科技技術趨勢:無人車,虛擬現實,無人機,他們都離不開空間定位。SLAM是完成這些偉大項目基礎中的基礎。我也研究SLAM技術,所以接觸的比較多,為瞭方便大傢瞭解這個領域,這裡簡單提幾個SLAM界最近的大事件和人物:

(無人車)Stanford的機器人教授Sebastian Thrun是現代SLAM技術的開創者,自從贏瞭DARPA Grand Challenge的無人車大賽後,去瞭Google造無人車瞭。SLAM學術圈的大部分研究派系都是Sebastian徒子徒孫。

(無人車)Uber在今年拿下瞭卡耐基梅隆CMU的NREC(國傢機器人工程研發中心),合作成立高等技術研發中心ATC。 這些原來做火星車的定位技術的研究人員都去Uber ATC做無人車瞭。

(虛擬現實)最近Surreal Vision被Oculus Rift收購,其中創始人Richard Newcombe是大名鼎鼎的DTAM,KinectFusion(HoloLens的核心技術)的發明人。Oculus Rift還在去年收購瞭13th Labs(在手機上做SLAM的公司)。

(虛擬現實)Google Project Tango 今年發佈世界上第一臺到手就用的商業化SLAM功能的平板。Apple五月收購Metaio AR,Metaio AR 的 SLAM 很早就用在瞭AR的app上瞭。Intel 發佈Real Sense,一個可以做SLAM的深度攝像頭,在CES上Demo瞭無人機自動壁障功能和自動巡線功能。

(無人機)由原來做Google X Project Wing 無人機的創始人MIT機器人大牛Nicholas Roy 的學生Adam Bry創辦的Skydio,得到A16z的兩千萬估值的投資,挖來瞭Georgia Tech的SLAM大牛教授Frank Dellaert 做他們的首席科學傢。

SLAM作為一種基礎技術,其實全世界做SLAM或傳感器融合做的好的大牛可能不會多於100人,並且大都互相認識。這麼多大公司搶這麼點人,競爭激烈程度可想而知,所以Magic Leap作為一個創業公司一定要融個大資,才能和大公司搶人才資源。

Magic Leap的感知部分的技術是怎麼樣的?

這張照片是Gary教授在Magic Leap Stanford 招聘會中展示瞭Magic Leap在感知部分的技術架構和技術路線。可以看到以Calibration為中心,展開成瞭4支不同的計算機視覺技術棧。

整個Magic Leap感知部分的核心步驟是Calibration(圖像或傳感器校準),因為像Magic Leap或Hololens這類主動定位的設備,在設備上有各種用於定位的攝像頭和傳感器, 攝像頭的參數和攝像頭之間關系參數的校準是開始一切工作的第一步。這步如果攝像頭和傳感器參數都不準,後面的定位都是無稽之談。從事過計算機視覺技術的都知道,傳統的校驗部分相當花時間,需要用攝像頭拍攝Chess Board,一遍一遍的收集校驗用的數據。但Magic Leap的Gary,他們發明瞭一種新的Calibration方法,直接用一個形狀奇特的結構體做校正器,攝像頭看一遍就完成瞭校正,極為迅速。這個部分現場不讓拍照。

有瞭Calibration部分後,開始最重要的三維感知與定位部分(左下角的技術棧),分為4步。

首先是 Planar Surface Tracking (平面表面跟蹤)。大傢可以在虛擬太陽系的Demo中看到虛擬太陽在桌子上有反光,且這個反光會隨著設備佩戴者的移動而改變位置,就像是太陽真的懸在空中發出光源,在桌子表面反射產生的。這就要求設備實時的知道桌子的表面在哪裡,並且算出虛擬太陽與平面的關系,才能將太陽的反光的位置算出來,疊在設備佩戴者眼鏡相應的位子上,並且深度信息也是正確的。難點在平面檢測的實時性和給出平面位置的平滑性(否則反光會有跳變)從Demo中可以看出Magic Leap在這步上完成的很好。

然後是 Sparse SLAM(稀疏SLAM); Gary在Info Session上展示瞭他們實時的三維重構與定位算法。為瞭算法的實時性,他們先實現瞭高速的稀疏或半稀疏的三維定位算法。從效果上看,和目前開源的LSD 算法差不瞭太多。

接著是 Sensors; Vision and IMU(視覺和慣性傳感器融合 )。

導彈一般是用純慣性傳感器做主動定位,但同樣的方法不能用於民用級的低精度慣性傳感器,二次積分後一定會漂移。而光靠視覺做主動定位,視覺部分的處理速度不高,且容易被遮檔,定位魯棒性不高。將視覺和慣性傳感器融合是最近幾年非常流行的做法。

舉例:

Google Tango在這方面就是做IMU和深度攝像頭的融合,做的很好;大疆的無人機Phantom 3或Inspire 1將光流單目相機和無人機內的慣性傳感器融合,在無GPS的情況下,就能達到非常驚人的穩定懸停;Hololens可以說在SLAM方面是的做的相當好,專門定制瞭一個芯片做SLAM,算法據說一脈相承瞭KinectFusion的核心,親自測試感覺定位效果很贊(我可以面對白色無特征的墻壁站和跳,但回到場中心後定位還是很準確的,一點都不飄。)

最後是 3D Mapping and Dense SLAM (3D地圖重建 )。僅僅是帶著設備走瞭一圈,就還原瞭整個辦公室的3D地圖,並且有很精致的貼圖。書架上的書都能重建的不變形。

因為AR的交互是全新的領域,為瞭讓人能夠順利的和虛擬世界交互,基於機器視覺的識別和跟蹤算法成瞭重中之重。全新人機交互體驗部分需要大量的技術儲備做支持。

接下來的三個分支,Gary沒有細講,但是可以看出他們的佈局。我就隨便加點註解,幫助大傢理解。

Crowdsourcing 眾包。用於收集數據,用於之後的機器學習工作,要構建一個合理的反饋學習機制,動態的增量式的收集數據。

Machine Learning & Deep Learning 機器學習與深度學習。需要搭建機器學習算法架構,用於之後的識別算法的生產。

Scenic Object Recognition 場景物體識別。識別場景中的物體,分辨物體的種類,和特征,用於做出更好的交互。比如你看到一個小狗的時候,會識別出來,然後系統可以把狗狗p成個狗型怪獸,你就可以直接打怪瞭。

Behavior Recognition 行為識別 。識別場景中的人或物的行為,比如跑還是跳,走還是坐,可能用於更加動態的遊戲交互。順便提一下,國內有傢Stanford校友辦的叫格林深瞳的公司也在做這個方面的研究。

跟蹤方面

Gesture Recognition 手勢識別。用於交互,其實每個AR/VR公司都在做這方面的技術儲備。

Object Tracking 物體追蹤。這個技術非常重要,比如Magic Leap的手捧大象的Demo,至少你要知道你的手的三維位置信息,實時Tracking,才能把大象放到正確的位子。

3D Scanning 三維掃描。能夠將現實物體,虛擬化。比如你拿起一個藝術品,通過三維掃描,遠處的用戶就能夠在虛擬世界分享把玩同樣的物體。

Human Tracking 人體追蹤。比如:可以將現實中的每個人物,頭上可以加個血條,能力點之類。

Eye Tracking 眼動跟蹤。Gary解釋說,雖然Magic Leap的成像不需要眼動跟蹤,但因為要計算4維光場,Magic Leap的渲染計算量巨大。如果做瞭眼動跟蹤後,就可以減少3D引擎的物體渲染和場景渲染的壓力,是一個優化的絕佳策略。

Emotion Recognition 情感識別。如果Magic Leap要做一個 Her 電影中描繪的人工智能操作系統,識別主人得情感,可以做出貼心的情感陪護效果。

Biometrics 生物識別。比如要識別現實場景中的人,在每個人頭上顯示個名字啥的。人臉識別是其中一種,國內有傢清華姚班師兄弟們開得公司 Face 就是幹這個幹的最好的。

總結,簡單來講感知這個部分Magic Leap其實和很多其他的公司大同小異,雖然有瞭Gary的加盟,野心非常的寬廣,但這部分競爭非常激烈。

就算Magic Leap已經搞定瞭感知和顯示,那麼接下來的困難是什麼?

計算設備與計算量

Magic Leap要計算4維光場,計算量驚人。不知道Magic Leap現在是怎麼解決的。如果Nvidia不給造牛逼的移動顯卡怎麼辦?難道自己造專用電路?背著4塊泰坦X上路可不是鬧著玩的。

一個操作系統。

說實話,如果說“世界就是你的新桌面”是他們的願景,現在的確沒有什麼操作系統可以支持Magic Leap願景下的交互。他們必須自己發明輪子。

為虛擬物體交互體驗增加物理感受。

為瞭能有觸感,現在交互手套,交互手柄都是 VR 界大熱的話題。從目前的專利上看,並沒有看出Magic Leap會有更高的見地。說不定某個Kickstarter最後能夠獨領風騷,Magic Leap再把他收瞭。

本文作者:胡伯濤 Botao Amber Hu,清華大學姚班本科,斯坦福計算機系研究生畢業,方向為計算攝影和人工智能,目前從事以無人機和虛擬現實技術實現的計算攝影研究。光流科技CEO,CTO,C*O。曾在Google, Microsoft Research, Pinterest, Twitter 工作或實習過。

from:輕客

Comments are closed.