陳劍釗, 陳 瑩, 宋佳潤
(西安電子科技大學(xué) 綜合業(yè)務(wù)網(wǎng)理論及關(guān)鍵技術(shù)國家重點(diǎn)實(shí)驗(yàn)室, 陜西 西安 710071)
隨著虛擬現(xiàn)實(shí)技術(shù)和計(jì)算機(jī)圖形學(xué)的不斷發(fā)展,全景視頻作為沉浸式媒體的重要表現(xiàn)形式,在虛擬現(xiàn)實(shí)領(lǐng)域扮演著重要的角色[1],受到了廣泛地追捧。憑借其良好的臨場感和沉浸感[2],全景視頻可以帶給用戶真實(shí)的觀看體驗(yàn)。目前,全景視頻已在影視娛樂、教育教學(xué)、工業(yè)仿真、醫(yī)學(xué)研究等眾多領(lǐng)域廣泛應(yīng)用。
傳統(tǒng)的全景視頻借助頭戴顯示設(shè)備,允許用戶在視點(diǎn)位置不變的情況下通過頭部旋轉(zhuǎn)運(yùn)動(dòng)自由地改變視角,觀看不同視角的視頻內(nèi)容。但這種視頻無法為用戶展現(xiàn)視點(diǎn)位置變化時(shí)對應(yīng)的視頻內(nèi)容。對此,國際標(biāo)準(zhǔn)化組織MPEG在MPEG-I[3]標(biāo)準(zhǔn)中提出了一種能夠反映視點(diǎn)位置變化的3DOF+視頻。這類視頻允許用戶的視點(diǎn)在一定范圍內(nèi)移動(dòng),同時(shí)提供視點(diǎn)運(yùn)動(dòng)帶來的視差效果,讓用戶能夠觀看到任意視點(diǎn)下的全景視頻內(nèi)容。當(dāng)用戶視點(diǎn)發(fā)生移動(dòng),對應(yīng)視角下的視頻內(nèi)容也會(huì)相應(yīng)地發(fā)生變化,但由于拍攝條件和網(wǎng)絡(luò)傳輸帶寬限制,通常情況下無法獲得任意視點(diǎn)位置上的全景視頻內(nèi)容。如何利用有限視點(diǎn)的全景視頻信息來獲得任意視點(diǎn)下的視頻內(nèi)容是當(dāng)前3DOF+視頻需要解決的關(guān)鍵問題。
基于深度圖像的虛擬視點(diǎn)合成技術(shù)(DIBR)[4]是預(yù)測虛擬視點(diǎn)視頻內(nèi)容的一種最重要的技術(shù)。利用3D-Warping投影,視圖融合,插值等技術(shù)可直接生成虛擬視點(diǎn)處的圖像。這種方法的繪制速度快,且生成的虛擬圖像較為真實(shí)。傳統(tǒng)的基于圖像的繪制技術(shù)針對的是普通平面視頻,而對于全景視頻,由于其映射方式[5-8]不同于平面視頻,已有的算法無法直接應(yīng)用于全景視頻?;贒IBR的算法框架,文獻(xiàn)[9]提出了全景視頻的虛擬視點(diǎn)合成方法,但這種算法的局限性在于只能對相同視角方向的全景視頻進(jìn)行虛擬視點(diǎn)合成,并且,該算法要求的輸入必須是經(jīng)過拼接處理的完整全景視頻。但全景視頻的拼接算法[10]復(fù)雜度較大,且拼接過程往往會(huì)帶來視頻質(zhì)量的損失。
為了能夠渲染任意視點(diǎn)的全景視頻,本文設(shè)計(jì)了一套基于視角方向的全景虛擬視圖合成系統(tǒng),該系統(tǒng)能夠利用極少視點(diǎn)位置的視頻信息,根據(jù)用戶視點(diǎn)與視角的變化的對應(yīng)關(guān)系合成出相應(yīng)的虛擬視圖,進(jìn)行渲染顯示,提供給用戶更好的臨場感與觀看體驗(yàn)。
針對視點(diǎn)位置變化的情況,本文設(shè)計(jì)搭建了一套基于視角方向的全景虛擬視圖合成系統(tǒng),該
系統(tǒng)能夠在用戶的視點(diǎn)發(fā)生運(yùn)動(dòng)的情況下,提供新視點(diǎn)位置的觀看視角朝向下的視頻內(nèi)容,給用戶以更強(qiáng)的沉浸感和更好的交互體驗(yàn)。該系統(tǒng)主要包括了虛擬視圖生成模塊和渲染顯示模塊。其中,虛擬視圖生成模塊使用基于深度圖像的繪制技術(shù),生成用戶新視點(diǎn)觀看視角下的視頻內(nèi)容。渲染顯示模塊負(fù)責(zé)對生成的虛擬視圖進(jìn)行效果增強(qiáng)與顯示,借助頭戴式顯示設(shè)備提供給用戶觀看。
2.1.1 視頻源
為了響應(yīng)MPEG-I關(guān)于3DOF+視頻源的要求,文獻(xiàn)[10]提供了多種不同相機(jī)排列分布下采集得到的視頻源序列。如何合理且有效地利用這些視頻源實(shí)現(xiàn)3DOF+視頻成為了一個(gè)熱門的話題。
在本文設(shè)計(jì)的全景視頻虛擬視圖合成系統(tǒng)中,直接使用文獻(xiàn)[11]提供的Facebook公司的360°相機(jī)Surround-360-X24采集獲得的ERP(Equirectangular Projection)格式[11]的紋理圖與深度圖來構(gòu)建用戶新視點(diǎn)位置觀看視角下的視頻內(nèi)容。整個(gè)相機(jī)的結(jié)構(gòu)如圖1所示,其可以采集24個(gè)不同視角朝向的視頻內(nèi)容,每個(gè)視角的視域范圍為180°×180°,其中各視角下的相機(jī)姿態(tài)如表1所示,(α,β,γ)表示歐拉角,用來反映與相機(jī)姿態(tài)對應(yīng)的視角朝向。圖2給出了不同用戶視角下的視頻源樣本,其中(a)為5號相機(jī)采集得到的,(b)為8號相機(jī)采集得到的。可以看到,不同視角對應(yīng)的視頻內(nèi)容具有明顯的差異。
圖1 Surround-360-X24相機(jī)結(jié)構(gòu)Fig.1 Surround-360-X24 camera structure
編號αβγ編號αβγ00°61.467 6°40.375 9°20°16.467 6°24.812 1°10°61.467 6°14.109 5°30°61.467 6°14.109 5°
續(xù) 表
(a) 5號相機(jī)拍攝內(nèi)容(a) View captured by camera5
(b) 8號相機(jī)拍攝內(nèi)容(b) View captured by camera8圖2 視頻源樣本Fig.2 Video source sample
2.1.2 視頻源的視角映射特性
用戶所能觀看的全景視頻內(nèi)容取決于其觀看視角朝向。Surround-360-X24相機(jī)能夠采集具有不同視角朝向、視域?yàn)?80°×180°的視頻內(nèi)容,如圖3所示,R和V分別表示不同用戶視角。借助旋轉(zhuǎn)變換,可以將R視角下的視頻內(nèi)容映射至V視角下的視頻內(nèi)容。接下來,將詳細(xì)分析各視角之間的映射特性。
圖3 視角映射特性示意圖Fig.3 View angle mapping characteristics
用戶的視角朝向與相機(jī)姿態(tài)一一對應(yīng),而相機(jī)姿態(tài)通常采用歐拉角[12-13]來描述。如圖4所示,在右手笛卡爾坐標(biāo)系下,歐拉角(α,β,γ)分別描述了繞X軸旋轉(zhuǎn)的俯仰角(pitch),繞Y軸旋轉(zhuǎn)的偏航角(yaw)以及繞Z軸旋轉(zhuǎn)的翻滾角(roll)。當(dāng)相機(jī)分別繞X軸旋轉(zhuǎn)α角度,繞Y軸旋轉(zhuǎn)β角度,繞Z軸旋轉(zhuǎn)γ角度時(shí),分別對應(yīng)的旋轉(zhuǎn)矩陣Rx(α),Ry(β),Rz(γ) 分別如公式(1),(2),(3)所示。
圖4 歐拉角示意圖Fig.4 Euler angles diagram
(1)
(2)
.(3)
Surround-360-X24中每個(gè)相機(jī)的姿態(tài)(0,β,γ)是由基準(zhǔn)姿態(tài)(0, 0, 0)先繞Y軸旋轉(zhuǎn)β角度再繞Z軸旋轉(zhuǎn)γ角度這樣的組合旋轉(zhuǎn)生成的。且不同的相機(jī)姿態(tài)可通過兩次旋轉(zhuǎn)操作進(jìn)行轉(zhuǎn)換,先旋轉(zhuǎn)至基準(zhǔn)姿態(tài),再旋轉(zhuǎn)至目標(biāo)相機(jī)姿態(tài)。具體過程如下:假設(shè)相機(jī)姿態(tài)為Er(0,β,γ),基準(zhǔn)姿態(tài)為Eb(0, 0, 0),目標(biāo)相機(jī)姿態(tài)為Et(0,β1,γ1)。參考相機(jī)先繞Z軸旋轉(zhuǎn)γ角度,再繞Y軸旋轉(zhuǎn)β角度,即可恢復(fù)至基準(zhǔn)姿態(tài)Eb,該過程的旋轉(zhuǎn)矩陣記為R1,如公式(4)表示。再由基準(zhǔn)姿態(tài)先繞Y軸旋轉(zhuǎn)β1角度,再繞Z軸旋轉(zhuǎn)γ1角度,即可轉(zhuǎn)換至目標(biāo)相機(jī)姿態(tài),該過程的旋轉(zhuǎn)矩陣記為R2,如公式(5)表示。
R1=Rv(-β)·Rz(-γ)
(4)
R2=Rz(γ1)·Rz(β1)
(5)
通過相機(jī)姿態(tài)的旋轉(zhuǎn)即可完成用戶視角的變換,由此可用于構(gòu)建任意用戶視角的視頻內(nèi)容,為下一步生成用戶新視點(diǎn)位置觀看視角下的虛擬視圖奠定了基礎(chǔ)。
2.1.3 虛擬視圖生成算法
當(dāng)用戶的視點(diǎn)位置發(fā)生變化,其觀看視角下的視頻內(nèi)容也相應(yīng)變化。為了提供給用戶在新視點(diǎn)位置觀看視角下的虛擬視圖,本系統(tǒng)中設(shè)計(jì)了一種基于視角方向的全景虛擬視圖生成算法。該算法主要利用DIBR技術(shù),借助參考視點(diǎn)位置的視圖及其深度信息,通過ERP投影,3D-Warping等技術(shù)直接生成目標(biāo)視點(diǎn)處的虛擬視圖。算法的流程如圖5所示,接下來將重點(diǎn)介紹各個(gè)環(huán)節(jié)的實(shí)現(xiàn)原理及主要步驟。
圖5 虛擬視圖生成算法框圖Fig.5 Block diagram of virtual view generation algorithm
2.1.3.1 參考視圖的三維投影
參考視圖三維投影的目標(biāo)是將獲得的參考視圖中每個(gè)像素投影至其三維空間點(diǎn)P(X,Y,Z)。如圖6所示,對于分辨率為W×H的ERP 格式視頻,左上角為原點(diǎn),像素坐標(biāo)用(m,n)表示,m[0,W),n[0,H),通過公式(6)投影至球面經(jīng)緯度坐標(biāo)(φ,θ)。再借助深度圖(m,n)坐標(biāo)對應(yīng)值,得到真實(shí)深度z,通過公式(7)可得到參考視圖對應(yīng)的空間坐標(biāo)系下三維點(diǎn)P(X,Y,Z)。
(6)
(7)
圖6 參考視圖的三維投影示意圖Fig.6 3D projection of the reference view diagram
2.3.1.2 虛擬視圖的空間坐標(biāo)計(jì)算
虛擬視圖的空間坐標(biāo)計(jì)算的主要任務(wù)是將參考視圖的三維點(diǎn)P(X,Y,Z)變換到虛擬視圖對應(yīng)的三維點(diǎn)P1(X1,Y1,Z1)。
首先,通過旋轉(zhuǎn)變換使參考視圖對應(yīng)的空間坐標(biāo)系與世界坐標(biāo)系對齊。參考視點(diǎn)位置的視角用其相機(jī)姿態(tài)Er(0,β,γ)表示,虛擬視點(diǎn)位置的視角用虛擬相機(jī)姿態(tài)用Ev(0,β1,γ1)表示,基于視頻源的視角映射特性,借助旋轉(zhuǎn)矩陣R1,將點(diǎn)P(X,Y,Z)旋轉(zhuǎn)至P′(X′,Y′,Z′)。該過程可用公式(8)來表示:
P′=R1·P
(8)
然后,如圖7所示,虛擬相機(jī)與參考相機(jī)在世界坐標(biāo)系下的偏移量T(Tx,Ty,Tz)。通過公式(9)即可獲得世界坐標(biāo)系下虛擬視點(diǎn)下空間點(diǎn)P″ (X″,Y″,Z″)。
(9)
圖7 空間坐標(biāo)映射示意圖Fig.7 Spatial coordinate mapping diagram
最后,借助旋轉(zhuǎn)矩陣R2,將點(diǎn)P″ (X″,Y″,Z″)旋轉(zhuǎn)至P1(X1,Y1,Z1),即獲得了虛擬視圖對應(yīng)的坐標(biāo)系下的三維空間坐標(biāo),如公式(10)所示。
P1=R2·P″
(10)
2.3.1.3 虛擬視圖的投影變換
虛擬視圖的投影變換是將獲得的虛擬視圖對應(yīng)的坐標(biāo)系下的三維點(diǎn)P1(X1,Y1,Z1)投影回像素平面。首先,通過公式(11),將三維空間坐標(biāo)投影至球面經(jīng)緯度坐標(biāo)(φ′,θ′)。再通過公式(12),將球面經(jīng)緯度坐標(biāo)(φ′,θ′)映射至二維圖像坐標(biāo)(m′,n′)。
(11)
(12)
通過以上幾個(gè)步驟,即可生成用戶在新視點(diǎn)位置觀看視角下的虛擬視圖。
通過上述的算法,能夠通過一個(gè)參考視點(diǎn)的信息來直接生成虛擬視點(diǎn)位置用戶視角下的視圖。但是只使用一個(gè)視點(diǎn)位置的信息往往會(huì)來帶來許多的空洞。這些空洞,可能是由遮擋造成的,也可能是由投影過程像素坐標(biāo)取值造成的。為了增強(qiáng)虛擬視圖的渲染顯示質(zhì)量,通常選用處于虛擬視點(diǎn)兩側(cè)的左右視點(diǎn)作為參考視點(diǎn)共同生成虛擬視圖,這是由于一個(gè)視點(diǎn)的遮擋區(qū)域在另一個(gè)視點(diǎn)中未必被遮擋。通過參考多個(gè)視點(diǎn)上的信息,絕大數(shù)由于遮擋引起的空洞都能利用不同參考視點(diǎn)的像素互相填充。本文直接采用文獻(xiàn)[14]提出了基于視點(diǎn)基線距離的視圖融合方法,對于左右視點(diǎn)映射變換得到的公共部分可通過虛擬視點(diǎn)與參考視點(diǎn)之間的距離進(jìn)行加權(quán),確定最后的像素值。
融合得到的視圖仍會(huì)存在一些無法填充的空洞,通常是由于參考視點(diǎn)上沒有捕獲到其對應(yīng)的像素信息。對于這些空洞,一般將其認(rèn)為是背景,借助視圖融合后的深度圖,搜索該空洞附近的背景像素進(jìn)行填充[15]。
在完成空洞填補(bǔ)之后,就可以將合成的虛擬視圖進(jìn)行渲染顯示了。本文設(shè)計(jì)的全景視頻虛擬視圖合成系統(tǒng)的顯示模塊[16]直接使用OpenGL、SDL以及OpenVR等相應(yīng)功能函數(shù)來完成對合成的虛擬視圖的顯示與渲染。用戶可以借助頭戴顯示設(shè)備進(jìn)行觀看。
本文采用運(yùn)行 Windows 10 64 位操作系統(tǒng)的主機(jī)作為測試平臺,展示系統(tǒng)的虛擬視圖合成效果。測試平臺的相關(guān)配置參數(shù)如表2所示。
表2 測試平臺硬件配置Tab.2 Test platform hardware configuration
本文搭建的全景視頻虛擬視圖合成系統(tǒng),其系統(tǒng)輸入有:參考視點(diǎn)的紋理圖與深度圖,參考視點(diǎn)的相機(jī)參數(shù),其中相機(jī)參數(shù)包括外部參數(shù)和內(nèi)部參數(shù)。外部相機(jī)參數(shù)主要為相機(jī)的位置和相機(jī)的姿態(tài),即視點(diǎn)的坐標(biāo)信息和用戶視角信息,相機(jī)的內(nèi)部參數(shù)主要有相機(jī)的焦距和主點(diǎn)偏移。
下面給出該系統(tǒng)合成效果的示例圖。使用Surround-360-X24中的5號相機(jī)與8號相機(jī)采集得到的紋理圖與深度圖,合成6號相機(jī)視角中的視頻內(nèi)容。其中,5號和8號相機(jī)采集樣本如圖2所示,如圖8所示,(a)為該系統(tǒng)合成的6號相機(jī)視點(diǎn)位置的虛擬視圖,(b)對應(yīng)的是6號相機(jī)采集到的真實(shí)視圖。
同時(shí),為了衡量當(dāng)前系統(tǒng)合成算法的性能,本文對合成的視圖進(jìn)行了客觀質(zhì)量PSNR以及主觀質(zhì)量評分,其中主觀質(zhì)量采取5分制的評分系統(tǒng),1~5分分別對應(yīng)于視頻顯示質(zhì)量“很差”、“差”、“一般”、“好”、“很好”。本文列舉了4組作為示例,如表3所示。實(shí)驗(yàn)結(jié)果表明,所合成的虛擬視圖平均客觀指標(biāo)PSNR為23 dB左右,但主觀質(zhì)量均能達(dá)到3分及以上,較為良好。
綜述所示,通過觀察與比較可以看出,本文提出的基于視角方向的全景視頻視圖合成算法可合成新視點(diǎn)位置的用戶視角方向上的虛擬視圖。
表3 質(zhì)量評價(jià)Tab.3 Quality evaluation
(a) 系統(tǒng)合成視圖(a) System synthesis view
(b) 6號相機(jī)拍攝內(nèi)容(b) View captured by camera6圖8 系統(tǒng)合成效果示意圖Fig.8 Example of panoramic virtual view synthesis system
針對當(dāng)前VR全景視頻無法應(yīng)對視點(diǎn)位置變化問題,本文從用戶觀看全景視頻的情景出發(fā),提出了一種基于視角方向的全景視頻虛擬視圖合成算法,同時(shí)設(shè)計(jì)搭建了一套完整的全景虛擬視圖合成系統(tǒng)。該系統(tǒng)允許用戶不僅可以在相同視點(diǎn)位置上更換視角觀看視頻內(nèi)容,而且可以移動(dòng)視點(diǎn)位置來觀看相應(yīng)視角內(nèi)的視頻內(nèi)容,讓用戶與視頻內(nèi)容有了一定的交互,提供給用戶更好的臨場感與觀看體驗(yàn)。