2017年5月3日 星期三

.理解可預測追蹤技術,以及該技術對 VR/AR 的重要性

VR News: Apr 25 2017 - AMD's Latest GPU the Radeon Pro Duo and What is Predictive Tracking for VR?




leiphone 作者:天諾



按:本文作者是 Sensics 公司首席執行官、OSVR 聯合創始人 Yuval。雷鋒網對其內容進行編譯。

理解可预测追踪技术,以及该技术对VR/AR的重要性

在虛擬現實和增強現實系統環境中,可預測追蹤技術能夠對某個對象,或身體某一部位的下一步方向,和(或)位置進行預測處理。小編給你舉個例子,當你的頭部朝著某個方向轉動時,可以同步來預測你的手可能放置的位置。

為什麼可預測追蹤技術如此有用?
可預測追蹤技術的一個常見應用,就是減少「運動光子」延遲時間,所謂運動的光子延遲,是指用戶在虛擬現實或增強現實環境下,完成一個動作,到該動作被充分反映在顯示螢幕上的時間。

由於運動本身就會產生一些延遲,而當運動完成、資訊展現在螢幕上時,又會出現一段時延(更多引起時延的原因,請參見下文),因此當你能夠預測下一步方向和位置,然後將相關數據,優先更新到螢幕上,就可以大大縮短感知延遲。

雖然在虛擬現實應用中,對於可預測追蹤技術的關注比較多,但其實該技術在增強現實領域裡,也同樣非常重要,特別是當用戶在真實世界中發生瞬間移動,相應的增強現實疊加,也要在顯示螢幕上體現出來。

舉個例子,如果你帶著一個增強現實頭盔,看到增強顯示的圖形,疊加在實體對象的頂部,更重要的是,即使你旋轉了自己的頭庫,增強現實環境中的「覆蓋物」,需要依然「鎖定」在原來的那個對象上,而不是隨著你的頭部轉動而轉動,它其實展示的是真實世界的一部分。

對象或許可以被攝影機辨識,但是攝影機可能需要耗費一些時間來捕獲幀,以便處理器能夠判斷出這個對象,在幀中的位置,然後圖形處理晶片,需要再呈現疊加層上的新位置。而透過使用可預測追蹤技術,相比於現實世界,在疊加層中運動處理能夠有所減少。

可預測追蹤技術如何工作?

理解可预测追踪技术,以及该技术对VR/AR的重要性

如果你看到一輛汽車,正在以恆定的速度行駛,然後你想要預測這輛汽車在下一秒後,可能達到的位置,似乎是一件非常簡單的事情,而且不出意外的話,預測的準確度也會很高——因為你不但知道這輛汽車的準確位置,而且還知道它當前的(或是估算的)行駛速度,所以有了這些條件之後,基本就能推斷出這輛汽車未來所處的位置在哪裡。

當然,如果你要預測這輛汽車,在一秒鐘時間內,到底能開到哪兒,那麼這個預測,可能無法做到每次都百分之百準確,因為在這段時間裡,汽車可能會改變方向,也有可能會加速。

因此對於汽車行駛預測而言,你嘗試預測的範圍越遠,預測的就會更不準確。簡單的說,如果讓你預測汽車,在一秒鐘時間之後所在的位置,準確度肯定比讓你預測汽車,在一分鐘時間之後所在的位置要高。

此外,你對汽車本身情況瞭解的越多,那麼預測準確的機會也就越大。比如,你不僅要測量汽車的速度,還要測量它的加速度,繼而進行更準確的預測。

所以,假如你能夠獲得被追蹤物體對象,更多的行為資訊,那麼也可以提高預測準確度。在舉例說明,當你進行頭部追蹤時,如果能夠瞭解頭部旋轉的速度、以及可能旋轉的角度,那麼就能進一步優化追蹤模型,從而做出更準確的判斷。

同樣地,假如你正在進行眼球追蹤,那麼也可以將獲取到的眼球追蹤資訊,用於預測頭部運動(這會在本文後詳細探討)。
導致時延的原因
理解可预测追踪技术,以及该技术对VR/AR的重要性
VR頭盔延遲測試裝置

對於可預測追蹤技術的渴望,主要來自於虛擬現實和增強現實環境中的時延,通常這個時延是指用戶在現實世界中,完成了一個動作之後,該動作(或是該動作所產生的效果)要花多長時間,才能反映到顯示螢幕上。事實上,導致時延主要有以下幾個原因,比如:


 感官延遲傳感器(比如陀螺儀)可能受到頻寬限制,並且不會立即報告方向和位置變化資訊。同樣地,基於攝影機的傳感器,也可能出現延遲,因為攝影機傳感器,收到來自追蹤對象的光線像素,到對應的幀準備好被發送到主機處理器,也需要一段時間,因此會造成時延。

