【小箘學(xué)VR】預(yù)測追蹤與VR系統(tǒng)延遲
作為Sensics公司CEO兼OSVR平臺(tái)聯(lián)合創(chuàng)始人,Yuval與他的團(tuán)隊(duì)設(shè)計(jì)了開源虛擬現(xiàn)實(shí)(OSVR)軟件平臺(tái)并構(gòu)建了OSVR系統(tǒng)最關(guān)鍵的系統(tǒng)實(shí)現(xiàn)。另一方面,他經(jīng)常會(huì)在自己的博客上分享自己對VR的觀點(diǎn)和知識(shí),這一次,我們了解到的就是關(guān)于VR預(yù)測追蹤的內(nèi)容。
在VR和AR系統(tǒng)中,預(yù)測追蹤涉及對一個(gè)物體或用戶身體的一部分的方向和位置變化的預(yù)測過程。舉例來說,Oculus開發(fā)的異步空間扭曲(ASW)就涉及對用戶頭部位置變化的預(yù)測。
預(yù)測追蹤的重要性
預(yù)測追蹤最常見的VR應(yīng)用之一就是用來降低VR頭顯的運(yùn)動(dòng)畫面延遲,因?yàn)橐话銇碚f,如果頭顯傳感器檢測人的運(yùn)動(dòng)到最終顯示屏顯示出對應(yīng)畫面的時(shí)間間隔大于20ms,人們就會(huì)感覺到畫面的滯后,從而導(dǎo)致頭暈。很明顯,從傳感器檢測數(shù)據(jù)傳輸?shù)接?jì)算機(jī)進(jìn)行處理然后進(jìn)行顯示總需要一定時(shí)間,我們不可能完全消除這段時(shí)間差,但人的很多動(dòng)作過程存在連續(xù)性,軟件可以預(yù)測運(yùn)動(dòng)軌跡,提前生成對應(yīng)的畫面,這樣我們就能夠減少明顯可被感知的延遲了。
據(jù)VR箘的了解,現(xiàn)在有很多虛擬現(xiàn)實(shí)應(yīng)用已經(jīng)應(yīng)用了預(yù)測追蹤技術(shù),不過實(shí)際上它在增強(qiáng)現(xiàn)實(shí)領(lǐng)域也非常重要,因?yàn)橛泻芏嘤脩粼诳焖僖苿?dòng)中仍然會(huì)同時(shí)看到現(xiàn)實(shí)場景和虛擬畫面疊加層并進(jìn)行對比。想象一下,如果我們在AR頭顯中觀看一個(gè)投影到顯示物體表面的虛擬圖像,這個(gè)圖像即使在我們轉(zhuǎn)頭時(shí)仍然應(yīng)該在視覺上與現(xiàn)實(shí)物體保持相對靜止,這樣才會(huì)讓我們感到它的確是這個(gè)物體的一部分。
增強(qiáng)現(xiàn)實(shí)一般使用Inside-Out進(jìn)行定位,頭顯上的攝像頭需要對物體進(jìn)行識(shí)別,不過攝像頭拍攝圖像,并使用處理器識(shí)別物體在圖像中的位置,然后在對應(yīng)位置渲染虛擬畫面都需要時(shí)間。當(dāng)我們應(yīng)用預(yù)測追蹤,就可以提前開始渲染,緩解處理器的壓力。
預(yù)測追蹤的原理
先從理想化的條件開始說起,如果我們看到一輛勻速運(yùn)動(dòng)的汽車,想要預(yù)測它在1s后的位置,估計(jì)我們很容易就能得到相當(dāng)正確的結(jié)果。我們知道汽車當(dāng)前的位置,然后估計(jì)一個(gè)比較接近的速度,然后就能獲得短時(shí)間之后汽車的位置。
當(dāng)然,一般來說我們的預(yù)測值與汽車在1s后的真實(shí)位置不可能總是100%相同:畢竟真實(shí)情況中汽車可能會(huì)在那段時(shí)間改變方向或者速度?;镜囊?guī)律是,你想要預(yù)測的時(shí)間越遠(yuǎn),你的預(yù)測準(zhǔn)確度就會(huì)急速下降:預(yù)測1s后汽車的位置變化很明顯比預(yù)測1分鐘后汽車的位置變化要準(zhǔn)確很多。
另一點(diǎn)則在于采集的數(shù)據(jù),你對汽車了解的越多,你的預(yù)測就越準(zhǔn)確。例如,如果你不僅知道汽車的速度,還知道它的加速度,那么1s后的位置變化就更精準(zhǔn)了。
因此,如果我們能夠采集到追蹤物體更多運(yùn)動(dòng)信息,預(yù)測追蹤的準(zhǔn)確度也更精確。在追蹤用戶頭部運(yùn)動(dòng)時(shí),如果我們知道人類頭部正常和極限的旋轉(zhuǎn)速度,就可以建立一個(gè)更精確的追蹤數(shù)據(jù)模型。同樣的,如果我們還要進(jìn)行眼球追蹤,我們可以使用眼球追蹤數(shù)據(jù)增強(qiáng)頭部追蹤預(yù)測的可靠性。
造成延遲的原因
前面已經(jīng)說過,預(yù)測追蹤的原因在于真實(shí)頭部運(yùn)動(dòng)到與這個(gè)運(yùn)動(dòng)對應(yīng)的畫面顯示在VR屏幕中存在時(shí)間差。這個(gè)時(shí)間差的來源有很多,例如:
傳感器本身的延遲。傳感器(最常見的就是陀螺儀)受限于帶寬和本身數(shù)據(jù)采集的頻率,并沒有及時(shí)上傳運(yùn)動(dòng)數(shù)據(jù)。而光學(xué)感應(yīng)元件也因?yàn)楫嬅嫠⑿碌葐栴}沒有在接收來自追蹤物體的光的同時(shí)向處理器發(fā)送圖像。
處理器延遲。來自傳感器的數(shù)據(jù)通常會(huì)使用一些傳感器融合算法進(jìn)行整合,當(dāng)處理器接收這些數(shù)據(jù)之后,由于需要運(yùn)行算法會(huì)產(chǎn)生一定延遲。
數(shù)據(jù)降噪延遲。傳感器的數(shù)據(jù)不可避免存在一些噪聲信號,為了避免錯(cuò)誤數(shù)據(jù)影響體驗(yàn),我們需要使用軟件端或硬件端低通算法對其進(jìn)行處理。
數(shù)據(jù)傳輸延遲。這一點(diǎn)當(dāng)然也很好理解,數(shù)據(jù)以電信號作為傳輸載體,而無論采取什么手段,電信號的傳輸肯定存在一些延遲。
渲染延遲。渲染畫面,尤其是復(fù)雜場景,GPU需要花費(fèi)一段時(shí)間才能完成工作,它們需要在將畫面幀傳輸?shù)狡聊恢按_定每個(gè)像素點(diǎn)的正確位置。
幀率延遲。如果一個(gè)顯示屏刷新率為100Hz,那么它顯示第一幀到第二幀之間必定存在10ms延遲。問題是GPU傳送的畫面幀在時(shí)間上并沒有與顯示屏刷新進(jìn)行同步,有時(shí)候即使畫面幀已經(jīng)傳送到顯示屏仍然需要等待一段時(shí)間才能顯示。
這里面大部分延遲都非常小,然而它們疊加起來就不容忽視了。而預(yù)測追蹤和其他技術(shù),例如異步時(shí)間扭曲(ATW)能夠有效減少那些比較明顯的延遲。
預(yù)測的范圍有多遠(yuǎn)?
關(guān)于這一點(diǎn),VR箘只能表示看情況。由于VR系統(tǒng)存在多個(gè)追蹤物體,我們需要將不同物體作為單獨(dú)的預(yù)測起點(diǎn),然后優(yōu)化到理想的狀態(tài)。
為了保證穩(wěn)定性,也許我們需要一直預(yù)測物體多個(gè)時(shí)間點(diǎn)的運(yùn)動(dòng)狀態(tài),下面來解釋為什么這是必要的:
?現(xiàn)在系統(tǒng)中不同追蹤物體的延遲并不相同。例如基于相機(jī)的手勢追蹤與頭部追蹤的延遲不同,但它們出現(xiàn)在同一個(gè)場景中,需要進(jìn)行同步繪制,這時(shí)候就需要用到多個(gè)時(shí)間點(diǎn)的預(yù)測追蹤結(jié)果。
?VR顯示屏有兩種形式,一種采用兩塊獨(dú)立屏幕,另一種則使用單一屏幕。后者,例如手機(jī)VR中,單一屏幕需要同時(shí)顯示兩只眼睛的圖像,然而屏幕是逐次顯示圖像,因此一只眼睛的圖像總是比另一只眼睛慢半幀(大約為8ms)。這樣的話,我們最好利用預(yù)測追蹤給另一只眼顯示8ms之后的圖像。
常見的預(yù)測算法:
下面是一些常見預(yù)測追蹤算法的例子:
航位推算法:這是一個(gè)比較簡單的算法,如果我們知道給定時(shí)間的位置和速度(或者角位置和角速度),假定最后測得的移動(dòng)距離和方向沒有誤差,我們就可以推算出一定時(shí)間之后的位置。舉例來說,方向固定,已知最后的位置是100單位而最后測得的速度是10單位每秒,那么10ms之后的位置就是100.1單位。這是一個(gè)非常簡化的計(jì)算方法,因?yàn)樗僭O(shè)最后測得數(shù)據(jù)都是準(zhǔn)確的,并且物體速度不變,而實(shí)際情況往往不是如此。
卡爾曼濾波:著名的卡爾曼濾波器一般用于去除傳感器噪聲,一般都有專門的數(shù)學(xué)模型,卡爾曼濾波的具體講解在英文維基百科上能夠找到。
ABG預(yù)測:ABG指的是阿爾法-貝塔-伽馬,它與卡爾曼預(yù)測關(guān)系也十分緊密,但通用性相對較差,而涉及到的數(shù)學(xué)也比較簡單。ABG通過連續(xù)不斷地估計(jì)速度和加速度參數(shù)進(jìn)行預(yù)測。由于估算值會(huì)參考實(shí)際數(shù)據(jù),因此它們可以測量部分噪聲點(diǎn)。配置參數(shù)(阿爾法-貝塔-伽馬)更注重響應(yīng)能力,而非降噪。
如果我們想要減少那些明顯的延遲,預(yù)測追蹤是一個(gè)有效并且挺常用的技術(shù)。其實(shí)現(xiàn)手段有簡單的也有復(fù)雜的,需要進(jìn)行一些數(shù)據(jù)分析,不過相信它對現(xiàn)在和未來的VR/AR系統(tǒng)延遲問題有很多幫助。
未經(jīng)授權(quán),禁止轉(zhuǎn)載,違者必將追究法律責(zé)任。
相關(guān)閱讀
-
兼容移動(dòng)VR頭顯的手機(jī)究竟有多少?
在全球28億臺(tái)智能手機(jī)中,只有1.91億臺(tái)(6.8%)能夠兼容主要的VR頭顯:Gear VR和谷歌Daydream。...
- 臉書公開新工具 360度視頻輕松制作
- 虛擬現(xiàn)實(shí)要上天!8月發(fā)射的VR衛(wèi)星干什么用?
- 移動(dòng)VR No.1究竟如何?GearVR控制器體驗(yàn)
- 30億美元收購VR公司 Facebook卻搞起了AR平臺(tái)
- 震動(dòng)已無法滿足 德國團(tuán)隊(duì)用電刺激模擬VR觸覺