作為光學(xué)動(dòng)作捕捉技術(shù)的代表性產(chǎn)品,OptiTrack憑借其穩(wěn)定、高精度、高速度的優(yōu)秀性能和同類產(chǎn)品中相對(duì)低廉的價(jià)格在業(yè)界得到了廣泛的應(yīng)用。由于光學(xué)動(dòng)作捕捉技術(shù)的核心是標(biāo)識(shí)點(diǎn)定位,近幾年隨著VR的興起和VR對(duì)高精高速空間定位的迫切需求,OptiTrack迅速成為VR定位的一種主要解決方案,在VR行業(yè)受到追捧。但同時(shí)OptiTrack在VR應(yīng)用中的問題也逐漸暴露出來(lái)。
本文就著重分析一下這些問題及其對(duì)VR應(yīng)用的限制,供從業(yè)者參考。
| OptiTrack紅外光學(xué)定位是如何實(shí)現(xiàn)的?
OptiTrack定位技術(shù)屬于被動(dòng)式紅外光學(xué)定位技術(shù)。我這里先給大家簡(jiǎn)單介紹一下OptiTrack是如何實(shí)現(xiàn)的。
OptiTrack采用的紅外光學(xué)定位技術(shù)是基于計(jì)算機(jī)圖形學(xué)原理。 每套OptiTrack系統(tǒng)包括一個(gè)中央處理單元和多個(gè)紅外攝像頭。各攝像頭由中央處理單元統(tǒng)一控制,同步進(jìn)行圖像采集。同時(shí)在目標(biāo)物體表面上固定紅外反光率很高的標(biāo)識(shí)點(diǎn)。在紅外波段采集圖像可以有效去除可見光干擾,提高系統(tǒng)魯棒性。攝像頭快門與集成在攝像頭上的紅外照明光源同步開啟,保證標(biāo)識(shí)點(diǎn)在圖像中易于辨識(shí)。
OptiTrack系統(tǒng)在安裝后需要進(jìn)行標(biāo)定,以確定各攝像頭在世界坐標(biāo)系中的空間位置T以及各攝像頭坐標(biāo)系到世界坐標(biāo)系的轉(zhuǎn)換矩陣R。R和T在后面的定位計(jì)算中都會(huì)用到。
攝像頭采集的每幀圖像經(jīng)過畸變矯正和標(biāo)識(shí)點(diǎn)識(shí)別,再進(jìn)行從對(duì)應(yīng)攝像頭坐標(biāo)系到世界坐標(biāo)系的轉(zhuǎn)換(使用R),可以得到從攝像頭到圖像中各標(biāo)識(shí)點(diǎn)中心在世界坐標(biāo)系下的一組方向矢量。如果一個(gè)標(biāo)識(shí)點(diǎn)同時(shí)出現(xiàn)在兩個(gè)或更多攝像頭拍攝的圖像中,根據(jù)已知的各攝像頭世界坐標(biāo)系空間位置(使用T)以及多幀圖像中對(duì)應(yīng)于該標(biāo)識(shí)點(diǎn)的方向矢量,計(jì)算多個(gè)方向矢量的交點(diǎn)或近似交點(diǎn),可以確定該標(biāo)識(shí)點(diǎn)的世界坐標(biāo),如下圖所示:
| OptiTrack應(yīng)用于VR行業(yè)存在哪些問題?
(1)邊角盲區(qū)和覆蓋面積的虧損
為了保證成像質(zhì)量,OptiTrack攝像頭的視場(chǎng)角一般都比較小。下表是OptiTrack官方給出的各款攝像頭視場(chǎng)角參數(shù)。
同時(shí),上文提到過OptiTrack的定位原理要求對(duì)定位空間中每一點(diǎn)都要有至少兩個(gè)攝像頭覆蓋。為了保證場(chǎng)地的有效覆蓋以及抗遮擋, OptiTrack要求攝像頭向前安裝。這導(dǎo)致攝像頭下方附近無(wú)法得到很好的覆蓋,尤其在有遮擋情況下,從而無(wú)法進(jìn)行穩(wěn)定定位。一般在安裝場(chǎng)地邊角附近一米左右的區(qū)域?yàn)椴荒苁褂玫拿^(qū),在使用面積上會(huì)有很大的損失。
這點(diǎn)在VR應(yīng)用,尤其是商用場(chǎng)景中是一個(gè)很大的限制,因?yàn)橛脩敉ǔOM梢允褂?00%的面積。相比之下,HTC Vive和StepVR使用的激光掃描定位技術(shù)則沒有這個(gè)限制,因?yàn)樵摷夹g(shù)在水平和豎直方向都可以達(dá)到至少90度角的覆蓋。
(2)高延遲
為什么OptiTrack用于VR會(huì)有延遲問題?
要回答這個(gè)問題,我們以多人VR游戲?yàn)槔?先看看從OptiTrack系統(tǒng)采集原始圖像到渲染好的游戲畫面顯示到玩家HMD上的整個(gè)處理流程,如下:
攝像頭圖像預(yù)處理提取mark點(diǎn)→中央計(jì)算單元根據(jù)多攝像頭數(shù)據(jù)計(jì)算各mark點(diǎn)空間位置→定位數(shù)據(jù)無(wú)線傳輸?shù)酵婕矣?jì)算單元→玩家計(jì)算單元找出屬于自己的mark點(diǎn)→游戲渲染。
首先是對(duì)攝像頭拍攝的圖像進(jìn)行預(yù)處理,包括對(duì)圖像進(jìn)行畸變矯正,標(biāo)識(shí)點(diǎn)的分割,對(duì)標(biāo)識(shí)點(diǎn)的大小和中心點(diǎn)的計(jì)算。取決于定位空間的大小以及支持標(biāo)識(shí)點(diǎn)的個(gè)數(shù),為保證實(shí)時(shí)處理要求,涉及標(biāo)識(shí)點(diǎn)處理的操作需要在攝像頭和中央處理單元之間進(jìn)行分配。
其次是根據(jù)前面描述的算法綜合多幀圖像的信息對(duì)空間所有標(biāo)識(shí)點(diǎn)進(jìn)行定位。這一步必須在中央處理單元上完成。
然后是把各標(biāo)識(shí)點(diǎn)的定位信息傳輸?shù)酵婕业挠?jì)算單元。為保證玩家在游戲中能自由運(yùn)動(dòng),玩家身上的移動(dòng)計(jì)算單元需要與中央處理單元進(jìn)行無(wú)線通信。這步并不進(jìn)行任何數(shù)據(jù)處理,但會(huì)引入延遲。
接下來(lái)是從所有標(biāo)識(shí)點(diǎn)的定位信息中區(qū)分出對(duì)應(yīng)每個(gè)玩家各定位點(diǎn)的信息。取決于系統(tǒng)架構(gòu),這步可以放在各玩家的移動(dòng)計(jì)算單元上,也可以與上一步互換,在中央處理單元上完成。因?yàn)闃?biāo)識(shí)點(diǎn)本身無(wú)法提供編號(hào)信息,多標(biāo)識(shí)點(diǎn)位置很接近的情況會(huì)很難處理,所以這步必須通過一些限制條件結(jié)合算法實(shí)現(xiàn)。比如約束各玩家的運(yùn)動(dòng)范圍,通過空間限制確定標(biāo)識(shí)點(diǎn)的歸屬;或者將多個(gè)標(biāo)識(shí)點(diǎn)剛性連接成不同幾何構(gòu)型,通過幾何限制用匹配的方法判斷標(biāo)識(shí)點(diǎn)的歸屬;或者已知玩家各標(biāo)識(shí)點(diǎn)的起始位置,通過運(yùn)動(dòng)預(yù)測(cè)的方式判斷標(biāo)識(shí)點(diǎn)的對(duì)應(yīng)關(guān)系。
實(shí)際應(yīng)用常常會(huì)同時(shí)采用多種方法,但無(wú)論采用何種方案,隨著玩家和標(biāo)識(shí)點(diǎn)數(shù)目的增加,算法復(fù)雜度會(huì)呈超線性增長(zhǎng),延遲也會(huì)越來(lái)越長(zhǎng)。
確定玩家各標(biāo)識(shí)點(diǎn)后,游戲才能對(duì)內(nèi)容進(jìn)行渲染并將游戲畫面最后顯示到玩家的HMD上。
上圖中OptiTrack官網(wǎng)給出的各款攝像頭的延遲參數(shù)實(shí)際上只是攝像頭拍攝兩幀之間的時(shí)間間隔,并不代表全部系統(tǒng)延遲。而國(guó)內(nèi)一些采用OptiTrack方案的公司所宣稱的20ms延遲是從圖像采集到數(shù)據(jù)傳輸至玩家移動(dòng)計(jì)算單元的延遲,并非從圖像采集到HMD顯示整個(gè)流程的延遲。
(3)可識(shí)別目標(biāo)數(shù)目有限
OptiTrack光學(xué)系統(tǒng)雖然可以實(shí)現(xiàn)多個(gè)目標(biāo)的同時(shí)定位,但是可識(shí)別目標(biāo)數(shù)目有限。
同樣以多人VR游戲?yàn)槔?玩家自身加道具通常需要進(jìn)行多點(diǎn)定位及姿態(tài)捕捉。實(shí)現(xiàn)一個(gè)目標(biāo)點(diǎn)的姿態(tài)捕捉需要至少不共面的4個(gè)標(biāo)識(shí)點(diǎn)用POSIT算法進(jìn)行解算,提高確定標(biāo)識(shí)點(diǎn)對(duì)應(yīng)關(guān)系算法的魯棒性也有類似的需求。所以在比較典型的玩家有一把槍的情況下,如果只對(duì)頭部和槍進(jìn)行定位,每個(gè)玩家需要8個(gè)標(biāo)識(shí)點(diǎn)。如果需要做全身動(dòng)作捕捉,標(biāo)識(shí)點(diǎn)數(shù)目會(huì)大大增加。
由于圖像處理的復(fù)雜性,OptiTrack系統(tǒng)通常支持的最大標(biāo)識(shí)點(diǎn)數(shù)目在100以下(官方參數(shù))。同時(shí)確定標(biāo)識(shí)點(diǎn)與玩家對(duì)應(yīng)關(guān)系的算法復(fù)雜度也會(huì)對(duì)此進(jìn)行限制。這就決定了一套OptiTrack系統(tǒng)只能支持有限的幾個(gè)玩家。
同時(shí), OptiTrack要求所有攝像頭通過Gigabit局域網(wǎng)連接到中央處理單元,一套OptiTrack系統(tǒng)最多支持的攝像頭數(shù)目也有限制,通常為96。使用頂級(jí)的Prime 41攝像頭,系統(tǒng)支持的定位面積為676m2(官方參數(shù)),難以滿足大型場(chǎng)地的需求。
激光掃描定位系統(tǒng)則不受這個(gè)限制。因?yàn)楦鞫ㄎ粏卧凶约旱木幪?hào),且根據(jù)激光掃描信號(hào)獨(dú)立進(jìn)行定位,所以定位點(diǎn)數(shù)目可以任意多,同時(shí)也無(wú)需確定對(duì)應(yīng)關(guān)系。據(jù)公開消息顯示,StepVR的方案甚至支持無(wú)限大空間擴(kuò)展。
(4) 遮擋問題
遮擋問題一直是光學(xué)定位系統(tǒng)最常見的工作失效原因之一,Optitrack系統(tǒng)也存在這樣的問題。Optitrack系統(tǒng)需要至少兩個(gè)攝像頭同時(shí)拍到同一標(biāo)記點(diǎn)方可實(shí)現(xiàn)該標(biāo)記點(diǎn)的定位,而當(dāng)紅外光線被用戶或物體遮擋時(shí),空間點(diǎn)三維重構(gòu)就會(huì)由于缺少必要的二維圖像中的特征點(diǎn)間對(duì)應(yīng)信息,導(dǎo)致定位跟蹤失敗。
然而每一標(biāo)識(shí)點(diǎn)在定位空間任意位置任一時(shí)刻必須有兩個(gè)以上的攝像頭覆蓋是非常高的要求。在多人VR交互場(chǎng)景下,遮擋會(huì)頻繁發(fā)生。即使有一個(gè)攝像頭可以覆蓋標(biāo)識(shí)點(diǎn),也無(wú)法進(jìn)行定位。反映在玩家HMD上顯示的內(nèi)容里,定位丟失可能會(huì)造成運(yùn)動(dòng)卡頓或道具丟失等非常影響體驗(yàn)的狀況。解決方法可以通過增加攝像頭,限制玩家移動(dòng)范圍,以及用運(yùn)動(dòng)估計(jì)算法短時(shí)間進(jìn)行補(bǔ)償。
相比之下,激光掃描定位系統(tǒng)中每個(gè)定位單元只需要收到一個(gè)激光發(fā)射基站的定位信號(hào)即可定位,抗遮擋性更優(yōu)。
(5)價(jià)格昂貴
OptiTrack系統(tǒng)最致命的弱點(diǎn)是昂貴的價(jià)格。OptiTrack攝像頭需要有優(yōu)秀的光學(xué)質(zhì)量、高分辨率、高幀率,且需要有高速的圖像處理功能,導(dǎo)致滿足VR使用需求的攝像頭每個(gè)都在1000到幾千美元,下表是OptiTrack官網(wǎng)給出的各款攝像頭的價(jià)格信息:
而一套實(shí)用的系統(tǒng)所需要的攝像頭數(shù)目根據(jù)面積需求從8個(gè)到幾十個(gè)不等,再考慮到其它硬件和系統(tǒng)軟件,一套可用于VR的OptiTrack系統(tǒng)通常價(jià)格在幾萬(wàn)到幾十萬(wàn)美元。 雖然對(duì)比同類產(chǎn)品比如Vicon系統(tǒng)OptiTrack有一定價(jià)格優(yōu)勢(shì),但對(duì)VR這種大眾化的應(yīng)用仍然非常昂貴,即使是大多數(shù)B端的客戶,如中小面積VR體驗(yàn)店的業(yè)主也難以承受。
而若要降低成本,即會(huì)損毀精度。OptiTrack這類光學(xué)定位系統(tǒng)對(duì)于大多數(shù)VR用戶來(lái)講并不是性能和價(jià)格一個(gè)很好的平衡點(diǎn),這也是國(guó)內(nèi)一些應(yīng)用OptiTrack定位方案的公司,以及類OptiTrack定位方案的公司,其設(shè)備也非常昂貴的原因。而價(jià)格相對(duì)低廉、性能出色的激光掃描定位技術(shù)在大多數(shù)情況下可能是一個(gè)更好的選擇。后面我會(huì)有專門的文章分析激光掃描定位技術(shù)的優(yōu)缺點(diǎn)。