鄭文麗,任 超,何小海,卿粼波
(四川大學(xué)電子信息學(xué)院,四川 成都 610065)
伴隨視頻采集和處理技術(shù)的快速發(fā)展,人們可以通過(guò)數(shù)碼相機(jī),便攜式攝像機(jī)甚至手機(jī)獲取高品質(zhì)視頻。然而這些均為手持設(shè)備,在拍攝過(guò)程中對(duì)手部動(dòng)作非常敏感,所捕獲的視頻中難免會(huì)存在抖動(dòng)。抖動(dòng)視頻中圖像序列的不連貫不僅容易引起視覺(jué)疲勞,還會(huì)加大對(duì)后續(xù)的視頻分析、視頻編碼壓縮算法[1]的難度。比如,在機(jī)載的攝像系統(tǒng)中,穩(wěn)像技術(shù)可以提供穩(wěn)定的圖像序列,以實(shí)現(xiàn)目標(biāo)的捕獲、識(shí)別、跟蹤和定位。因此,視頻去抖的實(shí)用性使其成為研究熱門(mén),并且成功應(yīng)用于生活中的各個(gè)領(lǐng)域。傳統(tǒng)的視頻穩(wěn)定方法通過(guò)估計(jì)和平滑2D攝像機(jī)運(yùn)動(dòng)合成一個(gè)新的穩(wěn)定視頻。2D視頻防抖最早是在1998年,由Morimoto和Chellappa[2]等學(xué)者提出基于相似性和單應(yīng)性變換的低維模型防抖,算法效果比較魯棒,但是不能對(duì)視差比較明顯的場(chǎng)景做防抖處理。Liu[3]等學(xué)者在2009年提出的Content-Preserving Warps模型,能夠保持場(chǎng)景中物體的相對(duì)空間關(guān)系,可以防止變形,但是防抖效果不佳。Liu[4]等學(xué)者采用了在低維空間中特征點(diǎn)的軌跡平滑約束的模型,Goldstein和Fattal[5]在算法模型中加入了極線約束,Liu[6]等學(xué)者提出了二維稠密光流的思想,提高了視頻防抖算法的質(zhì)量和穩(wěn)定性。一般來(lái)說(shuō),二維方法更快,因?yàn)樗鼈冎还烙?jì)連續(xù)幀之間的線性變換。但是二維直線運(yùn)動(dòng)模型,無(wú)法從根本上處理由場(chǎng)景中深度變化引起的視差。
本文在2D視頻穩(wěn)像基礎(chǔ)上提出了一種2D相機(jī)運(yùn)動(dòng)平滑模型,該模型具有魯棒性強(qiáng)、高質(zhì)量、簡(jiǎn)單的特點(diǎn)。提出的2D相機(jī)運(yùn)動(dòng)平滑模型,采用了類(lèi)似于雙邊濾波的思想來(lái)自適應(yīng)控制平滑的強(qiáng)度,避免了過(guò)度裁剪和幾何畸變。這種靈活的模型能夠從根本上處理由視差和卷簾門(mén)效應(yīng)引起的非線性運(yùn)動(dòng)。
2D視頻穩(wěn)像算法一般分為三個(gè)主要步驟:
(1)圖像幀間運(yùn)動(dòng)估計(jì),即相機(jī)“軌跡”擬合;
(2)相機(jī)“軌跡”平滑;
(3)視頻圖像幀變形裁剪。
通過(guò)視頻相鄰圖像幀可以估計(jì)兩幀圖像間的運(yùn)動(dòng)。一般采用特征點(diǎn)匹配和參數(shù)化模型結(jié)合進(jìn)行運(yùn)動(dòng)估計(jì)。常用的參數(shù)化全局運(yùn)動(dòng)模型包含:相似變化、仿射變化、單應(yīng)性模型等。對(duì)于視頻圖像幀序列I0,I1,…,It-1,It。定義第t幀至第t+1的運(yùn)動(dòng)模型為Pt,那么第t幀圖像對(duì)應(yīng)的相機(jī)的軌跡為Ct=Pt-1*Pt-2*…*P1。
在獲得相機(jī)軌跡后,對(duì)其進(jìn)行改進(jìn)的高斯濾波線性平滑。對(duì)視頻的第t幀圖像,取區(qū)間Nt={ j|tk≤j≤t+k},k為給定區(qū)間長(zhǎng)度。取區(qū)間內(nèi)圖像幀對(duì)應(yīng)的運(yùn)動(dòng)估計(jì)結(jié)果Pt,那么圖像幀t向光滑軌跡變形的高斯濾波運(yùn)動(dòng)補(bǔ)償為:
軌跡信息包含原始視頻圖像的幀間幾何變換的信息與平滑后視頻圖像的幀間幾何變換的信息。由公式(2)可以對(duì)原始視頻的每一幀用對(duì)應(yīng)的運(yùn)動(dòng)補(bǔ)償幾何變換St進(jìn)行變形,則新視頻中的每一幀的運(yùn)動(dòng)軌跡即為平滑后的軌跡{C′t}
最后對(duì)輸出的視頻采用固定大小的截窗進(jìn)行裁剪,以達(dá)到輸出視頻視場(chǎng)大小穩(wěn)定性的要求。
由上述分析可知,高斯濾波軌跡平滑方法對(duì)小幅度高頻抖動(dòng)具有較好的抑制,而對(duì)較大低頻擺動(dòng)抑制能力較弱。因此基于此算法,提出了一種2D相機(jī)運(yùn)動(dòng)平滑模型,其流程圖如圖1所示。在FAST算子[7]檢測(cè)特征點(diǎn)時(shí)設(shè)置子圖像。再采用Lucas-Kanade光流算法[8]進(jìn)行特征點(diǎn)追蹤,優(yōu)化的RANSAC算法[9]剔除誤匹配點(diǎn)。通過(guò)檢測(cè)到的特征匹配對(duì)獲得單應(yīng)性模型來(lái)擬合相機(jī)運(yùn)動(dòng)軌跡,再將相機(jī)運(yùn)動(dòng)軌跡通過(guò)提出的2D攝像機(jī)運(yùn)動(dòng)平滑模型得到優(yōu)化的相機(jī)路徑,最后經(jīng)過(guò)扭曲變化得到穩(wěn)定視頻。
圖1 本文視頻穩(wěn)像算法流程
由于運(yùn)動(dòng)物體會(huì)對(duì)運(yùn)動(dòng)估計(jì)的精度存在干擾。視頻序列中運(yùn)動(dòng)物體一般出現(xiàn)在圖像的中間位置,背景物體一般在圖像邊緣處。因此,把子圖像設(shè)置在靠圖像邊緣的地方。雖然不能完全避免運(yùn)動(dòng)物體的干擾,但仍能在一定程度上降低對(duì)運(yùn)動(dòng)估計(jì)精度的影響。文獻(xiàn)[10]研究表明,對(duì)于視頻而言,相鄰幀的偏移最大為圖像寬度和高度的1/10。所以,為了保證在設(shè)置的子圖像間的特征能匹配上,設(shè)置的子圖像高度和寬度分別為整幅圖像寬度和高度的1/4,并且每個(gè)子圖像距整幅圖像邊緣的距離為圖像寬度和高度的1/10。然后在設(shè)置的子圖像上采用FAST算子進(jìn)行特征點(diǎn)檢測(cè)。再由Lucas-Kanade光流算法進(jìn)行特征點(diǎn)跟蹤。
由于特征點(diǎn)誤匹配對(duì)會(huì)嚴(yán)重影響相機(jī)軌跡的估計(jì),采用優(yōu)化的RANSAC算法剔除特征點(diǎn)誤匹配對(duì)。首先隨機(jī)選取部分匹配的像素對(duì),估計(jì)單應(yīng)性。然后用其余匹配的像素對(duì)估計(jì)的單應(yīng)性進(jìn)行檢驗(yàn),保留符合估計(jì)模型的像素。然后在保留的符合模型的像素中隨機(jī)選取一些匹配像素對(duì),重新估計(jì)模型參數(shù),并用剩余的匹配像素對(duì)驗(yàn)證模型有效性。重復(fù)以上操作,直到匹配像素對(duì)符合模型的數(shù)量達(dá)到給定閾值,或循環(huán)次數(shù)大于給定的閾值。
根據(jù)特征點(diǎn)匹配對(duì)獲得第t幀單應(yīng)性模型{F(t)},然后采用單應(yīng)性模型來(lái)擬合相機(jī)“軌跡”。公式(3)定義了第t幀處的相機(jī)軌跡C(t)。
接下來(lái)將描述如何平滑相機(jī)路徑來(lái)達(dá)到視頻穩(wěn)定。
一個(gè)好的相機(jī)路徑平滑算法應(yīng)該考慮多種干擾因素,如:消除抖動(dòng),避免過(guò)度裁剪,以及最小化各種幾何變形。為了達(dá)到預(yù)期的效果,在高斯平滑基礎(chǔ)上提出了一個(gè)考慮所有因素的優(yōu)化框架,通過(guò)兩個(gè)高斯函數(shù)設(shè)計(jì)自適應(yīng)權(quán)重wt,r,對(duì)平滑過(guò)程中裁剪和失真有一定的控制能力。
給定原始路徑C(t),通過(guò)最小化以下函數(shù)來(lái)尋求優(yōu)化路徑P={P(t)}:
其中Ωt是第t幀的鄰域;數(shù)據(jù)項(xiàng)||P(t)-C(t)||2強(qiáng)制新的相機(jī)路徑接近原始路徑,以減少裁剪和變形;平滑項(xiàng)||P(t)-C(t)||2穩(wěn)定路徑;權(quán)重wt,r(C)在快速平移/旋轉(zhuǎn)或場(chǎng)景轉(zhuǎn)換下保留相機(jī)突然移動(dòng);參數(shù)λt平衡上述兩項(xiàng)。
由于公式(4)是二次方程,可以用任何線性系統(tǒng)解算器來(lái)求解。這里,使用基于Jacobi的迭代解算器:
對(duì)于相機(jī)的快速移動(dòng),不適當(dāng)?shù)钠交瑫?huì)導(dǎo)致相機(jī)路徑顯著偏離原始路徑,導(dǎo)致過(guò)度裁剪。遵循雙邊濾波器的思想并通過(guò)兩個(gè)高斯函數(shù)進(jìn)行設(shè)計(jì)自適應(yīng)權(quán)重wt,r如公式(7)所示,自適應(yīng)權(quán)重wt,r一定程度保留了相機(jī)的突然移動(dòng),且平滑裁剪要少得多。
其中Gt()為附近的幀提供了更大的權(quán)重。Gm()測(cè)量?jī)蓚€(gè)相機(jī)軌跡的變化。
在尋求優(yōu)化路徑時(shí)用更多的幀可以確保成功地抑制高頻抖動(dòng)(例如握手)和低頻反彈(例如,走路)。在實(shí)驗(yàn)中,將設(shè)置為60個(gè)相鄰幀,并將Gt()的標(biāo)準(zhǔn)偏差設(shè)置為10。相比之下,以前的基于低通濾波的方法通常需要較少的幀數(shù)(例如,10幀),以避免過(guò)度修剪和變形。但是尋求優(yōu)化路徑時(shí)采用較少的幀數(shù)通常不足以抑制低頻反彈。
由于自適應(yīng)權(quán)重wt,r中Gm()在尋求優(yōu)化路徑時(shí)可以采用更多的幀數(shù)。在視頻穩(wěn)定中,對(duì)于快速攝像機(jī)運(yùn)動(dòng)(例如,由快速平移或場(chǎng)景轉(zhuǎn)換),不適當(dāng)?shù)钠交靠赡軐?dǎo)致過(guò)度裁剪。在這種情況下,相機(jī)快速平移,高斯平滑會(huì)導(dǎo)致相機(jī)路徑顯著偏離其原始路徑。而自適應(yīng)項(xiàng)Gm()在一定程度上保留了相機(jī)的突然移動(dòng),使自適應(yīng)平滑的結(jié)果產(chǎn)生的裁剪要少得多。
上述自適應(yīng)項(xiàng)wt,r有一定的控制剪切和變形的能力。但是,實(shí)際可能希望嚴(yán)格控制裁剪比例和失真。本文采用了一種簡(jiǎn)單而有效的方法來(lái)解決前述問(wèn)題,即自適應(yīng)地調(diào)整每幀的參數(shù)λt,步驟為:
(1)固定λt=λ(經(jīng)驗(yàn)設(shè)置為5),對(duì)相機(jī)軌跡進(jìn)行優(yōu)化;
(2)檢查每個(gè)幀的裁剪率和失真。對(duì)于任何不滿足用戶要求的幀(裁剪比或失真大于預(yù)先定義的閾值),將其參數(shù)λt減小一步(λt/10);
(3)重新對(duì)相機(jī)軌跡進(jìn)行優(yōu)化。注意,與公式(2)一致,λt越小,優(yōu)化路徑越接近原路徑,裁剪和變形越少。
(4)迭代步驟(2)、(3),直到所有幀都滿足要求。
對(duì)視頻序列進(jìn)行視頻穩(wěn)像實(shí)驗(yàn)。分別對(duì)在50幀視頻序列的子圖像和全局圖像上進(jìn)行特征檢測(cè)的平均耗時(shí),采用和不采用自適應(yīng)項(xiàng)wt,r對(duì)裁剪變形的影響,本文算法和卡爾曼濾波算法分別在峰值信噪比、50幀圖像序列平均耗時(shí)、裁剪變形進(jìn)行視頻去抖效果對(duì)比分析。實(shí)驗(yàn)計(jì)算機(jī)CPU為Intel(R)Core(TM) i5-7500,主頻為3.40 GHZ,內(nèi)存為8 GB,Windows 7操作系統(tǒng),采用VS2013開(kāi)發(fā)環(huán)境。
表1為特征點(diǎn)檢測(cè)過(guò)程中在50幀視頻序列的子圖像和全局圖像上的平均耗時(shí)情況,顯然在子圖像上進(jìn)行特征點(diǎn)檢測(cè)速度要比對(duì)整幅圖像進(jìn)行特征檢測(cè)快的多,有利于滿足實(shí)時(shí)性要求。
表1 圖像特征檢測(cè)耗時(shí)結(jié)果比較
圖2展示了在相機(jī)軌跡平滑過(guò)程中采用和不采用自適應(yīng)項(xiàng)wt,r對(duì)裁剪變形的影響。如圖2(b)所示,在相機(jī)快速運(yùn)動(dòng)情況下,不采用自適應(yīng)項(xiàng)wt,r的高斯平滑,導(dǎo)致過(guò)度裁剪,出現(xiàn)黑邊,相機(jī)路徑偏離原始路徑。如圖2(a)所示,本文算法遵循雙邊濾波器的思想采用自適應(yīng)項(xiàng)wt,r,在去抖過(guò)程具有一定控制裁剪和失真的能力。一定程度上保留了相機(jī)的突然運(yùn)動(dòng),使平滑結(jié)果產(chǎn)生的裁剪少得多。
圖2 采用和不采用wt,r對(duì)比
為了驗(yàn)證本文提出的算法對(duì)視頻去抖動(dòng)的有效性。將峰值信噪比(PSNR)作為視頻去抖動(dòng)的客觀質(zhì)量評(píng)價(jià)指標(biāo),由于視頻相鄰幀間相似性,峰值信噪比的值越大,表明抖動(dòng)被濾去的越多,穩(wěn)像效果越好。利用公式(8)進(jìn)行計(jì)算。
其中,S0、S1代表抖動(dòng)或者穩(wěn)像視頻的相鄰幀,代表視頻相鄰幀之間像素的均方差。
圖3 本文算法和卡爾曼濾波算法對(duì)比
表2 不同算法客觀質(zhì)量評(píng)價(jià)結(jié)果比較
本文算法和卡爾曼濾波算法進(jìn)行圖像去抖動(dòng)效果對(duì)比,對(duì)比結(jié)果如圖3所示,表2統(tǒng)計(jì)2種算法客觀評(píng)價(jià)結(jié)果。分析可知,本文算法對(duì)應(yīng)的視頻圖像去抖效果較好。雖然卡爾曼濾波算法通過(guò)結(jié)合快速近似最近鄰庫(kù)理論剔除錯(cuò)誤匹配的圖像特征點(diǎn)。但本文根據(jù)RANSAC的思想,得出優(yōu)化的RANSAC估計(jì)模型。更好剔除圖像誤匹配特征點(diǎn),進(jìn)而得到準(zhǔn)確的特征匹配。同時(shí)由于采用子圖像特征檢測(cè),速度顯然要比對(duì)整幅圖像進(jìn)行特征檢測(cè)快得多,有利于滿足實(shí)時(shí)性要求。遵循雙邊濾波器的思想,采用的自適應(yīng)項(xiàng)wt,r自適應(yīng)控制平滑程度,具有一定的控制剪切和變形的能力。而卡爾曼濾波算法平滑過(guò)程中會(huì)存在裁剪過(guò)度,出現(xiàn)黑邊的情況。
本文提出一種基于2D相機(jī)運(yùn)動(dòng)平滑算法,該算法采用在子圖像上進(jìn)行特征點(diǎn)檢測(cè),Lucas-Kanade光流算法進(jìn)行特征點(diǎn)跟蹤,采用優(yōu)化的RANSAC算法剔除誤匹配特征點(diǎn)。然后通過(guò)特征點(diǎn)獲得的單應(yīng)性模型來(lái)擬合相機(jī)軌跡,將相機(jī)軌跡通過(guò)考慮避免過(guò)度裁剪和畸變的優(yōu)化路徑的框架,得到優(yōu)化路徑,最終得到穩(wěn)定視頻。實(shí)驗(yàn)結(jié)果表明,該算法能夠獲得較好的視頻穩(wěn)定效果,同時(shí)避免了過(guò)度裁剪。但是本文采用光流法,具體算法實(shí)現(xiàn)需要建立在三個(gè)假設(shè)條件之上。其中對(duì)亮度不變性和局部運(yùn)動(dòng)一致性兩個(gè)條件仍需改進(jìn)。