0
| 本文作者: airuoxuan | 2016-06-29 09:33 | 專題:VR空間定位全解:如何在虛擬世界中行走? |
雷鋒網按:本文作者系VR行業從業者,雷鋒網獨家首發。
作為光學動作捕捉技術的代表性產品,OptiTrack憑借其穩定、高精度、高速度的優秀性能和同類產品中相對低廉的價格在業界得到了廣泛的應用。由于光學動作捕捉技術的核心是標識點定位,近幾年隨著VR的興起和VR對高精高速空間定位的迫切需求,OptiTrack迅速成為VR定位的一種主要解決方案,在VR行業受到追捧。但同時OptiTrack在VR應用中的問題也逐漸暴露出來。
本文就著重分析一下這些問題及其對VR應用的限制,供從業者參考。

OptiTrack定位技術屬于被動式紅外光學定位技術。我這里先給大家簡單介紹一下OptiTrack是如何實現的。
OptiTrack采用的紅外光學定位技術是基于計算機圖形學原理。 每套OptiTrack系統包括一個中央處理單元和多個紅外攝像頭。各攝像頭由中央處理單元統一控制,同步進行圖像采集。同時在目標物體表面上固定紅外反光率很高的標識點。在紅外波段采集圖像可以有效去除可見光干擾,提高系統魯棒性。攝像頭快門與集成在攝像頭上的紅外照明光源同步開啟,保證標識點在圖像中易于辨識。
OptiTrack系統在安裝后需要進行標定,以確定各攝像頭在世界坐標系中的空間位置T以及各攝像頭坐標系到世界坐標系的轉換矩陣R。R和T在后面的定位計算中都會用到。
攝像頭采集的每幀圖像經過畸變矯正和標識點識別,再進行從對應攝像頭坐標系到世界坐標系的轉換(使用R),可以得到從攝像頭到圖像中各標識點中心在世界坐標系下的一組方向矢量。如果一個標識點同時出現在兩個或更多攝像頭拍攝的圖像中,根據已知的各攝像頭世界坐標系空間位置(使用T)以及多幀圖像中對應于該標識點的方向矢量,計算多個方向矢量的交點或近似交點,可以確定該標識點的世界坐標,如下圖所示:
為了保證成像質量,OptiTrack攝像頭的視場角一般都比較小。下表是OptiTrack官方給出的各款攝像頭視場角參數。

同時,上文提到過OptiTrack的定位原理要求對定位空間中每一點都要有至少兩個攝像頭覆蓋。為了保證場地的有效覆蓋以及抗遮擋, OptiTrack要求攝像頭向前安裝。這導致攝像頭下方附近無法得到很好的覆蓋,尤其在有遮擋情況下,從而無法進行穩定定位。一般在安裝場地邊角附近一米左右的區域為不能使用的盲區,在使用面積上會有很大的損失。
這點在VR應用,尤其是商用場景中是一個很大的限制,因為用戶通常希望可以使用100%的面積。相比之下,HTC Vive和StepVR使用的激光掃描定位技術則沒有這個限制,因為該技術在水平和豎直方向都可以達到至少90度角的覆蓋。
為什么OptiTrack用于VR會有延遲問題?
要回答這個問題,我們以多人VR游戲為例, 先看看從OptiTrack系統采集原始圖像到渲染好的游戲畫面顯示到玩家HMD上的整個處理流程,如下:
攝像頭圖像預處理提取mark點→中央計算單元根據多攝像頭數據計算各mark點空間位置→定位數據無線傳輸到玩家計算單元→玩家計算單元找出屬于自己的mark點→游戲渲染。
首先是對攝像頭拍攝的圖像進行預處理,包括對圖像進行畸變矯正,標識點的分割,對標識點的大小和中心點的計算。取決于定位空間的大小以及支持標識點的個數,為保證實時處理要求,涉及標識點處理的操作需要在攝像頭和中央處理單元之間進行分配。
其次是根據前面描述的算法綜合多幀圖像的信息對空間所有標識點進行定位。這一步必須在中央處理單元上完成。
然后是把各標識點的定位信息傳輸到玩家的計算單元。為保證玩家在游戲中能自由運動,玩家身上的移動計算單元需要與中央處理單元進行無線通信。這步并不進行任何數據處理,但會引入延遲。
接下來是從所有標識點的定位信息中區分出對應每個玩家各定位點的信息。取決于系統架構,這步可以放在各玩家的移動計算單元上,也可以與上一步互換,在中央處理單元上完成。因為標識點本身無法提供編號信息,多標識點位置很接近的情況會很難處理,所以這步必須通過一些限制條件結合算法實現。比如約束各玩家的運動范圍,通過空間限制確定標識點的歸屬;或者將多個標識點剛性連接成不同幾何構型,通過幾何限制用匹配的方法判斷標識點的歸屬;或者已知玩家各標識點的起始位置,通過運動預測的方式判斷標識點的對應關系。
實際應用常常會同時采用多種方法,但無論采用何種方案,隨著玩家和標識點數目的增加,算法復雜度會呈超線性增長,延遲也會越來越長。
確定玩家各標識點后,游戲才能對內容進行渲染并將游戲畫面最后顯示到玩家的HMD上。

