VR和AR經(jīng)過多年發(fā)展,現(xiàn)今也算小有所成,給很多人帶來了全新的體驗。然而,對比那些科幻電影,總覺得它們還差很多東西。沒錯,電影里那些炫酷的虛擬世界場景,都需要一個不可或缺但門檻又非常高的技術(shù)來支撐,那就是位置追蹤。這個問題不解決,VR、AR就永遠(yuǎn)只能是一種宅男科技。
《頭號玩家》電影相信很多人都看過,片中的場景應(yīng)該算是VR的終極形態(tài)了。但是要達(dá)成這樣的體驗,必須要解決一個問題:如何定位玩家的空間位置?也就是所謂的位置追蹤怎么實現(xiàn)。對于AR而言,這個問題還不算很尖銳,因為它是基于現(xiàn)實世界的圖像增強(qiáng)。但全沉浸式的VR就不同了,玩家看不到周圍的真實環(huán)境,展現(xiàn)在玩家周圍的完全是個虛擬世界,這個虛擬世界又必須把真實環(huán)境里的各種障礙以及玩家的空間位置準(zhǔn)確反映出來,才能讓人暢玩。
定位空間位置這個概念很好理解。但為了接下來便于闡述各種定位技術(shù),我們還是要從學(xué)術(shù)的角度來說明一下。我們生活在三維世界中,稍微學(xué)過幾何的人都知道一旦確定了任何物體的X、Y、Z坐標(biāo),就能準(zhǔn)確知道它的位置。VR行業(yè)將這種定位坐標(biāo)稱為Dof(自由度,Degree Of Freedom),由3個坐標(biāo)描述的位置信息即3Dof。但是,這樣只能定位到一個體積忽略不計的“點”,而現(xiàn)實世界任何物體都有體積,僅靠3Dof描述三維空間物體的位置是遠(yuǎn)遠(yuǎn)不夠的,于是便有了“位姿”。
是的我沒有打錯字,位姿是指物體在三維空間里的位置和旋轉(zhuǎn)量。位姿需要6Dof來描述,通俗地講就是在3Dof的基礎(chǔ)上,加入三個角度參數(shù),也就是讓物體還能繞三個軸轉(zhuǎn)動,構(gòu)成六軸定位。很多人第一次聽到這個詞,應(yīng)該都是因為Wii和PS3的手柄。在虛擬世界中,只有6Dof才能準(zhǔn)確定位物體。
▲由3Dof和6Dof描述的角色動作,6Dof的定位更加準(zhǔn)確。
電影和游戲制作中經(jīng)常用到動作捕捉技術(shù),其實就是在追蹤貼在人體關(guān)節(jié)上的標(biāo)記點的6Dof。多個標(biāo)記點根據(jù)人體動作規(guī)律連接起來就能模擬出人的動作。實際應(yīng)用中一般只能捕捉較大關(guān)節(jié)的位置信息。要想精準(zhǔn)捕捉每塊骨骼、每塊肌肉的位置是很難的。有了動作捕捉,才能在虛擬世界中呈現(xiàn)人物的準(zhǔn)確形態(tài)。
▲動作捕捉在電影和游戲制作中都是關(guān)鍵技術(shù),今后有望在AR/VR中扮演同樣角色。
目前,位置追蹤技術(shù)主要有兩大門派:依靠各種外部設(shè)備來定位的“外向內(nèi)追蹤技術(shù)”(Outside-inTracking),和不需要任何外部設(shè)備的 “內(nèi)向外追蹤技術(shù)”(Inside-outTracking)。
外向內(nèi)追蹤技術(shù)
外向內(nèi)追蹤技術(shù)是當(dāng)前相對比較成熟的主流技術(shù),它的實現(xiàn)方法也有很多:光學(xué)追蹤、電磁追蹤、慣性追蹤、超寬帶(Ultra Wide-Band,UWB)追蹤等等。這其中,光學(xué)追蹤是比較常見的方案。光學(xué)追蹤需要一個標(biāo)記點和負(fù)責(zé)捕捉這個標(biāo)記點的相機(jī),這其中根據(jù)相機(jī)和標(biāo)記點的數(shù)量、相機(jī)曝光方式、標(biāo)記點是否有源等,又分成了好幾個流派。PS MOVE用的是單相機(jī)單標(biāo)記點;PS VR、Oculus、HTC Vive是多相機(jī)多標(biāo)記點。
單標(biāo)記點方案只能捕捉3Dof信息,因為對于一個點而言,它怎么旋轉(zhuǎn)都還是一個點。多標(biāo)記點方案才能記錄到6Dof位姿信息。
以O(shè)culus Rift為例,它利用多個紅外LED作為標(biāo)記點,通過兩臺已校準(zhǔn)空間位置的紅外相機(jī)實時拍攝獲取標(biāo)記點方向,再通過PnP算法,即利用四個不共面的紅外LED的位置信息、四個點獲得的圖像信息計算出設(shè)備在紅外相機(jī)坐標(biāo)系里的位置,進(jìn)一步擬合出設(shè)備的三維模型,最終得到玩家的位置和方向。
▲設(shè)置Oculus Rift紅外相機(jī)的位置參數(shù)是很重要的。
HTC Vive采用了激光掃描方案。它有兩個Steam激光發(fā)射器,分別在水平和垂直方向上以每秒6次的頻率發(fā)射激光掃描定位空間。頭戴顯示器和手柄上有數(shù)十個光敏傳感器,設(shè)備通過測量傳感器接收到激光的時間差來計算傳感器相對于激光發(fā)射器的位置。有多個傳感器的位置就能擬合出設(shè)備的位置和方向。相對于紅外定位技術(shù)而言,激光掃描定位具有成本低、定位精度高、可分布式處理等優(yōu)勢,且?guī)缀鯖]有延遲,不怕遮擋和干擾。
▲HTC Vive的“Lighthouse”,由兩個steam激光發(fā)射器進(jìn)行定位。
當(dāng)然上面的話說起來簡單,但實際上不論Oculus Rift還是HTC Vive,它們的定位計算過程都十分復(fù)雜,對于圖像處理設(shè)備的要求也很高。但橫向比較的話,激光掃描定位效果要優(yōu)于紅外追蹤定位,運算量也相對較少一點。
現(xiàn)在我們可以看到,上面提到的這些定位方式有著很大的局限性:必須校準(zhǔn)相機(jī)空間位置,意味著換個環(huán)境就得重新調(diào)試;必須通過線纜連接外部主機(jī)(即圖像處理設(shè)備),意味著使用者不能做很大的動作;必須在相機(jī)拍攝范圍內(nèi)活動,這一點最不能讓人容忍。除非腳下有一個萬向傳送帶之類的玩意兒,能保證使用者無論往任何方向奔跑,在現(xiàn)實世界中都不會離開原地,就像跑步機(jī)那樣。然而現(xiàn)實中并沒有這樣的東西。
所以需要在定位技術(shù)上做文章。這就得聊聊微軟的黑科技HoloLens了。
內(nèi)向外追蹤技術(shù)
HoloLens是一款頭戴式AR顯示設(shè)備,它的價格和技術(shù)都讓業(yè)界驚嘆。技術(shù)層面上,它采用了不需要任何外界傳感器的“內(nèi)向外追蹤技術(shù)”。既然不需要外界傳感器,就不需要外部硬件搭建、標(biāo)記,也不受傳感器監(jiān)測范圍限制,也就有了更多樣的移動性和更高的自由度。
內(nèi)向外追蹤也是一種光學(xué)追蹤方案。在頭戴設(shè)備上安裝攝像頭,讓設(shè)備自己檢測外部環(huán)境變化,經(jīng)過視覺算法計算出攝像頭的空間位置。HoloLens有一個深度攝像頭,一個200萬像素的圖像攝像頭,以及4個環(huán)境感知攝像頭。它通過采集環(huán)境中的特征點,利用SLAM(即時定位與地圖構(gòu)建)算法獲得空間位置信息。
▲HoloLens的玻璃罩子下集成了現(xiàn)今比較前沿的定位技術(shù)。
所謂SLAM算法,是通過傳感器獲取環(huán)境信息,包括視覺信息、深度信息、自身加速度、角速度等來確定自己的位置,并完成環(huán)境地圖的構(gòu)建。SLAM有幾個很典型的應(yīng)用場景:一是電影《普羅米修斯》中的探測球,自動飛行自動掃描,分分鐘建立環(huán)境的3D地圖并且還能全息呈現(xiàn)出來。現(xiàn)實的科技當(dāng)然達(dá)不到這一步,但谷歌、蘋果等的無人車、米家掃地機(jī)器人等,都是通過SLAM算法進(jìn)行實時環(huán)境分析的。谷歌的ProjectTango項目,也是利用該算法,讓手機(jī)實時繪制周圍環(huán)境的3D模型。可以說,SLAM是內(nèi)向外追蹤的核心內(nèi)容。
▲電影《普羅米修斯》中的環(huán)境探測球,算是SLAM的頂級表現(xiàn)了。
同樣地,內(nèi)向外追蹤也有多相機(jī)和單相機(jī)的方案,它們各有千秋。多相機(jī)方案通過多個攝像頭采集外部空間的特征點,通過三角定位計算出特征點的空間數(shù)據(jù)。優(yōu)點在于場景兼容性強(qiáng),不需要太多的特征點就能定位。缺點就是圖像處理運算量非常大而且成本很高,HoloLens內(nèi)置的處理芯片成本就高達(dá)數(shù)百美元。
單相機(jī)方案利用攝像頭與外部的環(huán)境的任意兩個特征點形成三角定位,繼而計算出空間位置。優(yōu)點在于圖像處理計算量較小,成本也較低,但需要在環(huán)境中標(biāo)記大量的特征點,占用太多空間。意味著該方案需要足夠的空間來采集特征點,才能實現(xiàn)定位功能。
采集特征點只是其中一個方面。其實HoloLens所實現(xiàn)的效果是一個非常復(fù)雜的工程。它相當(dāng)于將Oculus、Kinect全部集成到用戶腦袋上。除了SLAM之外,還需要實時的3D繪制能力。實時3D在今天的游戲中早已不叫事兒,但要讓一款移動設(shè)備能畫出以假亂真的3D背景也并不容易。當(dāng)然,在英偉達(dá)、英特爾等的推動下,雙攝像頭實時渲染已經(jīng)很成熟了。
顯而易見,這類內(nèi)向外追蹤設(shè)備面臨的挑戰(zhàn)也很大。首先,沒有外部圖像計算設(shè)備的輔助,對于頭戴設(shè)備的計算能力要求就更高。持續(xù)不斷地SLAM再進(jìn)行3D合成虛擬空間的計算量十分龐大,并且非常耗電。HoloLens基于AR而不是VR,呈現(xiàn)的虛擬物品也并不復(fù)雜,3D計算量頓時少了幾個數(shù)量級,所以產(chǎn)品整體的電量主要耗在SLAM上。
官方宣稱的續(xù)航時間為2.5~5.5小時,其實已經(jīng)超出我們的預(yù)期,原本以為這些酷炫的功能能撐一兩個小時就不錯了。但HoloLens的效果并非終點,當(dāng)需要呈現(xiàn)全3D虛擬空間的時候,電池將會是一大軟肋,今后可能需要考慮推出背包式電池才能解決。
其次,開放環(huán)境、暗光環(huán)境、光滑表面的識別問題,由于沒有實體產(chǎn)品測試,不好做出結(jié)論。但結(jié)合Kinect的表現(xiàn),可以猜測這一點并不會解決得很完美。
誰家的孩子有前途
目前,除了微軟之外,Oculus、Google,以及國內(nèi)一些實力廠家都在布局內(nèi)向外追蹤技術(shù)。Oculus公布了正在開發(fā)的VR一體機(jī)產(chǎn)品Santa Cruz,Google則推出了Tango系統(tǒng),能讓手機(jī)通過攝像頭實時生成周圍環(huán)境的3D模型。
▲Tango系統(tǒng)演示,“雖然目前可能沒什么用但看起來很厲害的樣子”。
我們以前曾經(jīng)說過,AR/VR一體機(jī)才是這類硬件的最終形態(tài),而能將一體機(jī)和內(nèi)向外追蹤技術(shù)結(jié)合起來,才能做出AR/VR的終極體驗。內(nèi)向外追蹤技術(shù)是一場革命。“外向內(nèi)”到“內(nèi)向外”的進(jìn)化,如同互聯(lián)網(wǎng)從PC端到移動端的變革,讓人擺脫了空間上的限制。只有能實現(xiàn)最自然的人體動作,才是最好的人機(jī)交互。

