最近看到國內網路上突然
Magic Leap的話題火了,並且跟著很多人無理由和根據的贊或黑Magic Leap。我在史丹佛計算機繫上學的時候,對Magic Leap很好奇,正好在學校能接觸到各路和Magic Leap相關的大神,所以在這方面做了些研究,我覺得可以分享點技術性乾貨,解釋一些原理,讓大家有點材料來贊或黑。
[embed]http://v.qq.com/iframe/player.html?vid=e01692zp2z0&tiny=0&auto=0[/embed]
目前Magic Leap只有一個公開影片是實際拍攝的,注意桌腿後的機器人和太陽系,本文只以這個影片的例子來做闡釋。
先說一下我關於Magic Leap的資訊來源:
1. 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的原理,並且在允許錄影的部分都有拍照記錄。本文大部分的乾貨來自這次演講。
2. 我今年年初上了 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
3. 今年參加了光場影像技術的研討會 Workshop on Light Field Imaging,現場有很多光場技術方面的展示,我和很多光場顯示技術的大牛交流了對Magic Leap的看法。特別的是,現場體驗了接近Magic Leap的光場技術Demo,來自Nvidia的Douglas Lanman的 Near-Eye Light Field Displays 。
Near-Eye Light Field Displays
4. 今年年中去了微軟研究院Redmond訪問,研究院的首席研究員Richard Szeliski (計算機視覺大神,計算機視覺課本的作者,Computer Vision: Algorithms and Applications)讓我們試用了Hololens。感受了Hololens牛逼無比的定位感知技術。有保密協議,本文不提供細節,但提供與Magic Leap原理性的比較。
下面是乾貨。
首先呢,科普一下 Magic Leap 和 Hololens 這類AR眼鏡裝置,都是為了讓你看到現實中不存在的物體和現實世界融合在一起的影像並與其互動。從技術上講,可以簡單的看成兩個部分:1. 對現實世界的感知 (Perception) 2. 一個頭戴式顯示器以呈現虛擬的影像 (Display) 。
我會分感知部分和顯示部分來分別闡釋Magic Leap的相關技術。
先簡單回答這個問題:
顯示部分
Q1. 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。
Q2. 主動選擇性聚焦有什麼好處?傳統的虛擬顯示技術中,為什麼你會頭暈?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給出的解決方案是很好的解決這個問題的。但都是理論上的,至於實際工程能力怎麼樣就靠時間來證明了。
Q3. 為什麼要有頭戴式顯示器?為什麼不能裸眼全息?Magic Leap是怎麼實現的?
人類希望能憑空看到一個虛擬物體,已經想了幾百年了。各種科幻電影裡也出現了很多在空氣中的全息影像。
但其實想想本質就知道,這事從物理上很難實現的:純空氣中沒有可以反射或折射光的介質。顯示東西最重要的是介質。很多微信上的瘋傳,以為Magic Leap不需要眼鏡,我估計是翻譯錯誤導致的,影片中寫了Shot directly through Magic Leap tech.,很多文章錯誤的翻譯成”直接看到”或”裸眼全息”,其實影片是相機透過Magic Leap的技術拍的。
目前全息基本還停留在全息膠片的時代(如下圖,我在光場研討會上看到的這個全息膠片的小佛像),或者初音未來演唱會那種用投影陣列向特殊玻璃(只顯示某一特定角度的影像,而忽略其他角度的光線)做的偽全息。
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的裝置可以很小,解析度可以很高。
他本人也來Stanford給過一個Talk,Near-to-Eye Volumetric 3D Displays using Scanned Light。這個Talk講的應該就是Magic Leap早期的原型。參考:
Fiber Scanned Displays
感知部分
Q4. 首先為什麼擴增實境要有感知部分?
是因為裝置需要知道自己在現實世界的位置(定位),和現實世界的三維結構(地圖構建),才能夠在顯示器中的正確位置擺放上虛擬物體。舉個最近的Magic Leap Demo影片的例子,比如桌子上有一個虛擬的太陽系,裝置佩戴者的頭移動得時候,太陽系還呆在原地,這就需要裝置實時的知道觀看者視角的精確位置和方向,才能反算出應該在什麼位置顯示影像。同時,可以看到桌面上還有太陽的反光,這就要做到裝置知道桌子的三維結構和表面資訊,才能正確的投射一個疊加影像在桌子的影像層上。難點是如何做到整個感知部分的實時計算,才能讓裝置穿戴者感覺不到延時。如果定位有延時,佩戴者會產生暈眩,並且虛擬物體在螢幕上漂移會顯得非常的虛假,所謂Magic Leap宣稱的電影級的真實(Cinematic Reality)就沒有意義了。
三維感知部分並不是什麼新東西,計算機視覺或機器人學中的SLAM(Simultaneous Localization And Mapping,即時定位與地圖構建)就是做這個的,已經有30年的歷史了。裝置透過各種感測器(鐳射雷達,光學攝像頭,深度攝像頭,慣性感測器)的融合將得出裝置自己在三位空間中的精確位置,同時又能將周圍的三位空間實時重建。
最近 SLAM 技術尤其火爆,去年到今年兩年時間內巨頭們和風投收購和佈局了超級多做空間定位技術的公司。因為目前最牛逼的3大科技技術趨勢:無人車,虛擬現實,無人機,他們都離不開空間定位。SLAM是完成這些偉大專案基礎中的基礎。我也研究SLAM技術,所以接觸的比較多,為了方便大家瞭解這個領域,這裡簡單提幾個SLAM界最近的大事件和人物:
- 1.(無人車)Stanford的機器人教授Sebastian Thrun是現代SLAM技術的開創者,自從贏了DARPA Grand Challenge的無人車大賽後,去了Google造無人車了。SLAM學術圈的大部分研究派系都是Sebastian徒子徒孫。
- 2.(無人車)Uber在今年拿下了卡耐基梅隆CMU的NREC(國家機器人工程研發中心),合作成立高等技術研發中心ATC。 這些原來做火星車的定位技術的研究人員都去Uber ATC做無人車了。
- 3.(虛擬現實)最近Surreal Vision被Oculus Rift收購,其中創始人Richard Newcombe是大名鼎鼎的DTAM,KinectFusion(HoloLens的核心技術)的發明人。Oculus Rift還在去年收購了13th Labs(在手機上做SLAM的公司)。
- 4.(虛擬現實)Google Project Tango 今年釋出世界上第一臺到手就用的商業化SLAM功能的平板。Apple五月收購Metaio AR,Metaio AR 的 SLAM 很早就用在了AR的app上了。Intel 釋出Real Sense,一個可以做SLAM的深度攝像頭,在CES上Demo了無人機自動壁障功能和自動巡線功能。
- 5.(無人機)由原來做Google X Project Wing 無人機的創始人MIT機器人大牛Nicholas Roy 的學生Adam Bry創辦的Skydio,得到A16z的兩千萬估值的投資,挖來了Georgia Tech的SLAM大牛教授Frank Dellaert 做他們的首席科學家。http://www.cc.gatech.edu/~dellaert/FrankDellaert/Frank_Dellaert/Frank_Dellaert.html
SLAM作為一種基礎技術,其實全世界做SLAM或感測器融合做的好的大牛可能不會多於100人,並且大都互相認識。這麼多大公司搶這麼點人,競爭激烈程度可想而知,所以Magic Leap作為一個創業公司一定要融個大資,才能和大公司搶人才資源。
Q5. Magic Leap的感知部分的技術是怎麼樣的?
這張照片是Gary教授在Magic Leap Stanford 招聘會中展示了Magic Leap在感知部分的技術架構和技術路線。可以看到以Calibration為中心,展開成了4支不同的計算機視覺技術棧。
- 從圖上看,整個Magic Leap感知部分的核心步驟是Calibration(影像或感測器校準),因為像Magic Leap或Hololens這類主動定位的裝置,在裝置上有各種用於定位的攝像頭和感測器, 攝像頭的引數和攝像頭之間關係引數的校準是開始一切工作的第一步。這步如果攝像頭和感測器引數都不準,後面的定位都是無稽之談。從事過計算機視覺技術的都知道,傳統的校驗部分相當花時間,需要用攝像頭拍攝Chess Board,一遍一遍的收集校驗用的資料。但Magic Leap的Gary,他們發明了一種新的Calibration方法,直接用一個形狀奇特的結構體做校正器,攝像頭看一遍就完成了校正,極為迅速。這個部分現場不讓拍照。
- 有了Calibration部分後,開始最重要的三維感知與定位部分(左下角的技術棧),分為4步。
- 2.1 首先是 Planar Surface Tracking (平面表面跟蹤)。大家可以在虛擬太陽系的Demo中看到虛擬太陽在桌子上有反光,且這個反光會隨著裝置佩戴者的移動而改變位置,就像是太陽真的懸在空中發出光源,在桌子表面反射產生的。這就要求裝置實時的知道桌子的表面在哪裡,並且算出虛擬太陽與平面的關係,才能將太陽的反光的位置算出來,疊在裝置佩戴者眼鏡相應的位子上,並且深度資訊也是正確的。難點在平面檢測的實時性和給出平面位置的平滑性(否則反光會有跳變)從Demo中可以看出Magic Leap在這步上完成的很好。
- 2.2 然後是 Sparse SLAM(稀疏SLAM); Gary在Info Session上展示了他們實時的三維重構與定位演算法。為了演算法的實時性,他們先實現了高速的稀疏或半稀疏的三維定位演算法。從效果上看,和目前開源的LSD 演算法差不了太多。
- 2.3 接著是 Sensors; Vision and IMU(視覺和慣性感測器融合 )。
導彈一般是用純慣性感測器做主動定位,但同樣的方法不能用於民用級的低精度慣性感測器,二次積分後一定會漂移。而光靠視覺做主動定位,視覺部分的處理速度不高,且容易被遮檔,定位魯棒性不高。將視覺和慣性感測器融合是最近幾年非常流行的做法。
舉例:
Google Tango在這方面就是做IMU和深度攝像頭的融合,做的很好;大疆的無人機Phantom 3或Inspire 1將光流單目相機和無人機內的慣性感測器融合,在無GPS的情況下,就能達到非常驚人的穩定懸停;Hololens可以說在SLAM方面是的做的相當好,專門定製了一個晶片做SLAM,演算法據說一脈相承了KinectFusion的核心,親自測試感覺定位效果很贊(我可以面對白色無特徵的牆壁站和跳,但回到場中心後定位還是很準確的,一點都不飄。)
- 2.4 最後是 3D Mapping and Dense SLAM (3D地圖重建 )。下圖展示了Magic Leap 山景城辦公室的3D地圖重建:僅僅是帶著裝置走了一圈,就還原了整個辦公室的3D地圖,並且有很精緻的貼圖。書架上的書都能重建的不變形。
因為AR的互動是全新的領域,為了讓人能夠順利的和虛擬世界互動,基於機器視覺的識別和跟蹤演算法成了重中之重。全新人機互動體驗部分需要大量的技術儲備做支援。
接下來的三個分支,Gary沒有細講,但是可以看出他們的佈局。我就隨便加點註解,幫助大家理解。
- 3.1 Crowdsourcing 眾包。用於收集資料,用於之後的機器學習工作,要構建一個合理的反饋學習機制,動態的增量式的收集資料。
- 3.2 Machine Learning & Deep Learning 機器學習與深度學習。需要搭建機器學習演算法架構,用於之後的識別演算法的生產。
- 3.3 Scenic Object Recognition 場景物體識別。識別場景中的物體,分辨物體的種類,和特徵,用於做出更好的互動。比如你看到一個小狗的時候,會識別出來,然後系統可以把狗狗p成個狗型怪獸,你就可以直接打怪了。
- 3.4 Behavior Recognition 行為識別 。識別場景中的人或物的行為,比如跑還是跳,走還是坐,可能用於更加動態的遊戲互動。順便提一下,國內有家Stanford校友辦的叫格林深瞳的公司也在做這個方面的研究。
跟蹤方面
- 4.1 Gesture Recognition 手勢識別。用於互動,其實每個AR/VR公司都在做這方面的技術儲備。
- 4.2 Object Tracking 物體追蹤。這個技術非常重要,比如Magic Leap的手捧大象的Demo,至少你要知道你的手的三維位置資訊,實時Tracking,才能把大象放到正確的位子。
- 4.3 3D Scanning 三維掃描。能夠將現實物體,虛擬化。比如你拿起一個藝術品,透過三維掃描,遠處的使用者就能夠在虛擬世界分享把玩同樣的物體。
- 4.4 Human Tracking 人體追蹤。比如:可以將現實中的每個人物,頭上可以加個血條,能力點之類。
- 5.1 Eye Tracking 眼動跟蹤。Gary解釋說,雖然Magic Leap的成像不需要眼動跟蹤,但因為要計算4維光場,Magic Leap的渲染計算量巨大。如果做了眼動跟蹤後,就可以減少3D引擎的物體渲染和場景渲染的壓力,是一個最佳化的絕佳策略。
- 5.2 Emotion Recognition 情感識別。如果Magic Leap要做一個 Her 電影中描繪的人工智慧作業系統,識別主人得情感,可以做出貼心的情感陪護效果。
- 5.3 Biometrics 生物識別。比如要識別現實場景中的人,在每個人頭上顯示個名字啥的。人臉識別是其中一種,國內有家清華姚班師兄弟們開得公司 Face 就是幹這個乾的最好的。
總結,簡單來講感知這個部分Magic Leap其實和很多其他的公司大同小異,雖然有了Gary的加盟,野心非常的寬廣,但這部分競爭非常激烈。
Q6: 就算Magic Leap已經搞定了感知和顯示,那麼接下來的困難是什麼?
-
計算裝置與計算量
Magic Leap要計算4維光場,計算量驚人。不知道Magic Leap現在是怎麼解決的。如果Nvidia不給造牛逼的移動顯示卡怎麼辦?難道自己造專用電路?揹著4塊泰坦X上路可不是鬧著玩的。
下圖是,今年我參加SIGGraph 2015裡,其中一個VR 演示,每個人揹著個大電腦包玩VR。10年後的人類看今天的人類追求VR會不會覺得很好笑,哈哈。
2. 電池!電池!電池! 所有電子裝置的痛。
3. 一個作業系統。
說實話,如果說“世界就是你的新桌面”是他們的願景,現在的確沒有什麼作業系統可以支援Magic Leap願景下的互動。他們必須自己發明輪子。
4. 為虛擬物體互動體驗增加物理感受。
為了能有觸感,現在互動手套,互動手柄都是 VR 界大熱的話題。從目前的專利上看,並沒有看出Magic Leap會有更高的見地。說不定某個Kickstarter最後能夠獨領風騷,Magic Leap再把他收了。
本文作者:胡伯濤 Botao Amber Hu,清華大學姚班本科,史丹佛計算機系研究生畢業,方向為計算攝影和人工智慧,目前從事以無人機和虛擬現實技術實現的計算攝影研究。光流科技CEO,CTO,C*O。曾在Google, Microsoft Research, Pinterest, Twitter 工作或實習過。
不錯,我在招人,簡歷發me@botao.hu 帶你搞計算攝影,飛行技術和浪天涯。
原文首發
知乎,機器之心經授權轉自
開源雜誌(公眾號openebook)。本文遵循
CC協議:BY-NC-ND 4.0(署名,非商業,傳播時不可修改)
[caption id="attachment_6328" align="aligncenter" width="129"]
掃碼可關注開源雜誌公眾號[/caption]