‧  處理延遲:傳感器數據通常會使用一些傳感器,融合算法進行整合,而如果執行相關算法,那麼在接收數據和到算法輸出答案之間,也會造成時延。

 為確保數據流暢,導致延遲:傳感器數據有時會比較雜亂,為了避免出現錯誤,可能會執行一些軟體,或基於硬的低通算法,雖然能夠在一定程度上,提升數據流暢性,但會因為算法品質較低造成時延。

‧  傳輸延遲:舉個例子,如果使用一個 USB 互聯設備,來進行方向傳感器數據收集,那麼在主機處理器收集數據,和數據透過 USB 傳輸數據之間,會需要一定時間,造成時延。

‧  渲染延遲:當你要渲染一個複雜場景時,對於處理器來說,可能需要花上一段時間,來判斷(或決定)每一幀裡面的每一個像素,放在哪個位置,以及這一幀什麼時候被發送到顯示螢幕上。

‧  幀速率延遲:舉個例子,如果你使用的是 100Hz顯示螢幕,那麼就意味著,從一幀到下一幀所需要的時間大約為 10 毫秒。當繪製特定像素時,可能無法即時匹配當前資訊,因為你需要等該像素,被會繪到顯示螢幕上,才能出現下一個像素。

上面提到的這些造成時延的原因,可能有一些只會導致非常小的時延感受,不過如果幾個問題疊加起來,可能就會帶來比較不好的用戶體驗了。事實上,可預測追蹤技術(結合諸如時間規整算法等其他技術)對於減少明顯時延非常有幫助。

距離預測未來究竟有多遠?
實際上,上面這個問題似乎沒有標準答案,因為最終還是要看用戶的使用體驗和感受,每個人的體感也都是不一樣的。一開始,你可能會先估計系統端到端的時延,然後根據自己的喜好來優化時間。

此外,在對未來某個給特定時段內進行預測時,你可能需要將這段時間拆分成幾個預測時段,為什麼要這麼做呢?我們用以下幾個例子來做下解釋:

‧  不同的對象有不同的端到端延遲。舉個例子,基於攝影機的手部追蹤和基於攝影機的頭部追蹤所,表現出的時延就不一樣,但在某些虛擬現實或增強現實應用場景下,你又需要將手部和頭部動作同步起來,所以你需要採用不同的預測追蹤時間,使得最終效果更加協調。

‧  在配置用於雙眼圖像提供的單螢幕(比如智慧手機螢幕)時,對於單眼圖像顯示,也會出現半幀的延遲(比如,六十分之一秒的一半,或是大約 8 毫秒),一隻眼睛會「先看到」圖像,然後該圖像才會反映到另一隻眼睛上。所以在這種情況下,最好也能夠應用可預測追蹤技術,提前 8 毫秒時間進行判斷,減少半屏延遲體驗。

常見的預測算法
這裡再介紹幾個可預測追蹤算法的例子:

‧  導航推測算法:這其實是一個非常簡單的算法,如果在給特定時間內位置和速度(或是角位置和角速度)都是已知的,而且在速度保持不變的情況下,速度值也不會有錯誤,那麼就可以計算出對象最後的「落腳點」,繼而進行位置預測。

      舉個例子,如果最後一個所知位置是 100 單位,而最後所知的速度是每秒 10 單位,那麼在未來 10 毫秒這段時間裡,該對象的位置點就是 100+10*0.01=100.1。

      當然,這是一個非常簡單的計算,因為它有一個假設前提,那就是位置和速度都是正確的(而且在主觀上,也不會受到其他測量問題的影響),同時速度也都是保持恆定。但事實上,所有這些假設在現實中幾乎都很難實現。

‧  卡爾曼預測器:它是基於著名的卡爾曼濾波器,用於在已有系統運行的數學模型中,減少系統傳感器噪音的。如果你需要瞭解更多和卡爾曼濾波器有關的資訊,請參見這裡。

 Alpha-beta-gamma:ABG 預測器和上文提到的卡爾曼預測器相關度很高,雖然數學應用更簡單,但是它的通用性卻比較一般。ABG 預測器會嘗試不斷估算速度和加速度,然後將這些數據應用於預測。

由於估值考慮到了實際數據,所以他們減少一部分估值誤差。配置 alpha、beta 和 gamma 參數也增強了響應能力。

可預測追蹤技術,是一種非常有用的虛擬現實/增強現實技術,而且也常用於減少表現時延問題。該技術執行起來雖然簡單,但是對專業水準要求較高,所以需要你多做一些思考和分析,因為就目前的虛擬現實和增強現實系統來說,減少時延是至關重要的。

VIA roadtovr

                                                                                                                                                                                                                 

沒有留言:

張貼留言