虛擬現(xiàn)實(shí)要實(shí)現(xiàn)空間精準(zhǔn)定位的七種利器
現(xiàn)有的VR體驗(yàn)館的構(gòu)建卻還缺少了最重要的一環(huán),就是廉價(jià)而靈活準(zhǔn)確的定位方案。本文將據(jù)此闡述一些已有方案的優(yōu)劣。本文分上下篇。
缺失的一環(huán)
虛擬現(xiàn)實(shí)刮起的風(fēng)暴如今已經(jīng)愈演愈烈,從形形色色的頭盔和眼鏡,到各種奇思妙想的交互設(shè)備,再到內(nèi)容制作和建立體驗(yàn)館的嘗試。越來越多的VR相關(guān)從業(yè)者和創(chuàng)業(yè)者都將The Void,Zero Latency等前輩作為自己下一步趕超的目標(biāo),發(fā)出了開發(fā)VR主題公園,或者VR主題體驗(yàn)解決方案的宣言。
然而,從宏觀的角度來看,整個(gè)行業(yè)也并非發(fā)展的一帆風(fēng)順:VR頭盔和眼鏡的水準(zhǔn)參差不齊,主流產(chǎn)品(例如OculusVR和HTC Vive)尚未完全展開消費(fèi)者市場(chǎng);VR對(duì)系統(tǒng)配置的要求很高,相關(guān)設(shè)備隨身穿戴不易,而移動(dòng)端設(shè)備的渲染則多半力有不逮;而針對(duì)體驗(yàn)館的交互內(nèi)容如何制作,互動(dòng)方式如何設(shè)計(jì),也有諸多不甚明朗的地方。而除此之外,VR體驗(yàn)館的構(gòu)建卻還缺少了最重要的一環(huán),就是廉價(jià)而靈活準(zhǔn)確的定位方案。
這里所說的定位,就是確定體驗(yàn)館中的參與者在場(chǎng)館中的絕對(duì)空間位置,并反饋到所有參與游戲的玩家和游戲服務(wù)器上,進(jìn)而執(zhí)行群體游戲所必需的各種游戲邏輯。
例如,當(dāng)一位玩家靠近樹林的邊緣時(shí),一頭蓄謀已久的餓狼會(huì)猛然撲出來;又比如多位玩家展開一場(chǎng)虛擬現(xiàn)實(shí)的真人CS大賽,互相射擊與開展戰(zhàn)術(shù)。如果玩家在游戲場(chǎng)地內(nèi)的位置無法得到有效識(shí)別,那么相應(yīng)的樂趣和復(fù)雜度自然也就少了很多,也許只是來一場(chǎng)第一人稱的定點(diǎn)射擊游戲而已。而定位的精度和速度也絕對(duì)不容忽視,20cm的誤差也許就決定了射出的子彈是否能穿透虛擬敵人的胸膛,而定位本身帶來的延遲,同樣也會(huì)給虛擬現(xiàn)實(shí)玩家的現(xiàn)場(chǎng)感帶來巨大的影響,甚至成為3D暈動(dòng)癥的幫兇。
然而,縱觀現(xiàn)在市面上形形色色的VR空間定位方案,卻并沒有哪家能夠提供足夠成熟穩(wěn)定的技術(shù)實(shí)現(xiàn),亦或者用巨大的成本以及靈活度的喪失作為代價(jià),構(gòu)建并不成功的Demo作品。這樣的程度恐怕還遠(yuǎn)遠(yuǎn)不能稱之為解決方案,也遠(yuǎn)遠(yuǎn)無法滿足眾多體驗(yàn)館從業(yè)者的胃口。那么,好的定位方案應(yīng)當(dāng)以怎樣的標(biāo)準(zhǔn)作為自己的目標(biāo)?整個(gè)行業(yè)缺失的救世主又是否已經(jīng)到來呢?本文將嘗試對(duì)此略加闡述。
(一)體感攝像頭
去年底,日本新宿的繁華地段進(jìn)行了一次為期只有一天的VR體驗(yàn),通過頭戴Gear VR顯示一個(gè)虛擬雪山場(chǎng)景,同時(shí)搭建了實(shí)體的吊橋道具,并通過風(fēng)扇和冷空調(diào)來模擬寒冷的山巔環(huán)境。體驗(yàn)者在吊橋上戰(zhàn)戰(zhàn)兢兢地前進(jìn),最終在場(chǎng)地的終點(diǎn)位置拿到屬于自己的獎(jiǎng)品——來自經(jīng)銷商的一杯熱飲。
這個(gè)體驗(yàn)游戲的復(fù)雜度并不高,收效卻十分顯著。而其中不可或缺的一環(huán)就是判斷玩家在吊橋上行走的位置,然后對(duì)Gear VR中渲染的場(chǎng)景做出對(duì)應(yīng)的處理。而在同一個(gè)宣傳視頻中,我們不難發(fā)現(xiàn)這樣一絲端倪:
很顯然這是一臺(tái)微軟的Kinect2體感設(shè)備,它可以通過TOF(飛行時(shí)間)計(jì)算的方法,獲取傳感器出射光線遇到物體反射后的相位差,從而得到設(shè)備與實(shí)際場(chǎng)景之間的距離值,也就是深度值(depth)。由此形成的深度圖像不僅可以用來判斷物體相對(duì)體感設(shè)備的位置,還可以進(jìn)一步得到物體的點(diǎn)云數(shù)據(jù),甚至是角色的骨骼信息。最重要的是,Kinect2本身只是XBox One游戲機(jī)的可選外設(shè),因此要買到它并且用來做VR內(nèi)容的簡(jiǎn)單空間定位,絕不會(huì)花費(fèi)太多的成本。
不過,物美價(jià)廉的對(duì)立面就是差強(qiáng)人意的性能參數(shù),30fps的刷新頻率必然讓人能夠比較明顯地感受到定位結(jié)果的延遲(雖然這種延遲相比頭盔的延遲來說,給人的影響更小),并且Kinect的視場(chǎng)角只有60度左右,最大識(shí)別范圍一般來說為3-4米。在這個(gè)區(qū)域內(nèi)可以識(shí)別最多6個(gè)人的位置信息,并且他們?cè)贙inect的視場(chǎng)范圍內(nèi)不能有太多的重疊,以免漏測(cè)(如上圖所示)。顯然,這些苛刻的限制條件讓我們很難想象出一個(gè)比爬雪山喝咖啡更復(fù)雜的游戲了,不過至少這是一個(gè)不錯(cuò)的開始。
(二)光學(xué)定位與圖像識(shí)別
有一則去年的新聞,在大多數(shù)VR從業(yè)者耳中應(yīng)該不會(huì)陌生:來自澳大利亞的Zero Latency成為了全世界第一家虛擬現(xiàn)實(shí)游戲體驗(yàn)中心,它占地400平方米左右,由129個(gè)PS Eye攝像頭組成,同時(shí)支持6名玩家同場(chǎng)進(jìn)行游戲……
沒錯(cuò),這個(gè)體驗(yàn)中心相比之前的VR應(yīng)用,其最大的賣點(diǎn)就是可以在虛擬空間中自由行走。而PS Move設(shè)備(包括PS Eye攝像頭,以及裝備了標(biāo)記光球的Move手柄)則是這一技術(shù)的核心所在。
如之前的游戲效果圖所示,不同顏色的光球在PS Eye攝像頭中可以呈現(xiàn)出顯著不同于背景畫面的圖像,從而方便我們通過計(jì)算機(jī)視覺(CV)算法將它提取出來。當(dāng)然,僅有一個(gè)PS Eye攝像頭的話,是無法得到玩家的三維空間信息的。此時(shí)需要有不止一個(gè)攝像頭去捕捉玩家的光球在屏幕空間的位置,然后通過空中三角測(cè)量的算法,取得玩家在世界坐標(biāo)系當(dāng)中的真實(shí)位置。
這里自然又帶出了兩個(gè)不小的問題:
一、如何準(zhǔn)確而穩(wěn)定地從攝像頭畫面里判斷和區(qū)分不同的光球(標(biāo)記點(diǎn));
二、如何知道攝像頭本身在世界空間的位置和姿態(tài),從而正確推算玩家的位置和姿態(tài)。
為了解決這里所述的第一個(gè)問題,已經(jīng)足夠讓無數(shù)開發(fā)者絞盡腦汁、前赴后繼了。通過顏色來區(qū)分標(biāo)記點(diǎn)的方案當(dāng)然是可行的,不過如果攝像頭里出現(xiàn)了另一種類似顏色的干擾物呢?或者現(xiàn)場(chǎng)就是一片花花綠綠的環(huán)境怎么辦?這種時(shí)候,誤識(shí)別恐怕是很難避免的。因此,一批光學(xué)動(dòng)作捕捉供應(yīng)商站了出來,他們選擇采用紅外攝像頭作為識(shí)別的替代方案。
這里當(dāng)然首推老牌的OptiTrack,他們采用了幀速率大于100Hz的專業(yè)攝像頭,并且采用了全局快門系統(tǒng),因而有效避免了高速運(yùn)動(dòng)的物體在畫面上出現(xiàn)運(yùn)動(dòng)模糊的現(xiàn)象。在攝像頭的周圍采用紅外LED進(jìn)行補(bǔ)光,并且采用高反射率的材質(zhì)來制作玩家佩戴的標(biāo)記點(diǎn)。因?yàn)榧t外攝像頭本身已經(jīng)屏蔽了大部分的可見光信息,因此標(biāo)記點(diǎn)在畫面中就會(huì)顯得分外明顯。除非有人用另外的紅外光源來進(jìn)行干擾,否則幾乎不可能出現(xiàn)誤判斷的情形。
根據(jù)目前已知的一些信息,包括The Void主題公園,以及諾亦騰的Project Alice,都是采用了OptiTrack的空間定位方案,這也無疑證明了這種方案的可靠性。只是與之相對(duì)的,往往是高昂的成本(如下圖,一臺(tái)攝像頭的價(jià)格都是以數(shù)萬人民幣計(jì)算的,而構(gòu)建一個(gè)規(guī)則空間起碼需要4臺(tái)這樣的攝像頭,以及軟件系統(tǒng))。
不過,既然使用了不發(fā)光的標(biāo)記球替代PS Move的光球方案(這樣的另一個(gè)好處是,不用考慮怎么給標(biāo)記球供電的問題),那么如何區(qū)分標(biāo)記球的ID,進(jìn)而區(qū)分游戲中的多個(gè)玩家呢?方法也有多種,例如通過對(duì)反射率的調(diào)整,讓標(biāo)記球在攝像頭畫面中顯示不同的亮度;或者采用不同的組合方式,讓一組光球在畫面中呈現(xiàn)出唯一的組合形態(tài),如下圖所示:
而之前所說的第二個(gè)問題:如何知道攝像頭本身在世界空間的位置和姿態(tài)。事實(shí)上是通過預(yù)先標(biāo)定(calibration)的方式來完成的。體驗(yàn)館的搭建者預(yù)先將每臺(tái)攝像機(jī)安裝到固定的位置,然后逐一觀察它們的畫面顯示。通過已知位置姿態(tài)的一些標(biāo)記物來推算每臺(tái)攝像機(jī)的位置姿態(tài),并且保存下來。這一過程無疑是繁瑣而枯燥的,尤其當(dāng)你需要?jiǎng)虞m配置上百臺(tái)攝像機(jī)的時(shí)候。而設(shè)置完成之后,如何避免攝像機(jī)被再次移動(dòng),或者因?yàn)閳?chǎng)館結(jié)構(gòu)問題而發(fā)生震動(dòng)和偏移,這又是每一位開發(fā)者所不得不面對(duì)的設(shè)備維護(hù)難題。
不過,,因?yàn)楣鈱W(xué)定位的方法具有相當(dāng)?shù)臏?zhǔn)確度和穩(wěn)定性,通過攝像頭參數(shù)的調(diào)校也可以達(dá)到很低的延遲,并且在理論上可以擴(kuò)展到無限的空間,因此它也確實(shí)成為了目前很多VR體驗(yàn)館搭建者的首選。然而,通過標(biāo)記點(diǎn)來識(shí)別多名玩家還是具有很大的局限性,因?yàn)闃?biāo)記點(diǎn)不可能無限組合下去,兩組標(biāo)記點(diǎn)靠得過近的話(例如背靠背作戰(zhàn)的兩位玩家),也很容易發(fā)生誤測(cè)或者無法識(shí)別的情形。此外,過于復(fù)雜的場(chǎng)館環(huán)境也會(huì)讓標(biāo)記點(diǎn)更容易被障礙物遮擋,從而發(fā)生漏測(cè)問題,因此目前我們所見的多家采用光學(xué)定位的體驗(yàn)館,都是在一個(gè)空曠的規(guī)則房間內(nèi)進(jìn)行游戲的。
(三)激光雷達(dá)
激光本身具有非常精確的測(cè)距能力,其測(cè)距精度可達(dá)毫米,一般常見的是日本HOKUYO北陽(yáng)電機(jī)和德國(guó)SICK西克等專業(yè)領(lǐng)域的大廠所產(chǎn)的二維激光雷達(dá)。
二維的意思也就是這樣的激光雷達(dá)所發(fā)出的光是一個(gè)扇形平面,而各種用來做測(cè)繪用途或者建筑業(yè)用作三維重建的三維激光雷達(dá),則是這樣的二維激光雷達(dá)又加了一個(gè)維度做旋轉(zhuǎn),從而得到三維空間的結(jié)果。
激光雷達(dá)包括一個(gè)單束窄帶激光器和一個(gè)接收系統(tǒng)。激光器產(chǎn)生并發(fā)射一束光脈沖,打在物體上并反射回來,最終被接收器所接收。接收器準(zhǔn)確地測(cè)量光脈沖從發(fā)射到被反射回的傳播時(shí)間,即TOF(Time of Flight)。因?yàn)楣饷}沖以光速傳播,所以接收器總會(huì)在下一個(gè)脈沖發(fā)出之前收到前一個(gè)被反射回的脈沖。鑒于光速是已知的,傳播時(shí)間即可被轉(zhuǎn)換為對(duì)距離的測(cè)量。因?yàn)槭且怨馑贋槌咦觼頊y(cè)量的,所以激光雷達(dá)的精度一般都相當(dāng)?shù)母撸谑覂?nèi)場(chǎng)合下用,誤差都在毫米級(jí)別。
二維激光雷達(dá)實(shí)際上也是由一維的單束激光器在一個(gè)旋轉(zhuǎn)底座上旋轉(zhuǎn)起來所形成的扇面,一個(gè)二維激光雷達(dá)可以以自已為中心,以幾十米為半徑畫扇面進(jìn)行測(cè)量,所以如果在這個(gè)區(qū)域內(nèi)有人活動(dòng)的話,激光雷達(dá)就可以精確的知道一個(gè)人的位置并輸出給電腦使用。當(dāng)然,激光雷達(dá)通常也可以用做機(jī)器人研究的避障傳感器。
旋轉(zhuǎn)底座旋轉(zhuǎn)的快慢也是分很多規(guī)格的,因此激光雷達(dá)也會(huì)有掃描頻率的區(qū)分,正常來說,幾十赫茲的掃描頻率足夠我們?cè)赩R當(dāng)中做位置探測(cè)來用了。
但是激光雷達(dá)的工作原理對(duì)元器件要求高,通常又是工作在非常嚴(yán)苛的條件下,本身就要求防水防塵和數(shù)萬小時(shí)無故障的高可靠性。因此生產(chǎn)成本并不便宜。而且掃描頻率越高,探測(cè)距離越遠(yuǎn)(也就是發(fā)射功率越大)的激光雷達(dá),價(jià)格也就越貴。所以二維激光雷達(dá)的價(jià)格就已不菲(近萬元到數(shù)萬元不等),而用作測(cè)繪的機(jī)載三維激光雷達(dá)就不是一般人能問津的了(幾十萬至百萬)。
除了價(jià)格因素,激光雷達(dá)用作定位還存在一個(gè)主要的問題是: 因?yàn)閺募す馄靼l(fā)出的是一個(gè)扇形光,所以如果有一大堆運(yùn)動(dòng)物體互相擁擠著在一起的時(shí)候,互相會(huì)有遮蔽,后邊的物體處在前邊物體的“陰影區(qū)”當(dāng)中,導(dǎo)致探測(cè)不到。而且激光雷達(dá)只能測(cè)距,不能識(shí)別物體的ID,因此,就算不考慮價(jià)格因素,也比較適合單人情況下玩耍,如果想要群體的話,還是得采用其他方案。
(四)HTC Vive:Light House
這段時(shí)間里,HTC Vive的發(fā)售成為了整個(gè)業(yè)界的一大新聞。而它所采用的一種不同于光學(xué)的定位方式也是人們津津樂道的地方。HTC Vive包括三大部分,本身布滿了紅外傳感器的頭盔和手柄,以及用作定位的Light House。游戲者預(yù)先將Light House布置到一個(gè)空屋子的兩個(gè)角落中,這兩個(gè)Light House相當(dāng)于兩個(gè)固定的激光發(fā)射基站,如下圖所示。
Light House的后蓋打開后,里面這樣的:
那片密密麻麻的LED就是用來同步的光束。兩個(gè)圓柱體則是旋轉(zhuǎn)的一字激光器。一個(gè)是X軸掃掠,另一個(gè)是Y軸掃掠。兩個(gè)激光器有固定的180度相位差,也就是說,A亮的時(shí)候B不亮,B亮的時(shí)候A不亮。
而手柄和頭盔上都有固定位置安裝的光敏傳感器:
這套系統(tǒng)的具體工作流程分為三步:
1、同步:LED燈板整體亮一次,手柄和頭盔的傳感器一起被照射,作為同步信號(hào)。
2、X軸掃描:橫向的一字激光器照射手柄和頭盔上的光敏傳感器。
3、Y軸掃描:豎向的一字激光器照射手柄和頭盔上的光敏傳感器。
頭顯和控制器上安裝了很多光敏傳感器。在基站的LED閃光之后就會(huì)自動(dòng)同步所有設(shè)備的時(shí)間,然后激光開始掃描,此時(shí)光敏傳感器可以測(cè)量出X軸激光和Y軸激光分別到達(dá)傳感器的時(shí)間。
換句話說,激光掃掠過傳感器是有先后順序的,因此頭顯上的幾個(gè)傳感器感知信號(hào)的時(shí)間存在一個(gè)先后關(guān)系,于是各個(gè)傳感器相對(duì)于基站的X軸和Y軸角度也就已知了;而頭顯和手柄上安裝傳感器的位置已經(jīng)提前標(biāo)定過,位置都是固定的。這樣根據(jù)各個(gè)傳感器的位置差,就可以計(jì)算出頭顯和手柄的位置和運(yùn)動(dòng)軌跡了。
Light House的最大優(yōu)勢(shì)在于,它需要的計(jì)算量非常少。這就不像CV視覺系統(tǒng)那樣需要先成像,然后通過軟件將成像中的特征分辨出來,成像的細(xì)節(jié)越豐富,需要的圖像處理能力就越高。Light House使用的僅僅是光敏器件,無需成像,也就不涉及到大量計(jì)算和圖像處理,避免了性能損耗和不穩(wěn)定的可能。
另一方面來說,計(jì)算量大往往也就意味著延遲會(huì)更高,而且無法經(jīng)由嵌入式處理器來完成運(yùn)算。而Light House因?yàn)檫\(yùn)算量小,因此嵌入式系統(tǒng)可以自己計(jì)算和處理,再直接將位置數(shù)據(jù)傳輸?shù)絇C上,節(jié)約了大量耗費(fèi)在傳輸和處理上的延時(shí)。
不過,雖然Light House是迄今為止體驗(yàn)最好的VR交互定位設(shè)備,但是因?yàn)榧す鈱?duì)人眼安全照射功率的限制等問題,它能夠覆蓋的距離比較有限,大概也就是5M* 5M 見方的一個(gè)區(qū)域,并且不能有過多的遮擋物導(dǎo)致接收不到信號(hào)。并且這種設(shè)備的安裝調(diào)試還是比較繁瑣的,對(duì)于一般用戶來說可能還是比較困難的。
編輯:admin 最后修改時(shí)間:2017-09-09