【導讀】最近Magic Leap和HoloLens很火。它們是什么?為什么這么火?什么時候能做成?還面臨哪些挑戰(zhàn)?Botao同學在知乎上談了不少3D感知部分,我來補充補充別的。
Magic Leap 和 HoloLens 是什么?
Magic Leap 和 HoloLens 都是 Augmented Reality (AR)眼鏡的代表。
AR 和 VR 眼鏡的區(qū)別是什么?
AR 眼鏡是透明的,讓你能同時看到現(xiàn)實世界,和疊加在上面的虛擬成像。應用例子:趕不上 Lady Gaga 的演唱會?沒關(guān)系,戴上眼鏡她就在你家里開一個。代表產(chǎn)品原型:Magic Leap 和微軟的 HoloLens。
VR 眼鏡是不透明的,只顯示虛擬世界,把物理世界完全擋住。應用例子:坐在家里也能去大溪地“潛水”。代表產(chǎn)品:三星的 Gear VR,谷歌 Cardboard,Oculus Rift。
Magic Leap 和 Microsoft 為什么要做 AR 眼鏡?
總的來說,這是計算機的必然發(fā)展趨勢。2007 年蘋果推出 iPhone 以來,手機發(fā)展太迅猛,用戶隨時隨地帶著它,各項使用數(shù)據(jù)毫無懸念地都在超越 PC 端。所以,人機交互界面的未來主要在于移動。但現(xiàn)在的手機局限在于:
(1)既然要便于攜帶屏幕就做得小,屏幕小了某些功能就得受限;
(2)顯示屏幕是平面也就是二維的,而真實世界是三維的。
未來的 AR 眼鏡有望實現(xiàn)大突破,就是既能讓用戶隨身攜帶,又能在他眼前顯示超大屏幕,還能把以假亂真的 3D 內(nèi)容渲染到他看到的真實世界里(想象你坐在教室里聽課,你的老師看起來真實無比,但其實就是在你的眼鏡上虛擬出來的)。這樣的眼鏡大概不會完全取代手機,但毫無疑問潛力無窮。
跟 VR 比較,AR 的應用場景也更廣闊(你總不能帶著 VR 頭盔大街上走吧)。本質(zhì)上,AR 是 VR 的超集,鏡片前面一擋就成了 VR(前提是視角能做到差不多大)。
戴眼鏡好麻煩,為什么不直接像《星球大戰(zhàn)》一樣在空氣中顯示全息圖(Hologram)?
Holography 是人類的美好愿景,有一天也許能做成,但近期看離實用還早?,F(xiàn)在有一些大學實驗室在研究裸眼光場顯示器(light field display),但需要很復雜笨重昂貴的設(shè)備,還只能在安裝了的地方用。相對而言,眼鏡的可行性要大得多。如果能做成輕便的 AR 眼鏡,將是移動人機交互界面上也是計算機發(fā)展的重大革新。
在 VR 頭盔上加個前視攝像頭不也就成 AR 了嗎?為什么非要透明的?
好問題。說起來 AR 有兩種,一種是前面所說的透明 AR(optical see-through)——現(xiàn)實世界是透過鏡片直接看到的。另一種就是“視頻疊加”(video see-through 或者 video overlay)——現(xiàn)實世界是通過攝像頭捕捉,然后以視頻的方式呈現(xiàn)給用戶(在上面再渲染一些東西)。事實上,現(xiàn)在手機和平板上已經(jīng)出現(xiàn)了很多 video overlay 的應用,比如看星空,求翻譯,選家具等。
那為什么不用 VR 頭盔加攝像頭實現(xiàn)這種 AR 呢?當然可以,現(xiàn)在很多 VR 頭盔都在試探這種做法。它和透明 AR 相比各有優(yōu)劣,比如優(yōu)勢在于用視頻實現(xiàn)的虛擬和現(xiàn)實的疊加(overlay)要比透明 AR 簡單得多,這也是為什么它已經(jīng)開始在移動端商用的原因。
但劣勢也可想而知,用戶看到的畢竟只是一個 2D 視頻,質(zhì)量跟眼睛直接看到的世界還是差很大的。而且視頻從采集到顯示總歸是有延遲的,如果跟體感信號不一致的話會造成身體不適。所以不管怎樣都還是會有公司前仆后繼地去做透明 AR 的,Magic Leap 和 Microsoft HoloLens 就是例子。
Magic Leap 為什么那么牛能融到 5.42 億?(最近的 C 輪在融 8億)
前面說的應用潛力無窮肯定是助力,同時還有技術(shù),創(chuàng)始人,團隊的原因。
Magic Leap 的核心技術(shù)是來自華盛頓大學前研究員 Brian Schowengerdt 的,他導師 Eric Seibel 是光纖掃描內(nèi)窺鏡(Scanning Fiber Endoscope)的專家。大家都知道內(nèi)窺鏡就是醫(yī)生們做手術(shù)時用來體內(nèi)成像的,本質(zhì)是個微小攝像頭。Brian 很聰明地逆轉(zhuǎn)光路把這個技術(shù)用到了顯示上,這樣通過極細的光纖用激光就可以打出彩色的圖像(如圖所示)。這個技術(shù)十幾年前就發(fā)表了,后來又不斷改進,生成了一堆專利。Magic Leap 很大程度上是基于 Brian 的這些專利。
那這種技術(shù)為什么重要呢?我們后面留成一個專門的問題講。
然而光有技術(shù)牛是不夠的,AR 眼鏡這種東西,要想做好可想而知是需要投入巨大的人力物力的,軟件硬件都得有重大突破。蘋果、微軟、谷歌這樣的公司可能有財力去做這個事,為什么會相信一個初創(chuàng)小企業(yè)能做成?我覺得猶太人創(chuàng)始人 Rony Abovitz 起的作用很大。Rony 之前是 MAKO Surgical 的聯(lián)合創(chuàng)始人。這家公司知道的人不多,但他們做的東西說出來就嚇人了——是做機器人手術(shù)(robotic surgery)的,主要是骨科手術(shù)精準定位。聽起來科幻超前吧,可是人 2004 年創(chuàng)建,2008 年就上市了,2013 年以 16.5 億美元賣給了 Stryker Medical。這種 track record 他拉不到投資誰能拉到。
除了創(chuàng)始人兼 CEO,團隊也不是蓋的,計算機視覺部分拉到了 Gary Bradski 和 Jean-Yves Bouguet 這樣的大牛。合作的 Weta Workshop 是在好萊塢給電影做特效的,《指環(huán)王》就是他們做的。所以 Magic Leap 當年用來拉投資用的概念視頻就像一個微型電影一樣。
現(xiàn)在該回到前面的問題了,為什么 Magic Leap 的光場顯示技術(shù)很重要?
首先,它是基于極細的光纖的,可以讓眼鏡做得輕薄。但更重要的是因為 Brian 證明了用這種技術(shù)不僅可以投射出一個 2D 圖片,還能顯示出一個光場(Light Field)。
現(xiàn)代的近視眼鏡為了實現(xiàn) 3D 有兩種主要的技術(shù):Stereoscopic(中文翻譯成“立體”,但其實不夠準確),和 Light Field(光場)。Stereoscopic 眼鏡早已商化(比如所有 3D 影院里用的,還有市面上幾乎所有 AR 和 VR 眼鏡/原型——包括 Microsoft HoloLens,Epson Moverio,Lumus DK-40, Facebook Oculus——都是 Stereoscopic)。而 Light Field 還只在實驗室里有雛形(Magic Leap 大概是做得最好的一個)。什么是 Stereoscopic 3D 呢?為什么它不夠好還要做 Light Field 呢?什么又是Light Field 呢?
Stereoscopic 3D 是假 3D
3D 圖像比 2D 圖片多了一個維度,這個維度就是景深(depth),看過 3D 電影和 2D 電影的同學知道感官上有明顯的區(qū)別(只有少數(shù)人有雙盲癥不能看到)。大家知道人眼感知景深有很多機制,包括單眼(monocular)和雙眼(binocular)的。
單眼能感知的景深信號很多,比如:一個東西遮擋了另一個(occlusion),熟悉的物體的大?。╮elative size/height),物體移動的變化(遠的物體變化慢近的物體變化快,即 motion parallax)。在此基礎(chǔ)上,雙眼的景深信號也非常強烈(所以遠古的我們能更好地判斷對面的老虎或者鹿到底離多遠)。兩只眼睛看到同一個場景會有細微差別,這讓大腦能通過三角計算(triangulation)來得到物體景深。
Stereoscopic 3D 就是利用這個原理給雙眼分別顯示不同的圖片(如下圖),它們很相似,只在水平方向上有細微差別。而這兩張圖片拍攝的時候,就是用兩個并排的相機模擬人眼的位置拍的,現(xiàn)在的 3D 電影都是基于這個原理。
但這樣的 Stereoscopic 3D 有什么問題呢?簡單講它會引起用戶身體不適如頭暈、惡心等。為什么呢?這又涉及到人眼的一個有意思的機制。當我們在看一個現(xiàn)實世界中的物體時,眼睛其實有兩種自然反應:
(1)聚焦(Accommodation/Focus)。眼睛的晶狀體就像一個凸透鏡,它會調(diào)節(jié)凸度來讓那個物體在咱們視網(wǎng)膜上清楚成像。
(2)“會聚”(Convergence)。在每只眼睛聚焦的同時,兩只眼球還會有旋轉(zhuǎn)運動來一起指向那個物體。
很自然地,這兩種反射運動在神經(jīng)上是聯(lián)接的(neurally coupled),也就是說任意一種運動會自動引發(fā)另一種運動。這也意味著,在人眼看真實物體的時候,聚焦和會聚的距離總是相等的(vergence distance = accommodation distance,參見下圖A)。
那么 Stereoscopic 3D 的問題就來了。因為 Stereoscopic 的投射距離總是固定的(也就是 accommodation distance 不變),而圖片的 disparity 會讓眼睛會聚在不同的距離(vergence distance)以產(chǎn)生景深 3D 效果(見下圖B)。所以,這兩種距離經(jīng)常是不一致的(vergence distance ≠ accommodation distance),會造成這兩種神經(jīng)相連的運動強行分離(neurally decoupled)。
從另一個角度講,在自然世界里,當人眼聚焦并會聚到一個物體時,別的距離的物體應該都是模糊的(下圖C)。而在Stereoscopic 3D 里,不管人眼聚焦到哪兒,別的距離的物體成像都是清楚的(下圖D)。
這些都不符合自然界人眼的規(guī)律,因此大腦會產(chǎn)生混亂,長時間就會引起惡心暈眩等癥狀。所以 Stereoscopic 其實是用了一個小伎倆讓人能看到 3D 效果,但它并不是真 3D。
光場(light field)是真3D
光場顯示跟 Stereoscopic 3D 比的一個很大不同就是它有本事能讓人眼聚焦到不同的距離,從而和會聚的距離保持一致。這是最符合人眼觀察自然世界規(guī)律的做法,因此被稱為 true-3D。
可以想象要實現(xiàn)這樣的光場顯示,并不是那么簡單?,F(xiàn)在主要是兩種方法:空間復用(space multiplexing)和時間復用(time multiplexing)。“空間復用”簡單說就是把一個像素當幾塊用來實現(xiàn)不同的聚焦距離。Nvidia 在 SIGGRAPH 上展示的那個原型就屬于這種。這個方法最大的問題就是分辨率大打折扣。我曾經(jīng)試戴過,基本就是霧里看花。
“時間復用”呢,就是用高速原件來快速產(chǎn)生不同的聚焦距離,讓人眼以為它們是同時產(chǎn)生的。這樣的好處就是分辨率不損失。大家知道人眼的速度感知是有限的,很多顯示器都是 60Hz 的,因為人眼能分辨的極限值一般就是 60Hz(在某些高速內(nèi)容比如游戲里可能達到 90-120Hz)。這意味著什么呢,如果利用高速顯示 360Hz,就可以實現(xiàn) 6 個不同的聚焦距離。而有研究表明用6 個聚焦距離加上一種線性混合(linear blending)的渲染算法就基本能實現(xiàn)從約 30 厘米到無窮遠讓人眼自然對焦。
Magic Leap 的技術(shù)是哪種呢?它最近 demo 用的哪種技術(shù)沒有公開,但很有可能還是基于 Brian 的高速激光光纖掃描(scanning fiber)技術(shù),也是一種時間復用的辦法。Brian 當年先試過只用一根光纖掃描不同聚焦距離,這樣做明顯對速度要求太高,后來用一個光纖束(fiber bundle/array),比如 16 根,每個光纖有一點位置差,然后同時掃描得到不同聚焦距離。
這樣的光場受現(xiàn)實系統(tǒng)的局限肯定不可能是連續(xù)的,都是被采樣的(downsampled)。但是,即使是這樣的光場投射到眼睛里也在理論上是跟真實世界物體光線進入眼睛是一個道理,因此可以實現(xiàn) true-3D?;氐阶畛醯膯栴},這也是為什么 Magic Leap 的技術(shù)重要的原因?,F(xiàn)在你也理解了為什么 Rony 說“ HoloLens 會讓人惡心”了吧?
透明 AR 眼鏡面臨哪些挑戰(zhàn)
1.顯示
首先能實現(xiàn)近眼光場顯示就很難,現(xiàn)在的公司除了 Magic Leap 還都是用古老的 Stereoscopic 3D 的方法,用戶戴長了就會眼困頭暈惡心。而 Magic Leap 所用的近眼顯示技術(shù)理論上成立,現(xiàn)實中也還有很多問題要解決。比如:
系統(tǒng)大?。?Magic Leap 現(xiàn)在還沒有公開過它的原型照片,據(jù)報道都還是像一個冰箱一樣大的,離可穿戴還有很長的路要走。
光場采樣:既然是采樣就一定有損失,比如對比度清晰度上,如何才能最優(yōu)采樣?
聚焦和會聚(Accommodation-vergence matching):即便聚焦距離對了,也要保證會聚距離始終與其保持一致。Magic Leap 現(xiàn)在的 demo 視頻還只是從單眼攝制的,還沒有證據(jù)表明他們很好地解決了雙眼問題。
室外顯示:現(xiàn)在大家的 demo 都是室內(nèi)的。當用戶在室外時,太陽光強度比顯示光高幾個數(shù)量級。至少鏡片需要有自動調(diào)光的技術(shù)。
捕捉內(nèi)容:雖然現(xiàn)在可以用計算機圖形來做demo,但以后的應用一定會需要相機采集的內(nèi)容,而光場的拍攝本身還有很多問題要解決。
散熱:是一個容易被忽視的問題。當年 Google Glass 出來的時候有人說用著用著臉就像要燒起來了。現(xiàn)在還沒有證據(jù)表明HoloLens 和 Magic Leap 的眼鏡能長時間保持涼爽。
2.鏡片
近眼顯示有兩個關(guān)鍵部件:顯示器和鏡片。現(xiàn)在大部分的 AR 眼鏡鏡片都是基于分光鏡(beamsplitter prism)的,比如 Google Glass,HoloLens,Epson Moverio。如圖左,簡單的分光鏡就是 45 度角,把顯示器產(chǎn)生的光從眼鏡框反射進人眼,也同時讓現(xiàn)實世界的光透進來。這樣做簡單便宜,但是鏡片厚。
一個以色列公司 Lumus 做出了一個光導(waveguide)技術(shù)讓鏡片變得很薄,可惜工藝復雜成本太高。后來也有一些便宜的光導產(chǎn)品出現(xiàn),但質(zhì)量還遠不如 Lumus。所以,鏡片也還有很長的路要走,不僅要做到視角(Field-of-View)大,還要輕薄,透光性好,在折射/反射顯示光的時候也要盡量保持光的屬性并做到盡量小的光損失。
3.視角(FoV)和分辨率(Resolution)
視角直接決定了用戶體驗?,F(xiàn)在的很多 AR 眼鏡視角還在 20°-40°之間,不少試戴了 HoloLens 的記者都對它的視角表示失望。而人眼的橫向視角雙眼差不多有 200°,縱向有 130°。視角大意味著總的分辨率也要很大才能覆蓋,8K*8K 才會比較理想。
4.遮擋(Occlusion)
前面說到過單眼的景深感知有一個很重要的信號就是物體之間的遮擋。在用透明 AR 眼鏡時,一個關(guān)鍵問題就是虛擬物體和現(xiàn)實物體之間的遮擋怎么實現(xiàn)。
如果是現(xiàn)實物體在前面,虛擬物體在后面,還相對比較好辦,就是要自動探測現(xiàn)實物體的距離,再計算出虛擬物體哪些部位需要遮擋從而不渲染。但是如果反過來,虛擬物體需要遮擋現(xiàn)實物體,就沒那么直接了,因為理論上需要把現(xiàn)實物體的光從眼鏡上選擇性地濾掉。從 Magic Leap 最近的 demo 看,在虛擬物體明亮時,它本身的亮度會自然遮擋后面的真實物體,但當虛擬物體比較暗時,還是有所謂的“鬼影效果”(ghost effect),不符合自然規(guī)律,又會讓大腦產(chǎn)生混亂。
如果想實現(xiàn)完全正確的遮擋效果,只能在鏡片上做實時的像素級的濾光機制(per-pixel shutter),但現(xiàn)在的技術(shù)都還不成熟。
5.渲染黑色
透明 AR 眼鏡現(xiàn)在還沒辦法渲染黑色。因為它說到底是虛擬光和自然光的疊加。如果畫黑色,用戶是看不到的,只會看到后面的背景真實物體的光。類似的暗色都有這個問題。
6.延遲
透明 AR 眼鏡還有一個很大的挑戰(zhàn)就是延遲。把虛擬物體疊加到真實物體上(比如放一個虛擬水杯到一個真實桌子上)涉及到一系列計算:探測真實物體→計算它的空間位置和方向→計算疊加位置→渲染虛擬物體等。
這一切都必須在一眨眼內(nèi)發(fā)生,讓用戶感覺不到延遲。比如在那個水杯例子里,我們的頭可能是一直在動的,隨著我們頭動,我們看到的那個水杯應該在桌上原來的位置不動才對。而如果系統(tǒng)延遲過大,我們看到的那個水杯的位置可能就總是不對,大腦就又混亂了。
這對透明 AR 挑戰(zhàn)尤其大,因為真實世界我們是直接看到的,幾乎沒有任何延遲,而虛擬物體的渲染得能跟上這個速度才顯得自然。在 video overlay 里,就沒有這個問題,因為我們看到的真實世界的視頻已經(jīng)是延遲的了,這樣在上面的物體疊加就比較容易跟它保持同步。
7.激光
Magic Leap 以前的技術(shù)專利是用激光直接打到人眼里,雖然據(jù)說很安全,但還沒有確切的科學證據(jù)。所以用戶接受度是個問題,很多人估計一聽到這個就望而卻步了。
說了這么多,下一代移動人機交互界面到底什么時候能做成呢?我個人感覺要做成人民群眾喜聞樂見的版本至少要 5 年時間,也許更長。因為以上列出的這些挑戰(zhàn),每一個都還需要很多努力才能解決。目前它們很多都還不到量變(只是需要優(yōu)化)的階段,而是需要大的質(zhì)的飛躍。所以,路漫漫其修遠兮。但既然這是計算機發(fā)展的必然方向,拭目以待吧。
關(guān)于作者:吳萬敏,浙江大學計算機專業(yè)本科,伊利諾伊大學香檳分校博士??蒲谐晒@雅虎重要科技挑戰(zhàn)獎、ACM多媒體會議2011最佳學生論文獎、ACM計算機領(lǐng)域2012最佳論文獎,SIGMM最佳博士論文獎(全球每年一篇)。畢業(yè)后到硅谷工作,曾任理光創(chuàng)新實驗室顧問研究科學家,現(xiàn)在谷歌工作。