AR絕不是只限于玩玩《Pokémon Go》。試想一下,醫(yī)院做手術(shù)時,醫(yī)生能看到實時顯示出來的病灶情況;設(shè)計師在設(shè)計建筑時,能實時檢查建筑的內(nèi)外結(jié)構(gòu);甚至孩子們可以通過AR玩遍全世界的玩具……這樣的前景,想想就讓人期待。
▲這樣來設(shè)計建筑應(yīng)該是每個建筑設(shè)計師都夢寐以求的。
而VR的終極體驗,就是電影《頭號玩家》里的“綠洲”。當(dāng)然電影里還有一個體感衣的設(shè)定,但那不是我們這次要講的東西,在電影里我們也能看到本文所講的這些定位方式。主角韋德和IOI的雜兵用的是外向內(nèi)追蹤技術(shù),觀眾能看到他們后面還有定位設(shè)備;而路人甲乙丙丁用的是外向內(nèi)追蹤技術(shù),觀眾能看到他們不受限制地自由奔跑。
▲電影《阿凡達(dá)》里,全息投影+觸控這樣的操作過于科幻了,但如果基于頭戴式AR,實現(xiàn)起來難度就小多了。
寫到這里,我突然感覺到不寒而栗。《頭號玩家》電影中所描繪的情節(jié)絕不是聳人聽聞的,一個完美的虛擬世界恐怕將會成為人類的精神鴉片。但是,就算是虛擬世界的王者,也是需要吃喝拉撒的,而這些是無法在虛擬世界完成的。畢竟,現(xiàn)實才是生存的基礎(chǔ),而現(xiàn)實也有很多的美好。