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