蔣雙霜 朱振峰 常冬霞
(1. 北京交通大學(xué)信息科學(xué)研究所,北京 100044; 2. 北京市現(xiàn)代信息科學(xué)與網(wǎng)絡(luò)技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100044)
由于拍攝設(shè)備的無規(guī)律運(yùn)動常造成視頻的抖動,其不僅影響用戶的觀賞體驗(yàn),也不利于對視頻的進(jìn)一步分析與處理,由此穩(wěn)像技術(shù)應(yīng)運(yùn)而生。相比傳統(tǒng)光學(xué)、機(jī)電等防抖技術(shù),基于計(jì)算機(jī)視覺的電子穩(wěn)像技術(shù)以其低成本、低能耗、強(qiáng)靈活性等優(yōu)點(diǎn)成為穩(wěn)像技術(shù)的研究熱點(diǎn)[1- 4]。
目前,電子穩(wěn)像技術(shù)可分為“2D”方法、“3D”方法和“2.5D” 方法?!?D”方法主要由運(yùn)動估計(jì)、運(yùn)動平滑及運(yùn)動補(bǔ)償組成[5-9]。運(yùn)動估計(jì)利用特征匹配、光流跟蹤等首先建立幀間的變換矩陣[5- 6],進(jìn)而獲取相機(jī)原始運(yùn)動軌跡。為消除視頻抖動,需對該軌跡做進(jìn)一步的平滑處理。常見平滑方法有卡爾曼濾波[7]、粒子濾波[8]等。不同于上述對獨(dú)立運(yùn)動模型進(jìn)行濾波的方法,Grundmann 等利用L1范數(shù)[9]對線性、拋物線等形式的運(yùn)動估計(jì)進(jìn)行平滑,從而獲取穩(wěn)定的相機(jī)軌跡,并在YouTube中得到應(yīng)用。運(yùn)動補(bǔ)償基于平滑后的軌跡對抖動幀進(jìn)行補(bǔ)償,進(jìn)而輸出穩(wěn)定視頻。上述“2D”方法速度快、魯棒性好,但模型固定,難以處理有視差、深度變換等復(fù)雜場景。為此,學(xué)者們提出非參數(shù)模型的“2D”方法[10]來對點(diǎn)特征軌跡進(jìn)行平滑。雖然其具有較好的靈活性,但由于較難獲取長特征軌跡,不能解決旋轉(zhuǎn)平移、運(yùn)動模糊等問題。為避免長時(shí)特征軌跡跟蹤,Liu等[11]提出了一種非參數(shù)的穩(wěn)定光流運(yùn)動模型修正原始光流,在處理存在視差、動態(tài)運(yùn)動目標(biāo)和果凍效應(yīng)[12]等情況下的抖動視頻時(shí)取得了較好的效果,但視頻前景的大小對穩(wěn)像結(jié)果影響較大。
“3D”方法[12-13]通過三維重建或從傳感器獲得深度信息來消除視差影響。由于需長時(shí)特征軌跡跟蹤來進(jìn)行魯棒的三維重建,使得計(jì)算的復(fù)雜度大大增加。此外,由于對信息獲取設(shè)備(深度相機(jī))也有較高要求,從而限制了其實(shí)際應(yīng)用?!?.5D”的方法[14-16]基于特征軌跡中的三維信息,不僅能處理視差,而且避免了復(fù)雜的三維重建。相關(guān)工作包括極線轉(zhuǎn)移方法[14]、子空間方法[15]、貝塞爾曲線方法[16]等。與“3D”方法相似,“2.5D”方法也需平滑跟蹤的特征軌跡,難點(diǎn)在于特征點(diǎn)跟蹤的魯棒性。
本文針對復(fù)雜場景以及景深變換較小環(huán)境下的抖動視頻的穩(wěn)像技術(shù)開展研究。如上所述,“3D”方法通常用于解決具有視差問題的抖動視頻的穩(wěn)像,但復(fù)雜度高,魯棒性較差,不適用于此類視頻。傳統(tǒng)“2D”方法難以消除較大抖動、或穩(wěn)像后存在不規(guī)則空白區(qū)域問題。當(dāng)對其進(jìn)行包括裁剪以及基于相鄰幀拼接的視頻修復(fù)等后處理時(shí),往往出現(xiàn)處理后的視頻幀間過渡不自然的情況。為此,本文提出了一種基于全景圖的穩(wěn)像方法(Video Stabilization Algorithm Based on Generated Panorama,VSGP)。不同于傳統(tǒng)2D方法,本文方法基于原始視頻的全景圖和平滑后軌跡對全景圖采樣輸出穩(wěn)定視頻。為實(shí)現(xiàn)對運(yùn)動軌跡進(jìn)行有針對性的平滑,提出了基于運(yùn)動統(tǒng)計(jì)特性的相機(jī)運(yùn)動模式(非往復(fù)運(yùn)動與往復(fù)運(yùn)動)判定方法?;谄交蟮能壽E實(shí)現(xiàn)在全景圖上視頻幀的重采樣,在確保生成視頻幀間變化穩(wěn)定的同時(shí),避免了區(qū)域裁剪以及修復(fù)等傳統(tǒng)后處理方法帶來的幀間場景過渡不自然的問題。
本文第2節(jié)介紹了基于全景圖的視頻穩(wěn)像流程;第3節(jié)說明了基于區(qū)域的快速運(yùn)動估計(jì)方法;第4節(jié)闡述了基于運(yùn)動矢量統(tǒng)計(jì)的判別方法。第5節(jié)闡述了基于平滑軌跡的視頻幀抽取方式;第6節(jié)給出實(shí)驗(yàn)設(shè)置、結(jié)果和分析;最后為論文總結(jié)。
圖1所示為本文提出的基于全景圖的視頻穩(wěn)像算法的基本流程,由以下四部分組成:
圖1 穩(wěn)像算法基本流程圖Fig.1 Basic flowchart of proposed video stabilization algorithm
(1)全景圖生成:基于圖像拼接技術(shù)生成全景圖;
(2)原始運(yùn)動軌跡估計(jì):采用基于區(qū)域的運(yùn)動估計(jì)方法提高運(yùn)動估計(jì)效率;
(3)運(yùn)動軌跡平滑:針對相機(jī)的不同運(yùn)動模式(往復(fù)運(yùn)動與非往復(fù)運(yùn)動),對相機(jī)的運(yùn)動軌跡進(jìn)行平滑;
(4)視頻幀抽?。夯谏傻奶摂M軌跡,在全景圖抽取視頻幀,輸出穩(wěn)定視頻。
圖2 局部區(qū)域塊匹配示意圖。為相鄰幀第i塊區(qū)域運(yùn)動矢量,搜索塊數(shù)量為Nb=5 Fig.2 Local regional blocks matching. are motion vectors in ith block between consecutive frames, and searching block num is Nb=5
在幀間運(yùn)動矢量估計(jì)的基礎(chǔ)上,我們可如圖3所示獲得第i個(gè)圖像子塊的原始運(yùn)動軌跡估計(jì):
(1)
為進(jìn)一步減小運(yùn)動估計(jì)時(shí)由匹配錯(cuò)誤和噪聲產(chǎn)生的誤差,提高相機(jī)運(yùn)動軌跡估計(jì)的魯棒性,相機(jī)的運(yùn)動軌跡估計(jì),可由下式給出:
{i≠j,k;j=maxp|Cp(n)|,k=minp|Cp(n)|}
(2)
圖3 原始軌跡點(diǎn)估計(jì)Fig.3 Original trajectory estimation
由于視頻抖動導(dǎo)致原始運(yùn)動軌跡具有非平滑性,因此,需進(jìn)一步對抖動軌跡進(jìn)行平滑處理。目前常用的軌跡平滑方法缺乏對相機(jī)的運(yùn)動模式進(jìn)行充分考慮。實(shí)際上,產(chǎn)生視頻抖動的原因往往是由于相機(jī)的不同運(yùn)動模式產(chǎn)生。這些運(yùn)動模式大致可分為往復(fù)運(yùn)動(如圖4)與非往復(fù)運(yùn)動(如圖5)。而針對不同運(yùn)動模式導(dǎo)致的視頻抖動應(yīng)采取有針對性的平滑處理。為此,在對抖動軌跡進(jìn)行平滑前,首先需要對相機(jī)的運(yùn)動模式進(jìn)行判決。具體來說,基于相機(jī)運(yùn)動的統(tǒng)計(jì)特性,本文提出了如下相機(jī)運(yùn)動模式判決方法:
(3)
(4)
公式(3)反映了在由Nf幀組成的視頻序列的幀間運(yùn)動軌跡方向,而公式(4)反映了該視頻序列軌跡點(diǎn)的聚集程度。這樣,當(dāng)同時(shí)滿足上述條件時(shí),則說明相機(jī)軌跡具有特定運(yùn)動方向的趨勢,且軌跡長度不斷增加,軌跡點(diǎn)不具有聚合性,判斷為非往復(fù)運(yùn)動。反之,若不同時(shí)滿足以上條件,則認(rèn)為相機(jī)軌跡點(diǎn)限制于局部范圍,為往復(fù)運(yùn)動。
(5)
(6)
(7)
圖4 往復(fù)運(yùn)動全景圖Fig.4 Panoramic drawing of reciprocating trajectory
圖5 非往復(fù)運(yùn)動全景圖Fig.5 Panoramic drawing of non reciprocating trajectory
為輸出穩(wěn)定的視頻,在獲取平滑軌跡后,需要根據(jù)平滑后的穩(wěn)定軌跡點(diǎn)進(jìn)行采樣,進(jìn)而抽取視頻幀生成穩(wěn)定視頻,示意圖如圖6所示。此外,利用全景圖抽取視頻幀時(shí),在平滑后的軌跡點(diǎn)地圖垂直方向上抽取視頻幀即可:一方面相機(jī)抖動通常屬于位置平移變化,或者輕微旋轉(zhuǎn),偏移角度微小,可直接采取垂直方式抽取。另一方面軌跡點(diǎn)較為密集,若每個(gè)軌跡點(diǎn)處都調(diào)整旋轉(zhuǎn)角度抽取幀,則視覺上生成視頻存在明顯晃動,造成體驗(yàn)不佳。因此,采用垂直抽樣方式,不但節(jié)約運(yùn)行時(shí)間,且能獲得較好視覺穩(wěn)像結(jié)果。
圖6 視頻幀抽取示意圖Fig.6 Video frames capturing
6.1.1 實(shí)驗(yàn)數(shù)據(jù)集
實(shí)驗(yàn)采集測試視頻3組共8段視頻,標(biāo)記為V1~V8。分別為不同類型抖動,信息如表1所示。
表1 測試視頻種類
6.1.2 比較算法
本文根據(jù)相機(jī)的運(yùn)動模式不同,采用了兩種平滑方式,在后續(xù)實(shí)驗(yàn)分析中,采用卡爾曼濾波記作VSGP-1,采用基于軌跡相似性保持的平滑方式記作VSGP-2。同時(shí),本文算法與Matlab穩(wěn)像工具[21]、視頻穩(wěn)像軟件Deshaker[19]3.1版本和基于L1范數(shù)優(yōu)化的YouTube穩(wěn)像方法[9]進(jìn)行對比。其中,Matlab穩(wěn)像工具[21]利用特征點(diǎn)匹配進(jìn)行運(yùn)動估計(jì)[10],采用實(shí)驗(yàn)視頻V3~V5時(shí),由于沒有足夠多匹配特征點(diǎn),導(dǎo)致特征點(diǎn)跟蹤失??;而其余實(shí)驗(yàn)視頻在開始就無法獲取足夠多特征點(diǎn)匹配。因此,Matlab視頻穩(wěn)像工具[21]方法不適用于該類視頻。
6.2.1 幀間峰值信噪比
為評價(jià)穩(wěn)像前后相鄰幀的相似程度,可采用幀間峰值信噪比(PSNR)作為評價(jià)指標(biāo)[18]。PSNR值越大,幀間差異越小,穩(wěn)定質(zhì)量越高。測試視頻選取場景變換較小的V1~V3、V7~V8,由于幀間序列差異小,可用PSNR值說明抖動視頻和穩(wěn)像視頻的幀間差異。對比方法為原始視頻與穩(wěn)像軟件Deshaker[19]、L1范數(shù)優(yōu)化法[9],結(jié)果如表2所示。
表2 視頻幀間峰值信噪比
可以看出,本文方法VSGP-1與VSGP-2處理后的PSNR值均高于其他方法,如對V7視頻,VSGP-1處理后PSNR值為42.35 dB,相比原始視頻提高了18 dB,相比其他方法提高了10 dB。因此,從客觀評價(jià)指標(biāo)值PSNR可看出本文方法穩(wěn)像后圖像序列差異更小,穩(wěn)像效果更好。
6.2.2 穩(wěn)像前后運(yùn)動軌跡
平滑后的運(yùn)動軌跡可作為視頻穩(wěn)像的主觀評價(jià)指標(biāo)。曲線越平滑,且原始運(yùn)動趨勢保持越好,穩(wěn)定效果越好。VSGP-1采用卡爾曼濾波平滑軌跡的結(jié)果如圖7所示,VSGP-2基于軌跡相似性保持的平滑結(jié)果如圖8所示,兩種方法平滑后,視頻抖動分量均減少,且平滑后的軌跡趨勢與原始保持一致。
6.2.3 視頻邊界裁剪率
視頻邊界裁剪率可作為穩(wěn)像的客觀指標(biāo),裁剪率越小,穩(wěn)像效果越好。傳統(tǒng)的補(bǔ)償相鄰幀產(chǎn)生穩(wěn)定視頻的方法常常導(dǎo)致邊界的區(qū)域丟失較大。實(shí)驗(yàn)中,針對抖動較大的視頻序列V4~V8進(jìn)行穩(wěn)像后的邊界裁剪率對比。YouTube[9]方法后期對視頻缺失部分進(jìn)行修復(fù),因此該實(shí)驗(yàn)中不做比較。實(shí)驗(yàn)同穩(wěn)像軟件Deshaker[19]進(jìn)行了穩(wěn)像后裁剪率對比。從表3可以看出,基于全景圖的視頻穩(wěn)像方法裁剪率更小,且保持了視頻幀的原有寬度,有利于減輕后期圖像補(bǔ)償修復(fù)邊緣區(qū)域的負(fù)擔(dān)。
圖7 VSGP-1平滑軌跡Fig.7 Smoothed trajectory result of VSGP-1
圖8 VSGP-2平滑軌跡Fig.8 Smoothed trajectory result of VSGP-2
Video V4V5V6V7V8Deshaker[19]Reserving size580×420580×415Cropping ratio20.7%21.6%575×41522.3%550×420540×36024.8%36.7%VSGP-1Reserving size640×410640×380640×460640×410640×360Cropping ratio14.6%20.8%4.2%14.6%25.0%VSGP-2Reserving size640×410640×380640×460640×430640×340Cropping ratio14.6%20.8%4.2%10.4%29.2%
6.2.4 處理速率
對比實(shí)驗(yàn)中,測試視頻選取了相機(jī)運(yùn)動速度快、場景變換劇烈、抖動較大的視頻V4~V6,分辨率為640×480。實(shí)驗(yàn)結(jié)果如表4所示。
表4 視頻序列平均每幀處理時(shí)間(單位:ms/幀)
圖9 抖動視頻穩(wěn)像結(jié)果Fig.9 Stabilization results of the shaky video
可以看出對于分辨率為640×480或以下視頻,在Intel酷睿2代,主頻3 GHz,雙核處理器的PC機(jī)上采用VSGP-1實(shí)時(shí)處理、VSGP-2后期處理的處理速度均在40 ms/幀以內(nèi)。此外,Deshaker[19]視頻穩(wěn)像軟件在穩(wěn)像步驟前保留了相鄰幀運(yùn)動估計(jì)的數(shù)據(jù),進(jìn)而進(jìn)行后期穩(wěn)像處理,也能實(shí)時(shí)穩(wěn)像。YouTube穩(wěn)像方法[9]屬于后期穩(wěn)像,且處理速度不能達(dá)到視頻幀的播放速度。
6.2.5 視頻穩(wěn)像結(jié)果
實(shí)驗(yàn)選取了視頻V8中存在較大抖動的幾幀圖像進(jìn)行穩(wěn)像,處理的前后效果如圖9所示??梢钥闯龌谌皥D的穩(wěn)像方法對于去除視頻中較大抖動有明顯效果。此外,實(shí)驗(yàn)中,對于存在較大抖動的視頻,Deshaker[19]軟件和YouTube[9]穩(wěn)像方法處理后,或存在視頻畫面扭曲的現(xiàn)象。
針對具有場景復(fù)雜、景深變換較小的抖動視頻,本文提出基于全景圖的視頻穩(wěn)像方法。對于產(chǎn)生視頻抖動的相機(jī)運(yùn)動的復(fù)雜性,我們提出了基于運(yùn)動統(tǒng)計(jì)特性的相機(jī)運(yùn)動模式判決方法。通過在全景圖上利用平滑軌跡進(jìn)行均勻采樣,合成穩(wěn)定視頻。實(shí)驗(yàn)表明,穩(wěn)像視頻的運(yùn)動軌跡與原始趨勢一致,且能夠去除較大抖動;穩(wěn)像后視覺觀賞質(zhì)量與客觀指標(biāo)均明顯提高。