在虛擬現實和增強現實系統環境中,可預測追蹤技術能夠對某個對象或身體某一部位的下一步方向和(或)位置進行預測處理。給你舉個例子,當你的頭部朝著某個方向轉動時,可以同步來預測你的手可能放置的位置。
為什么可預測追蹤技術如此有用?
可預測追蹤技術的一個常見應用,就是減少“運動光子”延遲時間,所謂運動的光子延遲是指用戶在虛擬現實或增強現實環境下完成一個動作,到該動作被充分反映在顯示屏上的時間。由于運動本身就會產生一些延遲,而當運動完成、信息展現在屏幕上時又會出現一段時延(更多引起時延的原因請參見下文),因此當你能夠預測下一步方向和位置,然后將相關數據優先更新到屏幕上,就可以大大縮短感知延遲。
雖然在虛擬現實應用中,對于可預測追蹤技術的關注比較多,但其實該技術在增強現實領域里也同樣非常重要,特別是當用戶在真實世界中發生瞬時移動,相應的增強現實疊加也要在顯示屏上體現出來。舉個例子,如果你帶著一個增強現實頭盔,看到增強顯示的圖形疊加在實體對象的頂部,更重要的是,即使你旋轉了自己的頭庫,增強現實環境中的“覆蓋物”需要依然“鎖定”在原來的那個對象上,而不是隨著你的頭部轉動而轉動,它其實展示的是真實世界的一部分。對象或許可以被攝像頭識別,但是攝像頭可能需要耗費一些時間來捕獲幀,以便處理器能夠判斷出這個對象在幀中的位置,然后圖形處理芯片需要再呈現疊加層上的新位置。而通過使用可預測追蹤技術,相比于現實世界,在疊加層中運動處理能夠有所減少。
可預測追蹤技術如何工作?
如果你看到一輛汽車正在以恒定的速度行駛,然后你想要預測這輛汽車在下一秒后可能達到的位置似乎是一件非常簡單的事情,而且不出意外的話,預測的準確度也會很高——因為你不但知道這輛汽車的準確位置,而且還知道它當前的(或是估算的)行駛速度,所以有了這些條件之后,基本就能推斷出這輛汽車未來所處的位置在哪里。
當然,如果你要預測這輛汽車在一秒鐘時間內到底能開到哪兒,那么這個預測可能無法做到每次都百分之百準確,因為在這段時間里,汽車可能會改變方向,也有可能會加速。因此對于汽車行駛預測而言,你嘗試預測的范圍越遠,預測的就會更不準確。簡單的說,如果讓你預測汽車在一秒鐘時間之后所在的位置,準確度肯定比讓你預測汽車在一分鐘時間之后所在的位置要高。
此外,你對汽車本身情況了解的越多,那么預測準確的機會也就越大。比如,你不僅要測量汽車的速度,還要測量它的加速度,繼而進行更準確的預測。
所以,假如你能夠獲得被追蹤物體對象更多的行為信息,那么也可以提高預測準確度。在舉例說明,當你進行頭部追蹤時,如果能夠了解頭部旋轉的速度、以及可能旋轉的角度,那么就能進一步優化追蹤模型,從而做出更準確的判斷。同樣地,假如你正在進行眼球追蹤,那么也可以將獲取到的眼球追蹤信息用于預測頭部運動(這會在本文后詳細探討)。
導致時延的原因
VR頭盔延遲測試裝置
對于可預測追蹤技術的渴望,主要來自于虛擬現實和增強現實環境中的時延,通常這個時延是指用戶在現實世界中完成了一個動作之后,該動作(或是該動作所產生的效果)要花多長時間才能反映到顯示屏上。事實上,導致時延主要有以下幾個原因,比如:
感官延遲:傳感器(比如陀螺儀)可能受到帶寬限制,并且不會立即報告方向和位置變化信息。同樣地,基于攝像頭的傳感器也可能出現延遲,因為攝像頭傳感器收到來自追蹤對象的光線像素,到對應的幀準備好被發送到主機處理器也需要一段時間,因此會造成時延。
處理延遲:傳感器數據通常會使用一些傳感器融合算法進行整合,而如果執行相關算法,那么在接收數據和到算法輸出答案之間也會造成時延。
為確保數據流暢,導致延遲:傳感器數據有時會比較雜亂,為了避免出現錯誤,可能會執行一些軟件或基于硬件的低通算法,雖然能夠在一定程度上提升數據流暢性,但會因為算法質量較低造成時延。
傳輸延遲:舉個例子,如果使用一個 USB 互聯設備來進行方向傳感器數據收集,那么在主機處理器收集數據和數據通過 USB 傳輸數據之間會需要一定時間,造成時延。
渲染延遲:當你要渲染一個復雜場景時,對于處理器來說可能需要花上一段時間來判斷(或決定)每一幀里面的每一個像素放在哪個位置,以及這一幀什么時候被發送到顯示屏上。
幀速率延遲:舉個例子,如果你使用的是 100Hz顯示屏,那么就意味著從一幀到下一幀所需要的時間大約為 10 毫秒。當繪制特定像素時,可能無法實時匹配當前信息,因為你需要等該像素被會繪制到顯示屏上,才能出現下一個像素。
上面提到的這些造成時延的原因,可能有一些只會導致非常小的時延感受,不過如果幾個問題疊加起來,可能就會帶來比較不好的用戶體驗了。事實上,可預測追蹤技術(結合諸如時間規整算法等其他技術)對于減少明顯時延非常有幫助。
距離預測未來究竟有多遠?
實際上,上面這個問題似乎沒有標準答案,因為最終還是要看用戶的使用體驗和感受,每個人的體感也都是不一樣的。一開始,你可能會先估計系統端到端的時延,然后根據自己的喜好來優化時間。
此外,在對未來某個給定時間段內進行預測時,你可能需要將這段時間拆分成幾個預測時間段,為什么要這么做呢?我們用以下幾個例子來做下解釋:
不同的對象有不同的端到端延遲。舉個例子,基于攝像頭的手部追蹤和基于攝像頭的頭部追蹤所表現出的時延就不一樣,但在某些虛擬現實或增強現實應用場景下,你又需要將手部和頭部動作同步起來,所以你需要采用不同的預測追蹤時間,使得最終效果更加協調。
在配置用于雙眼圖像提供的單屏幕(比如智能手機屏幕)時,對于單眼圖像顯示,也會出現半幀的延遲(比如,六十分之一秒的一半,或是大約 8 毫秒),一只眼睛會“先看到”圖像,然后該圖像才會反映到另一只眼睛上。所以在這種情況下,最好也能夠應用可預測追蹤技術,提前 8 毫秒時間進行判斷,減少半屏延遲體驗。
常見的預測算法
這里再介紹幾個可預測追蹤算法的例子:
導航推測算法:這其實是一個非常簡單的算法,如果在給定時間內位置和速度(或是角位置和角速度)都是已知的,而且在速度保持不變的情況下,速度值也不會有錯誤,那么就可以計算出對象最后的“落腳點”,繼而進行位置預測。舉個例子,如果最后一個所知位置是 100 單位,而最后所知的速度是每秒 10 單位,那么在未來 10 毫秒這段時間里,該對象的位置點就是 100+10*0.01=100.1。當然,這是一個非常簡單的計算,因為它有一個假設前提,那就是位置和速度都是正確的(而且在主觀上也不會受到其他測量問題的影響),同時速度也都是保持恒定。但事實上,所有這些假設在現實中幾乎都很難實現。
卡爾曼預測器:它是基于著名的卡爾曼濾波器,用于在已有系統運行的數學模型中減少系統傳感器噪音的。如果你需要了解更多和卡爾曼濾波器有關的信息,請參見這里。
Alpha-beta-gamma:ABG 預測器和上文提到的卡爾曼預測器相關度很高,雖然數學應用更簡單,但是它的通用性卻比較一般。ABG 預測器會嘗試不斷估算速度和加速度,然后將這些數據應用于預測。由于估值考慮到了實際數據,所以他們減少一部分估值誤差。配置 alpha、beta 和 gamma 參數也增強了響應能力。
可預測追蹤技術是一種非常有用的虛擬現實/增強現實技術,而且也常用語減少表現時延問題。該技術執行起來雖然簡單,但是對專業水平要求較高,所以需要你多做一些思考和分析,因為就目前的虛擬現實和增強現實系統來說,減少時延是至關重要的。
(審核編輯: 林靜)
分享