胡 琪,羅健欣,胡谷雨,李 杰
(1.中國(guó)人民解放軍陸軍工程大學(xué) 指揮控制工程學(xué)院,江蘇 南京 210001;2.中國(guó)人民解放軍陸軍工程大學(xué) 職業(yè)教育中心,江蘇 南京 210001)
數(shù)字視頻穩(wěn)像是一種通過去除不必要的相機(jī)抖動(dòng)來提高視頻質(zhì)量的技術(shù)。相比專業(yè)攝影師在拍攝過程中使用的各種穩(wěn)定工具,如三腳架、相機(jī)推車等,一個(gè)業(yè)余拍攝的視頻(通常來自沒有任何穩(wěn)定裝置的手持設(shè)備或者無人機(jī))自然缺乏足夠的穩(wěn)定性[1]。一般而言,穩(wěn)像過程由以下三個(gè)階段組成:(1)估計(jì)原始相機(jī)路徑;(2)生成新的平滑相機(jī)路徑;(3)使用生成的平滑相機(jī)路徑合成穩(wěn)定的視頻[2]。本文完成了以上三個(gè)階段的工作。其中,如何對(duì)原始相機(jī)路徑進(jìn)行優(yōu)化是穩(wěn)像任務(wù)的關(guān)鍵,也是本文研究的重點(diǎn)。
現(xiàn)有的穩(wěn)像技術(shù)使用基于像素或關(guān)鍵點(diǎn)跟蹤的2D變換模型(如單應(yīng)性矩陣或仿射矩陣)或者利用運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)技術(shù)(SfM)來估計(jì)相機(jī)在拍攝期間的運(yùn)動(dòng)。然后通過去除相機(jī)運(yùn)動(dòng)數(shù)據(jù)中的高頻噪聲[2-3],或者采用運(yùn)動(dòng)路徑擬合的方法[3-4],生成新的更為平滑的相機(jī)路徑,從而提高視頻的穩(wěn)定性。
在如何計(jì)算最優(yōu)相機(jī)路徑的問題上,無論是近來提出的一些新興穩(wěn)像技術(shù)[5-6],還是基于SfM的復(fù)雜的三維穩(wěn)像方法[7],都是直接選用等時(shí)間間隔的圖像幀來估計(jì)并平滑原始相機(jī)路徑,而忽略了因相機(jī)本身的運(yùn)動(dòng)速度變化帶來的空間間隔的不均勻性。因此,本文試圖解決相機(jī)運(yùn)動(dòng)速度與視頻抖動(dòng)之間的相關(guān)性問題。經(jīng)典的穩(wěn)像算法[4,8]通過將原始相機(jī)路徑分為靜止、線性或拋物線的運(yùn)動(dòng)分段來獲得最優(yōu)路徑。本文算法則是依據(jù)相機(jī)在不同路徑段上的運(yùn)動(dòng)速度,采用多分辨率重采樣的方法,為相機(jī)在整個(gè)拍攝過程中的路徑移動(dòng)找到其最佳的匹配速度,保證圖像幀采樣在空間分布上的均勻性,進(jìn)而達(dá)到穩(wěn)定視頻的目的。
本文算法采用流式處理方式,沿著原始相機(jī)路徑移動(dòng)一個(gè)滑動(dòng)窗口;對(duì)窗口內(nèi)的原始圖像幀進(jìn)行多分辨率重采樣,計(jì)算其幀間變換參數(shù);使用最小二乘多項(xiàng)式擬合方法平滑各個(gè)相機(jī)路徑,選擇其中與原始相機(jī)路徑的均方誤差不超過閾值且最為平滑的結(jié)果作為最優(yōu)解。而后基于最優(yōu)相機(jī)路徑,重新渲染得到最終穩(wěn)定的視頻。該算法保證了在劇烈抖動(dòng)情況下的良好平滑效果,同時(shí)能夠去除人在行走過程中產(chǎn)生的低頻抖動(dòng);可以做到實(shí)時(shí)處理,在不需要用戶交互的情況下自適應(yīng)地完成視頻穩(wěn)像任務(wù)。
對(duì)于以下的討論,本文假設(shè)已經(jīng)(通過特征點(diǎn)匹配[9]或光流跟蹤[10]的方法)計(jì)算了在每個(gè)時(shí)間點(diǎn)t=1,2,…,N的相機(jī)變換矩陣Tt(可以表示為6自由度的仿射變換)。設(shè)置第一幀圖像為參考幀,其對(duì)應(yīng)的相機(jī)位置為初始點(diǎn),在一系列的原始圖像幀l1,l2,…,lN中,相鄰幀對(duì)(lt-1,lt)由變換矩陣Tt相關(guān)聯(lián)。每一幀lt定義的離散相機(jī)路徑為C(t),可由矩陣乘法迭代計(jì)算:
Ct+1=CtTt+1?Ct=T1T2…Tt
(1)
(2)
本文對(duì)滑動(dòng)窗口內(nèi)的相機(jī)路徑進(jìn)行多項(xiàng)式平滑優(yōu)化,其基本思想是用前后m個(gè)不同權(quán)重的相機(jī)位姿X=(Xt-m,…,Xt,…,Xt+m)T來更新當(dāng)前位姿Xt。其中,原始相機(jī)位姿Xt=(xt,yt)T,可由前后幀對(duì)的變換矩陣Tt獲得。例如,Tt為6自由度的仿射變換,可得相機(jī)位姿的迭代計(jì)算公式為:
(3)
對(duì)于擬合的多項(xiàng)式次數(shù)為n的情況,w個(gè)原始相機(jī)位姿組成的方程組表示如下:
(4)
更簡(jiǎn)單地,將(4)式寫成矩陣形式:
X=A*ω
(5)
在多項(xiàng)式擬合的過程中,窗口大小w和多項(xiàng)式次數(shù)n為兩個(gè)重要參數(shù),其不同取值直接影響到權(quán)重矩陣ω的計(jì)算結(jié)果,進(jìn)而決定相機(jī)路徑的平滑效果和時(shí)間耗費(fèi)。在2.2節(jié)最優(yōu)路徑選擇中對(duì)于次數(shù)n的選擇會(huì)有更詳細(xì)的說明。
多項(xiàng)式平滑算法具有參數(shù)少、速度快的優(yōu)點(diǎn),可以完成對(duì)相機(jī)路徑粗略的去抖動(dòng)處理。但由于參數(shù)n是用戶指定的,只能提供單一尺度下的路徑平滑,對(duì)于在各路徑段存在顯著速度差異的視頻流則不能提供自主、魯棒的穩(wěn)像結(jié)果。
依據(jù)人的視覺感官經(jīng)驗(yàn),相機(jī)本身的運(yùn)動(dòng)速度與視頻的穩(wěn)定程度之間存在著一定的關(guān)聯(lián)。確切地說,沿著相同的方向拍攝同一場(chǎng)景,以更快的速度移動(dòng)相機(jī)可以減輕高頻噪聲對(duì)相機(jī)路徑的影響,使得相機(jī)的運(yùn)動(dòng)路徑更加平滑。因此,本文通過改變滑動(dòng)窗口內(nèi)原始圖像幀的采樣頻率,變相地達(dá)到調(diào)整相機(jī)在各階段運(yùn)動(dòng)速度的目的,實(shí)現(xiàn)全局速度自適應(yīng)的路徑平滑。
在大小為w=2m+1的滑動(dòng)窗口內(nèi),對(duì)相機(jī)位姿進(jìn)行間隔幀數(shù)為γ=1,2,…,w的均勻重采樣,即采樣頻率調(diào)整為γ(原始采樣頻率為1),更新原始相機(jī)位姿集合:
Xγ=(Xt-kγ,…,Xt-γ,Xt,Xt+γ,…,Xt+kγ)T
(6)
(7)
對(duì)于不同的采樣頻率γ={1,2,…,w},可以計(jì)算得到平滑路徑集合P={P1(t),P2(t),…,Pw(t)},同時(shí)計(jì)算對(duì)應(yīng)的均方誤差E={e1,e2,…,ew}。依據(jù)實(shí)驗(yàn)結(jié)果,增大γ意味著相機(jī)以更快的運(yùn)動(dòng)速度通過了指定路段,運(yùn)動(dòng)路徑的平滑程度隨之提高。但與此同時(shí),平滑后的軌跡誤差相應(yīng)增大,即與原始路徑的偏離程度也是遞增的。因此,本文設(shè)置最大閾值ε,在滿足e≤ε條件的所有優(yōu)化相機(jī)路徑集合中,選擇其中最平滑的一條作為最優(yōu)路徑:
γopt=max{γ|eγ≤ε}
(8)
圖1總結(jié)了基于自適應(yīng)速度選擇算法的路徑平滑過程。
圖1 算法流程圖
需要補(bǔ)充的是,在利用多項(xiàng)式平滑算法計(jì)算優(yōu)化相機(jī)路徑的過程中,次數(shù)n的選取是隨采樣頻率γ的增大而遞減的。1.2節(jié)中提到,n的取值直接影響到相機(jī)軌跡的平滑程度,現(xiàn)試從相機(jī)運(yùn)動(dòng)的物理學(xué)角度具體分析,如表1所示。
表1 擬合路徑形態(tài)與n取值關(guān)系
表1中,c、a、a′為常數(shù)項(xiàng)。圖2所示的實(shí)驗(yàn)結(jié)果同樣表明選用更高次數(shù)項(xiàng)的擬合結(jié)果所對(duì)應(yīng)的相機(jī)路徑形態(tài)更加復(fù)雜,與原始數(shù)據(jù)吻合程度高但路徑的平滑程度低。因此,本文在對(duì)重采樣后的相機(jī)路徑進(jìn)行多項(xiàng)式平滑的過程中,對(duì)n的選擇加以約束:γ+n≤5,γ<5且n=1,γ≥5,保證了采樣頻率γ大的路徑對(duì)應(yīng)的擬合結(jié)果更為平滑。
本文通過以下步驟來實(shí)現(xiàn)視頻穩(wěn)像:(1)估計(jì)幀運(yùn)動(dòng)變換Tt;(2)利用自適應(yīng)速度選擇算法計(jì)算最佳路徑Pt;(3)通過Wt形變來輸出穩(wěn)定視頻。
對(duì)于運(yùn)動(dòng)估計(jì),本文使用金字塔Lucas-Kanade跟蹤特征[10],應(yīng)用RANSAC算法來估計(jì)平移變換,只保留與估計(jì)變換一致的閾值距離(小于兩個(gè)像素),從而有效地排除異常點(diǎn)。
對(duì)于將原始視頻從新的平滑相機(jī)路徑中重新渲染出來的問題,本文采用最簡(jiǎn)單的魯棒方法,即指定一個(gè)預(yù)定義比例的裁剪窗口,將原始相機(jī)路徑C(t)和平滑后的相機(jī)路徑P(t)之間的轉(zhuǎn)換矩陣Wt應(yīng)用到裁剪窗口中,使得原始視頻重投影到最優(yōu)相機(jī)路徑拍攝的位置,從而輸出最終的穩(wěn)定視頻。其中,轉(zhuǎn)換矩陣Wt的計(jì)算如下:
(9)
為了驗(yàn)證算法的有效性,首先基于最直觀的視覺體驗(yàn)角度,本文選擇L1最優(yōu)路徑方法[4]中研究的“Fan-Cam”抖動(dòng)視頻來表現(xiàn)視頻穩(wěn)像的結(jié)果。圖3選取了原始視頻中的第1、17和340幀,可以明顯看出在水平方向上有著明顯的抖動(dòng)。圖4則展示了穩(wěn)像后的對(duì)應(yīng)結(jié)果,水平方向上的抖動(dòng)被有效地去除了。
圖2 對(duì)原始相機(jī)路徑(實(shí)線)進(jìn)行不同多項(xiàng)式次數(shù)(n=1,2,3,4)的路徑擬合結(jié)果(正方形)
圖3 原始圖像幀
圖4 穩(wěn)像后圖像幀
本文算法除了抑制明顯的高頻抖動(dòng)之外,還能夠消除因步行過程中拍攝視頻所產(chǎn)生的低頻失真,具體可通過調(diào)整設(shè)定的閾值ε的取值實(shí)現(xiàn)。如圖5中y軸方向上的運(yùn)動(dòng)可用常量或勻速路徑代替。
圖5 在x、y軸方向上的優(yōu)化相機(jī)路徑
將本文算法與卡爾曼濾波、粒子濾波和L1最優(yōu)路徑方法進(jìn)行比較,對(duì)比算法的穩(wěn)像效果及實(shí)時(shí)處理的能力。實(shí)驗(yàn)中,選擇文獻(xiàn)[1]中提供的視頻集(http://web.cecs.pdx.edu/~fliu/project/subspace_stabilization/)進(jìn)行穩(wěn)像處理,利用峰值信噪比(PSNR)評(píng)估算法的去抖效果,PSNR值越高表明穩(wěn)像效果越好,結(jié)果如表2所示。四種穩(wěn)像算法處理后的單幀平均用時(shí)如表3所示。
從表2中可以看出,原始視頻存在明顯的抖動(dòng),本文算法在對(duì)比實(shí)驗(yàn)中對(duì)視頻的平滑處理效果顯著。由表3顯示的單幀圖像處理時(shí)間看出,本文算法具有良好的實(shí)時(shí)性,在處理時(shí)間上均優(yōu)于濾波算法和L1最優(yōu)路徑算法。
本文提出了一種基于自適應(yīng)速度選擇的路徑優(yōu)化算法,實(shí)時(shí)地對(duì)視頻完成去抖動(dòng)處理。實(shí)驗(yàn)結(jié)果表明,本文算法具有良好的穩(wěn)像效果,不僅能夠抑制明顯的高頻抖動(dòng),對(duì)于行走產(chǎn)生的低頻抖動(dòng)也能有效地去除,保持了視頻拍攝的原始意圖。本文在輸出穩(wěn)定視頻時(shí)有效地裁剪了幀,其大小是預(yù)定義比例的,在今后的工作中,希望能夠自動(dòng)計(jì)算最佳裁剪的大小。同時(shí),對(duì)于仿射變換不能模擬非線性幀間運(yùn)動(dòng)所導(dǎo)致的殘留擺動(dòng),也是下一步工作的重點(diǎn)。
表2 穩(wěn)像算法處理后視頻PSNR平均值比較(dB)
表3 穩(wěn)像算法處理單幀圖像平均用時(shí)比較(ms)