本發(fā)明涉及視線交互技術(shù)、語(yǔ)音交互技術(shù)與vr視頻壓縮編碼技術(shù)領(lǐng)域,特別涉及一種基于視線追蹤技術(shù)的vr視頻直播交互方法與裝置。該技術(shù)可用于虛擬現(xiàn)實(shí)視頻直播和游戲應(yīng)用、軍事瞄準(zhǔn)輔助、人機(jī)交互、智能家居、醫(yī)學(xué)研究以及心理分析等領(lǐng)域。
背景技術(shù):
:
人機(jī)交互(human-computerinteraction,簡(jiǎn)稱hci),顧名思義,是一門研究系統(tǒng)和用戶之間交互關(guān)系的學(xué)問(wèn)。從最初的紙帶打孔,到后來(lái)鍵盤輸入、鼠標(biāo)輸入的發(fā)展,再到當(dāng)下的觸摸操作,語(yǔ)音識(shí)別,以及有待進(jìn)一步發(fā)展的3d手勢(shì)、眼動(dòng)識(shí)別。每一次的技術(shù)革新及產(chǎn)品升級(jí),將會(huì)帶來(lái)人機(jī)交互方式的重大變化。當(dāng)下,世界各大公司均開始投入虛擬現(xiàn)實(shí)(vr,virtualreality)領(lǐng)域的研制,民用級(jí)vr的時(shí)代正式到來(lái)。vr技術(shù)的應(yīng)用場(chǎng)景很多,除當(dāng)下最大的熱點(diǎn)vr游戲和vr影視外,包括在醫(yī)療模擬教學(xué),軍事模擬實(shí)戰(zhàn)訓(xùn)練,工業(yè)仿真,虛擬課堂等都有極廣泛的應(yīng)用場(chǎng)景。而vr視頻直播則是當(dāng)下vr視頻的一個(gè)熱點(diǎn)。
目前,隨著vr技術(shù)的發(fā)展,在vr領(lǐng)域,交互方式大致分為以下幾種:動(dòng)作捕捉、觸覺(jué)反饋、眼球追蹤、肌電模擬、手勢(shì)追蹤、方向追蹤、語(yǔ)音交互等。vr視頻與普通視頻相比,視野大,分辨率高,這就導(dǎo)致數(shù)據(jù)量大,帶寬需求量大,這將大大阻撓vr視頻的大規(guī)模應(yīng)用。因此,解決vr系統(tǒng)中vr視頻的編碼,存儲(chǔ),碼流傳輸?shù)膯?wèn)題,實(shí)現(xiàn)低延遲是十分關(guān)鍵的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于:為解決vr視頻的數(shù)據(jù)量大,帶寬需求量大導(dǎo)致的延遲高的問(wèn)題,從而提供一種基于視線追蹤技術(shù)vr視頻直播交互方法及裝置。
本發(fā)明的技術(shù)方案如下:
一種基于視線追蹤技術(shù)的vr視頻直播交互方法,包括如下步驟:
s1:vr視頻預(yù)處理
s11:利用多個(gè)相機(jī)得到多路視頻源,對(duì)多路視頻源進(jìn)行拼接后得到融合后的球形vr視頻;
s12:對(duì)球形vr視頻進(jìn)行一次編碼處理;
s2:vr視頻深度處理
s21:一次解碼重新得到球形vr視頻;
s22:對(duì)球形vr視頻進(jìn)行映射處理得到平面vr視頻;
s23:根據(jù)終端反饋的控制信號(hào)對(duì)平面vr視頻進(jìn)行roi處理;
s24:進(jìn)行roi處理后的平面vr視頻進(jìn)行二次編碼處理,得到vr視頻流;
s3:再將vr視頻傳輸?shù)浇K端,終端對(duì)vr視頻流進(jìn)行二次解碼后,將平面vr視頻反映射成球形視頻,在顯示設(shè)備中對(duì)球形視頻進(jìn)行播放;播放過(guò)程中,終端根據(jù)用戶注視點(diǎn)的變化即視線追蹤技術(shù)向用于roi處理的模塊發(fā)送控制信息;
s4:重復(fù)s23、s3、s4步驟直到vr視頻直播結(jié)束;
s23中,roi處理過(guò)程中根據(jù)終端發(fā)送的控制信息來(lái)控制平面vr視頻的roi區(qū)域,從而即時(shí)更新顯示設(shè)備的數(shù)據(jù);
在上述過(guò)程中,僅在第一次進(jìn)行s2、s3、s4步驟時(shí),s2中不含s23,s21后直接進(jìn)入s24。
進(jìn)一步地,在s3中,終端具有語(yǔ)音交互功能,在捕捉用戶注視點(diǎn)時(shí),通過(guò)語(yǔ)音交互,用戶自由選擇眼動(dòng)模式或頭動(dòng)模式、控制頭顯的菜單選擇。
具體地,s11中,對(duì)多路視頻源進(jìn)行拼接的方法采用基于圖像不變特征的拼接方法,具體步驟包括:
s111:特征提取,包括建立尺度空間、極值點(diǎn)檢測(cè)、極值點(diǎn)的精確定位、生成特征向量;
s112:特征匹配,通過(guò)一定的搜索策略,基于bbf算法及ransac算法,找出待配準(zhǔn)的兩幅圖像中正確的特征點(diǎn)對(duì),然后計(jì)算變換矩陣;
s113:參數(shù)模型求解:根據(jù)匹配點(diǎn)對(duì)求解8-參數(shù)透視變換矩陣,實(shí)現(xiàn)圖像變換最終完成匹配工作。
優(yōu)選地,對(duì)球形vr視頻經(jīng)過(guò)映射處理得到平面vr視頻的方法為經(jīng)緯度映射法、正六面體映射法或圓柱體映射法。
進(jìn)一步地,s3中,視線追蹤的具體過(guò)程為:
s31:對(duì)圖像進(jìn)行預(yù)處理得到人眼圖像,對(duì)人眼圖像進(jìn)行平滑處理得到改善后的圖像;
s32:在改善后的圖像上找到瞳孔所在區(qū),獲取光斑坐標(biāo),計(jì)算注視點(diǎn)的位置;
s33:提取角膜反射中心,確定瞳孔的位置和大?。?/p>
s34:采用算法提取瞳孔輪廓特征點(diǎn),擬合瞳孔輪廓;
s35:進(jìn)行自適應(yīng)視點(diǎn)校準(zhǔn)。
另一方面,本發(fā)明提供一種基于視線追蹤技術(shù)的vr視頻直播交互裝置,包括依次連接的視頻預(yù)處理模塊,數(shù)據(jù)中心模塊和終端模塊;視頻預(yù)處理模塊包括用于將多路視頻源進(jìn)行拼接得到球形vr視頻的vr視頻初始獲取模塊,和用于將初始獲取模塊獲得的球形vr視頻進(jìn)行一次編碼的一次編碼模塊;數(shù)據(jù)中心模塊包括依次連接的一次解碼模塊、用于將球形vr視頻進(jìn)行映射處理的映射模塊、roi處理模塊和二次編碼模塊;終端模塊包括用于解碼的二次解碼模塊、顯示視頻的顯示模塊、用于控制顯示模塊顯示的視頻的控制模塊;控制模塊包括用于用戶對(duì)終端實(shí)現(xiàn)語(yǔ)音交互的語(yǔ)音交互模塊、用于用戶視線追蹤的視線追蹤模塊;眼球追蹤模塊與roi處理模塊連接,并向roi處理模塊反饋控制信號(hào)。
采用本發(fā)明提供的技術(shù)方案后,具有如下的有益效果:
(1)本發(fā)明利用視線追蹤技術(shù),獲取用戶的感興趣區(qū)域(roi),將感興趣區(qū)域與非感興趣區(qū)域以不同的分辨率傳輸,同時(shí)通過(guò)眼球追蹤模塊獲取roi數(shù)據(jù)的變動(dòng),壓縮編碼模塊可即時(shí)作出處理并反饋至終端,這樣既保證了看到的畫面的質(zhì)量,又大幅度降低了傳輸過(guò)程中帶寬需求量,從而降低vr設(shè)備對(duì)硬件的要求。
(2)本發(fā)明利用眼球追蹤代替頭部運(yùn)動(dòng)感知控制,改革vr設(shè)備交互的方式,解決了基于陀螺儀的頭部運(yùn)動(dòng)感知方式來(lái)鎖定目標(biāo)的繁瑣、不自然及延遲高等問(wèn)題。
(3)因?yàn)槿说耐嗖煌?,佩戴頭顯方式不同,注視點(diǎn)不同都會(huì)導(dǎo)致人的瞳孔偏離出瞳位置,造成實(shí)時(shí)觀看中畸變形狀不同,影響用戶體驗(yàn),硬件方面對(duì)于畸變和色散的修正并不完善,大部分是基于圖形算法層面進(jìn)行補(bǔ)償,這只是一定程度的減少了畸變和色差。本發(fā)明中通過(guò)眼球追蹤技術(shù)獲得人眼的注視點(diǎn),人眼和鏡片的相對(duì)位置,能夠?qū)崟r(shí)矯正。
(4)目前市場(chǎng)上主流的vr頭盔主要通過(guò)用戶頭部移動(dòng)、陀螺儀等設(shè)備來(lái)進(jìn)行交互控制,具體來(lái)說(shuō),當(dāng)用戶戴著虛擬現(xiàn)實(shí)頭盔進(jìn)入一個(gè)虛擬時(shí)空中,用戶在這個(gè)虛擬世界所體驗(yàn)到的視角,主要取決于頭部轉(zhuǎn)動(dòng)所及之處;然而,通過(guò)頭部控制來(lái)決定視角,用戶往往很不適應(yīng),這種較為傳統(tǒng)的交互方式與人類的天性習(xí)慣有所違背,容易造成眩暈,因?yàn)樵诂F(xiàn)實(shí)生活中,人們習(xí)慣于用眼控、頭控結(jié)合的方式來(lái)感知這個(gè)世界,頭動(dòng)控制視野、眼動(dòng)鎖定目標(biāo),這就造成了體驗(yàn)不佳,而在本發(fā)明的vr視頻直播交互方法中,它對(duì)于人眼位置的檢測(cè),能夠?yàn)楫?dāng)前所處視角提供最佳的3d效果,使vr頭顯呈現(xiàn)出的圖像更自然,延遲更小,同時(shí),由于眼球追蹤技術(shù)可以獲知人眼的真實(shí)注視點(diǎn),從而得到虛擬物體上視點(diǎn)位置的景深。
附圖說(shuō)明
圖1為本發(fā)明的流程原理圖;
圖2為vr視頻拼接流程;
圖3為本發(fā)明s2中的經(jīng)緯圖采樣示意圖;
圖4為本發(fā)明s2中的正六面體采樣示意圖;
圖5為本發(fā)明s2中的圓柱體采樣示意圖;
圖6為本發(fā)明s2中roi處理過(guò)程中的全景畫面劃分圖;
圖7為本發(fā)明s2中roi處理過(guò)程中的區(qū)域分割圖;
圖8為本發(fā)明s4中的眼球追蹤模塊的整體流程圖;
圖9為本發(fā)明s4中的眼球追蹤模塊的工作流程圖;
圖10為本發(fā)明的裝置模塊圖。
具體實(shí)施方式
本說(shuō)明書中公開的所有特征,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
下面結(jié)合附圖對(duì)本發(fā)明作詳細(xì)說(shuō)明。
一種基于視線追蹤技術(shù)的vr視頻直播交互方法,如圖1所示,包括如下步驟:
s1:vr視頻預(yù)處理
s11:利用多個(gè)相機(jī)得到多路視頻源,對(duì)多路視頻源進(jìn)行拼接后得到融合后的球形vr視頻;視頻拼接的方法采用不變特征匹配的拼接方法,如圖2所示分為以下幾步:
s11:特征提取,包括建立尺度空間、極值點(diǎn)檢測(cè)、極值點(diǎn)的精確定位、生成特征向量;
s12:特征匹配,通過(guò)一定的搜索策略,基于bbf算法及ransac算法,找出待配準(zhǔn)的兩幅圖像中正確的特征點(diǎn)對(duì),然后計(jì)算變換矩陣;
s13:參數(shù)模型求解:根據(jù)匹配點(diǎn)對(duì)求解8-參數(shù)透視變換矩陣,實(shí)現(xiàn)圖像變換最終完成匹配工作,具體地,8-參數(shù)透視變換矩陣的過(guò)程如下:
針對(duì)圖像的全局變換,通過(guò)齊次坐標(biāo)的性質(zhì),將待匹配圖像變換到參考圖像的坐標(biāo)系中以實(shí)現(xiàn)幾何變換:
可選取4對(duì)匹配點(diǎn)對(duì)可利用線性方程組求的矩陣的各參數(shù)。
s12:對(duì)球形vr視頻進(jìn)行一次編碼處理;
s2:vr視頻深度處理
s21:一次解碼重新得到球形vr視頻;
s22:對(duì)球形vr視頻進(jìn)行映射處理得到平面vr視頻;
s23:根據(jù)終端反饋的控制信號(hào)對(duì)平面vr視頻進(jìn)行roi處理;
s24:進(jìn)行roi處理后的平面vr視頻進(jìn)行二次編碼處理,得到vr視頻流;
對(duì)于s21,現(xiàn)有的視頻編碼都是針對(duì)2d視頻,所以需要將拼接好的vr視頻進(jìn)行映射處理后進(jìn)行傳輸,映射處理的方法分為經(jīng)緯圖映射法和正六面體映射法,下面,將分別闡述這兩種方法的詳細(xì)過(guò)程:
a.經(jīng)緯度映射法
平面視頻是從一個(gè)完整或部分的球面經(jīng)過(guò)對(duì)方位角θ和俯仰角φ進(jìn)行均勻采樣得到的,如圖3所示。對(duì)于一個(gè)完整的球面,θ的取值范圍是[-π,π],φ的取值范圍是[-π/2,π/2];
平面視頻幀對(duì)應(yīng)的球面的水平視角范圍為[-hfov/2,hfov/2],垂直視角范圍為[-vfov/2,vfov/2],平面視頻幀中像素的平面坐標(biāo)(x,y)與球面坐標(biāo)(θ,φ)的對(duì)應(yīng)關(guān)系為:
θ=2×(hfov÷360×π×(x-w÷2+0.5)÷w
φ=(vfov÷180)×π×(h÷2-y-0.5)÷h
b.正六面體映射法
平面視頻是將一個(gè)完整的球面映射為正六面體,并將正六面體的六個(gè)面按某種方式排列得到的。如圖4所示,首先確定球面的外切正六面體,六個(gè)面與球面的切點(diǎn)的球面坐標(biāo)分別為(-π/2,0)、(0,0)、(π/2,0)、(π,0)、(0,π/2)和(0,-π/2),將這六個(gè)切點(diǎn)所在的正方形切面分別記為左面、前面、右面、背面、頂面和底面。
連接某個(gè)切面內(nèi)的所有點(diǎn)和球面中心,與球面的所有交點(diǎn)構(gòu)成的區(qū)域就是該切面對(duì)應(yīng)的球面區(qū)域。將某個(gè)切面內(nèi)像素的局部坐標(biāo)記為(xlocal,ylocal)。將每個(gè)正方形切面的邊長(zhǎng)用ncubic表示,定義中間變量xnormal和ynormal的值為:
xnormal=(2×xlocal+1-ncubic)÷ncubic
ynormal=(2×ylocal+1-ncubic)÷ncubic
各切面中像素的局部坐標(biāo)(xlocal,ylocal)和球面坐標(biāo)(θ,φ)的對(duì)應(yīng)關(guān)系如下:
①左面:
θ=arctg(xnormal)-π÷2
φ=arctg(ynormal÷sqrt(1+xnormal2))
②前面:
θ=arctg(xnormal)
φ=arctg(ynormal÷sqrt(1+xnormal2))
③右面:
θ=arctg(xnormal)+π÷2
φ=arctg(ynormal÷sqrt(1+xnormal2))
④背面:
φ=arctg(ynormal÷sqrt(1+xnormal2))
當(dāng)xnormal<0時(shí),
θ=arctg(xnormal)+π
當(dāng)xnormal>=0時(shí),
θ=arctg(xnormal)-π
⑤頂面:
φ=π÷2-arctg(sqrt(xnormal2+ynormal2))
當(dāng)xnormal>=0時(shí),
θ=arccos(ynormal÷sqrt(xnormal2+ynormal2))
當(dāng)xnormal<0時(shí),
θ=-arccos(ynormal÷sqrt(xnormal2+ynormal2))
⑥底面:
φ=arctg(sqrt(xnormal2+ynormal2))-π÷2
當(dāng)xnormal>=0時(shí),
θ=arccos(-ynormal÷sqrt(xnormal2+ynormal2))
當(dāng)xnormal<0時(shí),
θ=-arccos(-ynormal÷sqrt(xnormal2+ynormal2))
c.圓柱體映射法
平面視頻是從一個(gè)球面上按照?qǐng)A柱體采樣得到的,如圖5所示。平面視頻幀對(duì)應(yīng)的球面的水平視角范圍為[-hfov/2,hfov/2],垂直視角范圍為[-vfov/2,vfov/2]。平面視頻幀中像素的平面坐標(biāo)(x,y)和球面坐標(biāo)(θ,φ)的對(duì)應(yīng)關(guān)系為:
θ=(hfov÷360)×2×π×(x-w÷2+0.5)÷w
φ=-arctg(tan(vfov÷360×π)×(h-2×y+1)÷h)
基于終端反饋的控制信號(hào)對(duì)平面vr視頻進(jìn)行roi處理的過(guò)程具體如下:首先,將一幅全景畫面均勻劃成9個(gè)區(qū)域,如圖6所示,區(qū)域5即為roi區(qū)域。
設(shè)映射后畫面的大小為w×h,則每塊區(qū)域的大小為
如圖7所示,我們將區(qū)域4和6分割成寬度不等的區(qū)域,再取其中心部分的一列像素,第一列的寬度設(shè)為a0,最后一列的寬度為a0+np,則有
s3:再將vr視頻傳輸?shù)浇K端,終端對(duì)vr視頻流進(jìn)行二次解碼后,將平面vr視頻反映射成球形視頻,在顯示設(shè)備中對(duì)球形視頻進(jìn)行播放;播放過(guò)程中,終端根據(jù)用戶注視點(diǎn)的變化即視線追蹤技術(shù)向用于roi處理的模塊發(fā)送控制信息;具體地,播放過(guò)程中,當(dāng)眼球追蹤識(shí)別到人的關(guān)注區(qū)域產(chǎn)生變化(如從5區(qū)域變到了4區(qū)域),則通過(guò)顯示設(shè)備經(jīng)由數(shù)據(jù)中心給壓縮編碼模塊傳送一個(gè)反饋信號(hào),則視頻在roi區(qū)域處理的時(shí)候變換roi區(qū)域重新下采樣,再經(jīng)由數(shù)據(jù)中心傳到終端,而此時(shí)顯示設(shè)備的畫面產(chǎn)生了變化,原來(lái)4區(qū)域的圖像變到了畫面中央,確保roi區(qū)域始終處在畫面中央,即捕捉到的眼球的動(dòng)作用來(lái)控制畫面切換,保證用戶的觀看舒適度。
同時(shí),s4中,終端具有語(yǔ)音交互功能,在捕捉用戶注視點(diǎn)時(shí),通過(guò)語(yǔ)音交互,用戶自由選擇眼動(dòng)模式或頭動(dòng)模式,通過(guò)語(yǔ)音交互還能控制頭顯的菜單選擇,比如:音量,亮度,選擇哪個(gè)視頻源。
眼球追蹤模塊的整體流程圖如圖8所示,終端顯示器為頭盔顯示器,簡(jiǎn)稱頭顯,頭顯設(shè)備上內(nèi)置低功耗紅外光源、光學(xué)傳感器、眼球追蹤傳感器、圖像處理器,并擁有視點(diǎn)計(jì)算核心。在眼球追蹤過(guò)程中,采用瞳孔—角膜反射技術(shù),通過(guò)圖像分析計(jì)算角膜中心與瞳孔中心的位置信息,得到瞳孔角膜矢量,再結(jié)合眼睛光學(xué)估計(jì)模型可以較為精確地計(jì)算出觀測(cè)者視線方向和關(guān)注點(diǎn)位置。
當(dāng)頭顯開啟,紅外光源開始工作,照射眼球,此時(shí)眼球追蹤傳感器模塊運(yùn)行,進(jìn)行定位和標(biāo)定,標(biāo)定分為靜態(tài)初始化標(biāo)定和后期頭發(fā)發(fā)生改變后的自適應(yīng)標(biāo)定,靜態(tài)初始化標(biāo)定指在頭部保持基本不動(dòng)的狀態(tài)下完成瞳孔中心到參考平面上關(guān)注點(diǎn)的映射,標(biāo)定時(shí)眼睛先后注視屏幕上若干個(gè)標(biāo)記點(diǎn),同時(shí)記錄下相應(yīng)的瞳孔中心、場(chǎng)景信息以及屏幕標(biāo)定點(diǎn)位置利用多項(xiàng)式、神經(jīng)網(wǎng)絡(luò)或區(qū)域映射的方法建立映射模型。然后對(duì)標(biāo)定的數(shù)據(jù)進(jìn)行分析,尋找并獲得用戶眼球的關(guān)注點(diǎn),即感興趣區(qū)域roi,發(fā)送控制信號(hào)到壓縮編碼模塊,當(dāng)用戶頭部發(fā)生運(yùn)動(dòng)時(shí),模塊會(huì)進(jìn)行自適應(yīng)的標(biāo)定修復(fù),通過(guò)補(bǔ)償算法重新計(jì)算確定roi。
眼球追蹤器的工作流程如圖9所示:
s31:對(duì)圖像進(jìn)行預(yù)處理得到人眼圖像,對(duì)人眼圖像進(jìn)行平滑處理得到改善后的圖像;同時(shí)進(jìn)行場(chǎng)景定位,場(chǎng)景定位即實(shí)時(shí)檢測(cè)出顯示設(shè)備上若干個(gè)紅外燈的在場(chǎng)景攝像機(jī)圖像中的位置,它在標(biāo)定和視線跟蹤的時(shí)候起著重要作用,是用來(lái)克服頭部運(yùn)動(dòng)影響的關(guān)鍵。
s32:在改善后的圖像上找到瞳孔所在區(qū),獲取光斑坐標(biāo),計(jì)算注視點(diǎn)的位置。
s33:提取角膜反射中心,確定瞳孔的位置和大小,瞳孔的位置為眼部攝像機(jī)拍攝的圖像中提取的瞳孔中心的位置。
s34:采用算法提取瞳孔輪廓特征點(diǎn),擬合瞳孔輪廓。
s35:進(jìn)行自適應(yīng)視點(diǎn)校準(zhǔn)。
上述的基于視線追蹤技術(shù)的vr視頻直播交互方法對(duì)應(yīng)的裝置,包括依次連接的視頻預(yù)處理模塊,數(shù)據(jù)中心模塊和終端模塊。
視頻預(yù)處理模塊包括用于將多路視頻源進(jìn)行拼接得到球形vr視頻的vr視頻初始獲取模塊,和用于將初始獲取模塊獲得的球形vr視頻進(jìn)行一次編碼的一次編碼模塊。
數(shù)據(jù)中心模塊包括依次連接的一次解碼模塊、用于將球形vr視頻進(jìn)行映射處理的映射模塊、roi處理模塊和二次編碼模塊。
終端模塊包括用于解碼的二次解碼模塊、顯示視頻的顯示模塊、用于控制顯示模塊顯示的視頻的控制模塊。
控制模塊包括用于用戶對(duì)終端實(shí)現(xiàn)語(yǔ)音交互的語(yǔ)音交互模塊、用于用戶視線追蹤的視線追蹤模塊。
眼球追蹤模塊與roi處理模塊連接,并向roi處理模塊反饋控制信號(hào)。
本發(fā)明不局限于上述具體實(shí)施例,應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)人員無(wú)需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思做出諸多修改和變化??傊?,凡本技術(shù)領(lǐng)域中技術(shù)人員依本發(fā)明的構(gòu)思在現(xiàn)有技術(shù)的基礎(chǔ)上通過(guò)邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的技術(shù)方案,皆應(yīng)在由權(quán)利要求書所確定的保護(hù)范圍內(nèi)。