劉 煦 李 琛 宋 利 解 蓉
(上海交通大學(xué)圖像通信與網(wǎng)絡(luò)工程研究院 上海 200240)
全景視頻是新一代的視頻顯示技術(shù),人們可以任意在拍攝角度周圍360度地觀看動(dòng)態(tài)視頻,而不受時(shí)間、空間和地域的限制,有一種身臨其境的體驗(yàn)。全景視頻不再是單單顯示靜態(tài)圖片的形式,而是具有景深、動(dòng)態(tài)圖像、聲音等很多因子,具備聲畫(huà)對(duì)位、聲畫(huà)同步的特性,有著良好的沉浸感,極有可能成為未來(lái)的視頻新型載體。然而,相比于專業(yè)的攝影設(shè)備,視頻若是由手持式的設(shè)備拍攝,畫(huà)面的抖動(dòng)會(huì)非常影響視覺(jué)舒適度。而且由于全景視頻廣視域的特性,其對(duì)抖動(dòng)的敏感度要遠(yuǎn)高于一般的平面視頻。
視頻穩(wěn)像技術(shù)是一種后處理技術(shù),指利用相關(guān)算法對(duì)抖動(dòng)的視頻序列進(jìn)行穩(wěn)定處理。然而,現(xiàn)有的大多數(shù)穩(wěn)像算法都是基于平面視頻的,并不適用于全景視頻。因此,為了提升觀看者的體驗(yàn),需要針對(duì)全景視頻進(jìn)行視頻穩(wěn)像算法的研究。
本文提出一種利用3D旋轉(zhuǎn)模型對(duì)全景視頻進(jìn)行穩(wěn)像處理的方法。與2D模型相比,3D模型可以更準(zhǔn)確地描述真實(shí)的相機(jī)運(yùn)動(dòng)。在實(shí)際應(yīng)用中,由于相機(jī)的平移運(yùn)動(dòng)對(duì)視頻的影響遠(yuǎn)小于旋轉(zhuǎn)運(yùn)動(dòng),可以忽略不計(jì),所以只考慮相機(jī)的旋轉(zhuǎn)運(yùn)動(dòng),使用3D旋轉(zhuǎn)模型來(lái)描述相機(jī)路徑。提取并跟蹤連續(xù)幀的特征點(diǎn),計(jì)算每對(duì)相鄰幀之間的旋轉(zhuǎn),為了減少數(shù)據(jù)冗余,使用歐拉角表征旋轉(zhuǎn)模型的參數(shù)。在路徑平滑的過(guò)程中,引入一種基于樣條擬合的改進(jìn)方法,可以有效地分離抖動(dòng)和主觀運(yùn)動(dòng)并消除高頻的抖動(dòng),生成穩(wěn)定的相機(jī)路徑。基于相機(jī)的真實(shí)路徑以及生成的穩(wěn)定路徑,對(duì)視頻幀進(jìn)行投影變換,輸出穩(wěn)像后的視頻。本文的主要貢獻(xiàn)如下:
1) 使用3D旋轉(zhuǎn)模型來(lái)描述相機(jī)運(yùn)動(dòng),并使用歐拉角來(lái)表征旋轉(zhuǎn)參數(shù),可以減少數(shù)據(jù)冗余。
2) 在路徑平滑的過(guò)程中,提出一種基于樣條插值的改進(jìn)方法,添加了新的約束項(xiàng)以及預(yù)處理操作,相比傳統(tǒng)方法更加準(zhǔn)確可靠。
視頻穩(wěn)像算法指的是應(yīng)用圖像處理的方法對(duì)相機(jī)的抖動(dòng)進(jìn)行補(bǔ)償,減弱或消除視頻幀序列間不規(guī)則的平移、旋轉(zhuǎn)和縮放等失真情況,從而使視頻看起來(lái)更穩(wěn)定。根據(jù)使用的相機(jī)運(yùn)動(dòng)模型的不同,穩(wěn)像算法大致可以分為2D方法和3D方法。
2D方法使用一系列的二維變換矩陣表示相機(jī)運(yùn)動(dòng)。文獻(xiàn)[1]通過(guò)對(duì)每個(gè)參數(shù)進(jìn)行低通濾波(如高斯濾波)的方法消除抖動(dòng)。文獻(xiàn)[2]使用L1范數(shù)生成穩(wěn)定的相機(jī)路徑。文獻(xiàn)[3]將視頻幀空間劃分為網(wǎng)絡(luò)進(jìn)一步地優(yōu)化穩(wěn)定路徑。然而,由于2D運(yùn)動(dòng)不能刻畫(huà)深度信息,對(duì)于一些復(fù)雜的場(chǎng)景效果欠佳。
3D方法通過(guò)重建三維場(chǎng)景的方法估計(jì)相機(jī)的運(yùn)動(dòng)軌跡。文獻(xiàn)[4]提出一種利用深度信息進(jìn)行3D全局運(yùn)動(dòng)估計(jì)的方法。文獻(xiàn)[5]提出保留內(nèi)容進(jìn)行幀變換的3D穩(wěn)像方法。由于重建三維結(jié)構(gòu)信息的過(guò)程較為復(fù)雜且魯棒性較差,因而使用范圍有限。
全景視頻穩(wěn)像的相關(guān)研究相對(duì)較少。文獻(xiàn)[6]提出混合3D-2D算法,使用一種新的運(yùn)動(dòng)模型來(lái)消除視頻中的抖動(dòng)。文獻(xiàn)[7]將相機(jī)旋轉(zhuǎn)與其他運(yùn)動(dòng)解耦,并消除無(wú)意旋轉(zhuǎn)造成的抖動(dòng),然后使用基于網(wǎng)格的幀變換方法處理剩余的抖動(dòng)。這些方法均使用約束優(yōu)化的方法來(lái)平滑路徑,計(jì)算復(fù)雜度較高。
圖1展示了本文算法的大致流程。由于使用的是3D旋轉(zhuǎn)模型,所以首先要將視頻投影到3D單位球面上,然后使用特征點(diǎn)提取跟蹤的方法計(jì)算每對(duì)相鄰幀之間的旋轉(zhuǎn),合成真實(shí)的相機(jī)路徑。接著,引入一種基于樣條插值的改進(jìn)方法,對(duì)相機(jī)路徑進(jìn)行平滑,生成穩(wěn)定的相機(jī)路徑。最后,對(duì)視頻幀進(jìn)行投影變換,輸出穩(wěn)像后的視頻。
圖1 全景視頻穩(wěn)像算法流程
全景視頻是以經(jīng)緯度投影(ERP)格式呈現(xiàn)的,需要將其映射到3D球面上,以匹配后續(xù)的3D旋轉(zhuǎn)模型。圖2描述了整個(gè)算法的映射過(guò)程,給定ERP格式的視頻幀,長(zhǎng)為H,寬為W,對(duì)于像素坐標(biāo)p=[px,py],通過(guò)映射函數(shù)φ(·)將其映射到3D球面上對(duì)應(yīng)的位置P=[Px,Py,Pz],后面經(jīng)過(guò)相機(jī)路徑估計(jì)與平滑后,使用逆函數(shù)φ-1(·)進(jìn)行還原。映射函數(shù)如下:
圖2 全景視頻ERP格式與3D球面模型的映射關(guān)系
(1)
(2)
對(duì)于全景視頻,由于相機(jī)的平移運(yùn)動(dòng)對(duì)視頻的影響遠(yuǎn)小于旋轉(zhuǎn)運(yùn)動(dòng),可以忽略不計(jì),所以只考慮相機(jī)的旋轉(zhuǎn)運(yùn)動(dòng),使用3D旋轉(zhuǎn)模型來(lái)描述運(yùn)動(dòng)路徑。
(3)
該問(wèn)題可以使用Kabsch算法[9]來(lái)求解未知量R的最小值Rt,即旋轉(zhuǎn)矩陣。然而,矩陣形式包含了過(guò)多的冗余信息,用9個(gè)數(shù)來(lái)表示只需要3個(gè)數(shù)表示的量,占用空間大且容易產(chǎn)生非法數(shù)據(jù)。因此,在后續(xù)的路徑平滑過(guò)程中,使用歐拉角來(lái)表征相機(jī)的旋轉(zhuǎn)。旋轉(zhuǎn)矩陣Rt與相應(yīng)的歐拉角Et之間的轉(zhuǎn)換關(guān)系如下:
(4)
式中:Rij表示旋轉(zhuǎn)矩陣Rt中的i行j列的元素;φ、θ、ψ表示歐拉角Et的各軸角度。
Ct+1=Et+Ct?Ct=Et-1+…+E1+E0
(5)
(1) 低通濾波:通過(guò)對(duì)真實(shí)路徑進(jìn)行低通濾波,去除掉高頻的抖動(dòng),如高斯濾波等。這個(gè)方法簡(jiǎn)單有效,但是難點(diǎn)在于滑動(dòng)窗口大小的設(shè)定,很難做到完美地分離主觀運(yùn)動(dòng)與抖動(dòng)。
(2) 樣條擬合:通過(guò)一系列形值點(diǎn)的一條光滑曲線,數(shù)學(xué)上通過(guò)求解三彎矩方程組得出曲線函數(shù)組的過(guò)程,可以用作插值或平滑[10]。此外引入平滑因子S,動(dòng)態(tài)調(diào)整紐結(jié)點(diǎn)的個(gè)數(shù),保證數(shù)據(jù)之間的連續(xù)性及平滑性。假設(shè)xi為幀數(shù),yi為原始數(shù)據(jù),f()為擬合函數(shù),S按照如下的方式調(diào)整(wi為權(quán)重):
(6)
樣條擬合方法的問(wèn)題在于容易造成過(guò)擬合現(xiàn)象,即消除抖動(dòng)的同時(shí)也消除了主觀運(yùn)動(dòng)。
(3) 基于樣條擬合的改進(jìn)算法:為了解決樣條擬合方法的問(wèn)題,引入一個(gè)新的約束條件,使得擬合結(jié)果不會(huì)過(guò)于偏離原始數(shù)據(jù)點(diǎn)。定義閾值th及thoa,規(guī)定擬合值f(x)與原始數(shù)據(jù)y的距離在±th之間的數(shù)據(jù)點(diǎn)的個(gè)數(shù)大于thoa。如果不滿足該條件,減少平滑因子S的值,以避免過(guò)擬合。公式如下:
(7)
式中:h(x)表示整條路徑的篩選結(jié)果,根據(jù)其總和來(lái)調(diào)整平滑因子S。
(8)
式中:f(xi)代表第i幀數(shù)據(jù)的擬合值;h(xi)為對(duì)應(yīng)的篩選結(jié)果。
除此之外,在進(jìn)行樣條擬合之前,對(duì)數(shù)據(jù)進(jìn)行預(yù)處理操作,使用小核高斯濾波函數(shù)預(yù)先消除部分高頻噪聲,使得擬合結(jié)果更加準(zhǔn)確。
圖3展示了三種方法的平滑結(jié)果??梢钥闯觯屯V波方法的效果不夠好,保留了部分抖動(dòng);樣條擬合方法出現(xiàn)了過(guò)擬合的現(xiàn)象,擬合結(jié)果過(guò)于偏離原始數(shù)據(jù);而本文改進(jìn)方法可以有效地消除高頻噪聲,且很好地保留了主觀運(yùn)動(dòng),沒(méi)有出現(xiàn)過(guò)擬合現(xiàn)象。綜上本文改進(jìn)方法表現(xiàn)更好。
(a) 原始數(shù)據(jù) (b) 低通濾波方法
(c) 樣條擬合方法 (d) 改進(jìn)算法圖3 不同方法的路徑平滑結(jié)果
拍攝多種場(chǎng)景下的高清全景視頻,包括室內(nèi)、室外、走路、跑步等,分辨率為3 840×1 920,幀頻為30 幀/s;實(shí)驗(yàn)基于MATLAB實(shí)現(xiàn),設(shè)備選用Intel Core i7-6900K CPU。在實(shí)驗(yàn)中,對(duì)單幀圖像的處理時(shí)間約300 ms,其中圖像處理部分占用了大量時(shí)間,后續(xù)可以通過(guò)GPU加速的方法進(jìn)一步優(yōu)化。
圖4、圖5展示了走路場(chǎng)景下抖動(dòng)視頻的穩(wěn)像效果,以及各軸歐拉角的平滑效果??梢钥闯觯鄼C(jī)運(yùn)動(dòng)路徑與視頻畫(huà)面均獲得了很好的穩(wěn)定效果,驗(yàn)證了該算法的有效性。
(a) 原始視頻 (b) 穩(wěn)像視頻圖4 走路場(chǎng)景下的穩(wěn)像結(jié)果圖
(a) 原圖 (b) X軸歐拉角
(c) Y軸歐拉角 (d) Z軸歐拉角圖5 走路場(chǎng)景下各軸歐拉角的數(shù)據(jù)平滑效果圖
根據(jù)文獻(xiàn)[11]提出的評(píng)價(jià)準(zhǔn)則,穩(wěn)像算法的性能可以使用峰值信噪比(PSNR)進(jìn)行評(píng)價(jià),定義如下:
(9)
(10)
式中:It和It+1分別表示t和t+1時(shí)刻的兩幀圖像,尺寸為M×N;MSE表示幀間的均方誤差。計(jì)算每一對(duì)相鄰視頻幀之間的PSNR,作為衡量視頻整體穩(wěn)定程度的標(biāo)準(zhǔn),即幀間變換保真度(ITF),定義如下:
(11)
式中:Nframe表示幀數(shù)。
ITF可以客觀地評(píng)估視頻的穩(wěn)定程度,值越大代表視頻越穩(wěn)定。圖6計(jì)算了幾個(gè)典型場(chǎng)景穩(wěn)像前后的ITF值??梢钥闯觯€(wěn)像后的視頻ITF提升了約2~3 dB,表明本文方法有效地提高了視頻的穩(wěn)定程度。
圖6 不同場(chǎng)景下的幀間變換保真度對(duì)比
主觀評(píng)價(jià)是最為直接的穩(wěn)像評(píng)價(jià)方法。以個(gè)人作為觀察者對(duì)抖動(dòng)視頻穩(wěn)像前后的品質(zhì)進(jìn)行評(píng)定。本文邀請(qǐng)12名觀察者,佩戴VR頭盔觀看每組視頻,基于穩(wěn)定性對(duì)視頻進(jìn)行打分,0~10分表示穩(wěn)定程度由低到高,并計(jì)算所有人的平均意見(jiàn)得分(MOS),作為主觀評(píng)價(jià)的標(biāo)準(zhǔn),如表1所示。可以看出,本文算法可以大幅提高用戶的體驗(yàn)。
表1 不同場(chǎng)景下的用戶平均意見(jiàn)得分表
本文提出一種使用3D旋轉(zhuǎn)模型對(duì)全景視頻進(jìn)行穩(wěn)像處理的新方法。為了減少數(shù)據(jù)冗余,使用歐拉角來(lái)表征旋轉(zhuǎn)模型的參數(shù),而不是常用的旋轉(zhuǎn)矩陣。此外,引入了一種基于樣條擬合的改進(jìn)方法,用于相機(jī)路徑平滑。實(shí)驗(yàn)結(jié)果表明本文算法可以有效地消除抖動(dòng)并生成穩(wěn)定的視頻。希望該算法可以為相關(guān)的研究提供幫助。未來(lái)會(huì)進(jìn)一步與其他算法進(jìn)行對(duì)比實(shí)驗(yàn),也將對(duì)算法進(jìn)行優(yōu)化加速,并考慮相機(jī)平移運(yùn)動(dòng)帶來(lái)的影響。