上圖中OptiTrack官網給出的各款攝像頭的延遲參數實際上只是攝像頭拍攝兩幀之間的時間間隔,并不代表全部系統延遲。而國內一些采用OptiTrack方案的公司所宣稱的20ms延遲是從圖像采集到數據傳輸至玩家移動計算單元的延遲,并非從圖像采集到HMD顯示整個流程的延遲。
OptiTrack光學系統雖然可以實現多個目標的同時定位,但是可識別目標數目有限。
同樣以多人VR游戲為例, 玩家自身加道具通常需要進行多點定位及姿態捕捉。實現一個目標點的姿態捕捉需要至少不共面的4個標識點用POSIT算法進行解算,提高確定標識點對應關系算法的魯棒性也有類似的需求。所以在比較典型的玩家有一把槍的情況下,如果只對頭部和槍進行定位,每個玩家需要8個標識點。如果需要做全身動作捕捉,標識點數目會大大增加。
由于圖像處理的復雜性,OptiTrack系統通常支持的最大標識點數目在100以下(官方參數)。同時確定標識點與玩家對應關系的算法復雜度也會對此進行限制。這就決定了一套OptiTrack系統只能支持有限的幾個玩家。

同時, OptiTrack要求所有攝像頭通過Gigabit局域網連接到中央處理單元,一套OptiTrack系統最多支持的攝像頭數目也有限制,通常為96。使用頂級的Prime 41攝像頭,系統支持的定位面積為676m2(官方參數),難以滿足大型場地的需求。
激光掃描定位系統則不受這個限制。因為各定位單元有自己的編號,且根據激光掃描信號獨立進行定位,所以定位點數目可以任意多,同時也無需確定對應關系。據公開消息顯示,StepVR的方案甚至支持無限大空間擴展。
遮擋問題一直是光學定位系統最常見的工作失效原因之一,Optitrack系統也存在這樣的問題。Optitrack系統需要至少兩個攝像頭同時拍到同一標記點方可實現該標記點的定位,而當紅外光線被用戶或物體遮擋時,空間點三維重構就會由于缺少必要的二維圖像中的特征點間對應信息,導致定位跟蹤失敗。
然而每一標識點在定位空間任意位置任一時刻必須有兩個以上的攝像頭覆蓋是非常高的要求。在多人VR交互場景下,遮擋會頻繁發生。即使有一個攝像頭可以覆蓋標識點,也無法進行定位。反映在玩家HMD上顯示的內容里,定位丟失可能會造成運動卡頓或道具丟失等非常影響體驗的狀況。解決方法可以通過增加攝像頭,限制玩家移動范圍,以及用運動估計算法短時間進行補償。

相比之下,激光掃描定位系統中每個定位單元只需要收到一個激光發射基站的定位信號即可定位,抗遮擋性更優。
OptiTrack系統最致命的弱點是昂貴的價格。OptiTrack攝像頭需要有優秀的光學質量、高分辨率、高幀率,且需要有高速的圖像處理功能,導致滿足VR使用需求的攝像頭每個都在1000到幾千美元,下表是OptiTrack官網給出的各款攝像頭的價格信息:

而一套實用的系統所需要的攝像頭數目根據面積需求從8個到幾十個不等,再考慮到其它硬件和系統軟件,一套可用于VR的OptiTrack系統通常價格在幾萬到幾十萬美元。 雖然對比同類產品比如Vicon系統OptiTrack有一定價格優勢,但對VR這種大眾化的應用仍然非常昂貴,即使是大多數B端的客戶,如中小面積VR體驗店的業主也難以承受。

而若要降低成本,即會損毀精度。OptiTrack這類光學定位系統對于大多數VR用戶來講并不是性能和價格一個很好的平衡點,這也是國內一些應用OptiTrack定位方案的公司,以及類OptiTrack定位方案的公司,其設備也非常昂貴的原因。而價格相對低廉、性能出色的激光掃描定位技術在大多數情況下可能是一個更好的選擇。后面我會有專門的文章分析激光掃描定位技術的優缺點。
雷鋒網注:雷鋒網獨家文章,轉載請聯系我們授權,并保留出處和作者,不得刪減內容。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。