李靈俐 李曉明
(太原科技大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 山西 太原030024)
視頻修復(fù)(video inpainting)是指替換或修改視頻中有瑕疵的區(qū)域,或者是根據(jù)個人主觀意志設(shè)定的某些區(qū)域,并且使得修復(fù)后的視頻在視覺上有著令人愉悅的觀賞效果。目前,攝像頭固定不動時的靜態(tài)視頻修復(fù)已經(jīng)獲得了較大的成功,并已被嵌入一些商業(yè)軟件之中。早期的視頻修復(fù)算法多數(shù)沿用了圖像修復(fù)的思路,即采用啟發(fā)式思路在當(dāng)前視頻幀或圖像庫中查找最有可能的2D圖像塊(patch)來填充待修復(fù)區(qū)域[1-2]。然而這種單幀視頻圖像各自獨立修復(fù)的方法,會導(dǎo)致修復(fù)后的視頻出現(xiàn)幀間不連續(xù)或跳躍現(xiàn)象,因此,目前已經(jīng)很少使用基于單幀圖像的視頻修復(fù)算法。近年來,視頻修復(fù)的主流方法都是利用時空信息(spatio-temporal information)來實現(xiàn)的[3-5],并且取得了很大的成功。具體講,填充待修復(fù)視頻幀的圖像塊不再僅限于在2D圖像空間查找,而是增加了時間維度,即查找相似塊的操作是在3D空間實現(xiàn)的[6-7]。然而,這類方法要求視頻拍攝時攝像機(jī)是固定的,如果攝像機(jī)有運動,那么在修復(fù)前必須先進(jìn)行視頻幀間的對齊操作。可以看出,為了將經(jīng)典的靜態(tài)視頻修復(fù)方法[8-10]擴(kuò)展到動態(tài)視頻修復(fù)領(lǐng)域,視頻對齊是必不可少的先期步驟。
對于攝像機(jī)運動時的動態(tài)視頻修復(fù)也有一些相關(guān)的研究,但研究成果遠(yuǎn)沒有靜態(tài)視頻修復(fù)成熟。例如,在動態(tài)視頻修復(fù)中,文獻(xiàn)[11-12]的方法采用把視頻分割成移動前景和背景,用塊匹配來實現(xiàn)運動估計。一旦移動的前景被繪制,背景根據(jù)塊匹配估計的運動重新排列,背景是由復(fù)制和粘貼背景像素來填充以此達(dá)到修復(fù)的目的。文獻(xiàn)[13-14]提出的方法也需要先分割前景與背景,然后在每一幀之間估計一組Homographies,并選擇一個Homgraphy應(yīng)用于所有的屬于背景的每個被遮擋的像素。但是這兩種算法都要求對背景和前景進(jìn)行分割,此外,它們還有相當(dāng)嚴(yán)格的像素限制,這意味著重新排列必須是極端準(zhǔn)確的。雖然在這種極其小運動范圍用Homgraphy模型的確可以近似模擬出視頻幀的對應(yīng),但是對于更一般的情況,以上方法所使用的全局模型就會導(dǎo)致較大的誤差。總體上說,目前的動態(tài)視頻修復(fù)方法,或者需要進(jìn)行前景背景的分割,或者其應(yīng)用范圍僅限于攝像頭抖動這類微小運動的情況。
對于攝像機(jī)運動范圍較大的情況,采用哪種對齊模型來補(bǔ)償攝像機(jī)運動是一個重要的理論問題。眾所周知,當(dāng)攝像機(jī)運動是繞定點旋轉(zhuǎn)或者場景是平面時,可以用全局Homography準(zhǔn)確描述攝像機(jī)運動,當(dāng)攝像機(jī)運動范圍很小時,采用全局Homograph仍然可以較好地近似攝像機(jī)運動。然而,當(dāng)攝像機(jī)運動不滿足這些限制時,采用全局Homography近似攝像機(jī)運動會帶來較大的誤差,直接影響后續(xù)的視頻修復(fù)。針對此類情況,本文給出一種基于局部模型對齊的方法,其基本思想是,將圖像中的局部區(qū)域近似為一個小的平面,這樣圖像局部區(qū)域的運動可用一個Homography描述。對圖像不同的區(qū)域采用不同的局部模型,從而提高視頻幀的對齊精度。另外,局部模型的估計精度與局部鄰域中特征點的數(shù)量和分布密切相關(guān),本文采用當(dāng)前性能較好的基于運動一致性的特征匹配方法,有效地增加了特征點的數(shù)量,從而提高了局部模型的估計精度。實驗結(jié)果表明,本文方法不需要事先分割視頻的前景和背景,對攝像機(jī)運動范圍較大的視頻修復(fù)問題,大大提高了視頻對齊精度,相應(yīng)地提升了視頻修復(fù)的質(zhì)量。
如前所述,當(dāng)攝像機(jī)運動滿足一定的限制時,幀間圖像滿足全局2D單應(yīng)矩陣(Homography)約束[15-16]。
設(shè)x=[x,y]T和x′=[x′,y′]T是兩幀圖像I和I′之間的對應(yīng)點,那么描述兩幀圖像間的全局變換模型可表述為:
x′~Hx
(1)
x′×Hx=03×1
(2)
aih=02×1
(3)
式中:ai為2×9的矩陣;h=(h11,h12,h13,h21,h22,h23,h31,h32,h33)T是H矩陣的向量化形式。求解h需要至少4對對應(yīng)點,如果對應(yīng)點數(shù)量超過4對,可通過求解以下目標(biāo)函數(shù)來得到式(4)中A矩陣經(jīng)過SVD分解后最小奇異值對應(yīng)的奇異向量即為h的解。更詳細(xì)的解釋可參看文獻(xiàn)[17]。
(4)
可以看出,基于全局模型的對齊算法是假設(shè)圖像所有位置滿足同一模型,而且上述模型估計過程是利用圖像所有對應(yīng)點求得的,且每組對應(yīng)點具有相同的權(quán)重。對于滿足一定運動限制的攝像機(jī)運動來說,全局模型準(zhǔn)確反映了攝像機(jī)的運動,而且模型計算簡單。然而,對于一般運動和一般場景下拍攝的視頻,由于視差的存在,會導(dǎo)致較大的對齊誤差,從而直接影響后續(xù)的視頻修復(fù)精度。
為了解決全局單一模型在攝像機(jī)一般運動和一般場景下對齊出現(xiàn)重影和鬼影等問題,受文獻(xiàn)[17]的啟發(fā),本文將基于局部模型對齊的方法與靜態(tài)視頻修復(fù)算法結(jié)合,使動態(tài)視頻修復(fù)適用于更加一般的情況。
不同于全局模型,基于局部模型的對齊方法是對圖像不同位置采用不同的對齊模型。其基本思想為:將每個局部區(qū)域近似為一個平面,這樣每個區(qū)域可用一個單應(yīng)矩陣描述其幾何變換。這樣,每個局部區(qū)域的幾何變換可表示為:
(5)
(6)
需要注意的是,不同于全局模型求解方法(式(4)),局部模型方法對每對對應(yīng)點增加了一個權(quán)重因子項w*,具體為:
(7)
式中:σ是一個尺度參數(shù);xi是第i個點匹配的一半的源圖像I中的坐標(biāo)。
直觀地說,由于式(7)為接近x*的數(shù)據(jù)分配更高的權(quán)重,投影扭曲H*更好地尊重x*附近的局部結(jié)構(gòu)。將其與式(1)進(jìn)行對比,后者對所有x*使用單個全局H。此外,由于x*在其域I中連續(xù)移動,因此翹曲H*也平穩(wěn)變化。這就產(chǎn)生了一個能夠靈活地適應(yīng)數(shù)據(jù)的整體扭曲,但試圖保持扭曲的投影趨勢,即靈活的投影扭曲,稱之MovingDLT[17]的方法。
然后劃分為單元,對源圖像I中的每個像素位置x求解是不必要的浪費,因為相鄰位置將產(chǎn)生非常相似的權(quán)重,從而產(chǎn)生非常相似的單應(yīng)性。因此,將二維域I均勻地劃分成一個由C1×C2個單元組成的網(wǎng)格,并以每個單元的中心為x*同一個單元中的像素將使用相同的同形法進(jìn)行扭曲。圖1觀察到翹曲是全局投影外推,但在重疊區(qū)域靈活適應(yīng),以便更好地對齊。
圖1 局部模型對齊
劃分為單元可以有效地將WSVD實例的數(shù)量減少到C1×C2。另外,每一個WSVD實例都是相互獨立的,因此一個簡單的加速計算方法就是并行求解WSVD。即使沒有并行處理,在Pentium i7 2.2 GHz四核機(jī)上,在包含2 100個篩選匹配項(A的大小為4 200×9)的圖像中的所有100×100個單元求解也只需3 s。
一個潛在的問題是,單元間的翹曲可能會出現(xiàn)不連續(xù),因為單元的分割有效地降低了平滑變化的權(quán)重。在實踐中,只要單元分辨率足夠高,彎曲不連續(xù)的影響最小。
最后進(jìn)行圖像的變換和重采樣,這個步驟就是用計算出的投影函數(shù),作用于輸入圖像上,然后采用適當(dāng)?shù)姆椒?,計算出變換后的坐標(biāo)像素值。
對于求解任一點x*處的局部模型,在式(6)中,每組對應(yīng)點在其中的權(quán)重不同,且由式(7)可看出,離x*越近的對應(yīng)點權(quán)重越大,反之,離x*越遠(yuǎn)的對應(yīng)點權(quán)重越小。簡言之,局部模型的估計主要是利用局部鄰域點來估計的,而不是用圖像所有點來估計的。
基于局部模型的對齊方法容易引起圖像的局部變形不連續(xù)問題。然而,文獻(xiàn)[17]的研究表明,這種現(xiàn)象并不突出。正因為此,在諸如圖像拼接等應(yīng)用中,基于局部模型的對齊方法也得到了廣泛的應(yīng)用。
雖然局部模型在具有一定視差時具有較好的對齊效果,但其對齊精度與特征點數(shù)量和分布的影響較大。本文嘗試了Sift、Surf等多種局部特征點匹配算法,實驗表明,這些經(jīng)典的特征匹配方法常常會導(dǎo)致所匹配的特征點比較稀疏,直接影響圖像的局部對齊性能。受GMS算法[18]啟發(fā),本文試圖將GMS算法與局部對齊模型結(jié)合,來尋求更滿意的對齊效果。
GMS算法是一種基于運動一致性的特征匹配算法。運動一致性假設(shè)是指,圖像中相鄰像素點具有相似的運動模式。文獻(xiàn)[15]把這種運動一致性思想轉(zhuǎn)化為更簡單的統(tǒng)計方法,并取得了很大的成功。
GMS算法的基本思想很簡單:正確匹配的特征點的對應(yīng)關(guān)系通常在運動方面會表現(xiàn)出相同的一致性,而錯誤對應(yīng)點之間則不會有這種一致性關(guān)系。因此,在正確的匹配關(guān)系周圍可能會有更多的正確的匹配點支持,而錯誤的匹配對不具有這種規(guī)律性,而是具有隨機(jī)性。
如圖2所示,假設(shè)圖像對Ia和Ib中狗的鼻子部位的匹配點xi是正確的,那么xi周圍支撐區(qū)域a中的特征點更有可能匹配到相應(yīng)的支撐區(qū)域b;反之,假設(shè)圖像對Ia和Ib中狗的腳掌部位的匹配點xj是錯誤匹配,那么xj周圍的特征點的對應(yīng)匹配位置具有一定的隨機(jī)性?;谶@種運動一致性思想,文獻(xiàn)[15]給出了一種基于統(tǒng)計的特征點匹配方法。首先將圖像劃分為一定大小的網(wǎng)格,如果對應(yīng)網(wǎng)格中的匹配點數(shù)量超過預(yù)定的閾值,那么認(rèn)為網(wǎng)格中的匹配是正確的,反之,如果對應(yīng)網(wǎng)格中的匹配點較少,反映了對應(yīng)點不符合一致性假設(shè),因此被認(rèn)為是錯誤匹配。根據(jù)這一思想來區(qū)分正確與錯誤匹配。
圖2 GMS方法原理圖
GMS算法提出后,近幾年獲得了很大的成功,目前已被集成到OpenCV庫中。大量實驗表明,基于GMS的特征匹配方法大大提高了對應(yīng)點匹配數(shù)量,而且具有較高的執(zhí)行效率,非常有利于基于局部模型的視頻對齊,從而提升動態(tài)視頻的修復(fù)性能。
為了保證實驗結(jié)果評價的客觀性,本文采用常用的兩種質(zhì)量評價指標(biāo)PSNR[19]和SSIM[20]對實驗結(jié)果進(jìn)行評價。
3.1.1PSNR
峰值信噪比(PSNR)是一種評價圖像的客觀標(biāo)準(zhǔn)。PSNR是最普遍、最廣泛使用的評鑒畫質(zhì)的客觀量測法,它是原圖像與被處理圖像之間的均方誤差相對于(2n-1)2的對數(shù)值,定義為:
(8)
(9)
式中:MSE指均方誤差;I和K分別代表處理前后的圖像。PSNR值越大,就代表失真越少。
在視頻對齊問題中,I和K分別代表兩幅圖像對齊后重疊區(qū)域的所有像素點的灰度值。
3.1.2SSIM
SSIM是用來衡量兩幅圖像相似度的一個常用指標(biāo),其值越大越好。作為結(jié)構(gòu)相似性理論的實現(xiàn),SSIM的計算是從圖像X和圖像Y的三項指標(biāo)綜合度量的,這三項指標(biāo)分別為:亮度(luminance)、對比度(contrast)和結(jié)構(gòu)(structure)。SSIM定義為:
(10)
式中:μx、μy分別表示圖像X和圖像Y的亮度均值;σx、σy分別表示圖像X和圖像Y亮度的標(biāo)準(zhǔn)差;σxy代表圖像X和圖像Y協(xié)方差;c1、c2為很小的常數(shù),是為了避免括號內(nèi)出現(xiàn)0而設(shè)定的。
在本文實驗中,SSIM指標(biāo)用來評價不同方法對齊后參考圖像與目標(biāo)圖像之間的接近程度,該指標(biāo)也可以用來評價修復(fù)前后的效果對比。
為了比較局部模型與全局模型對齊效果,本文針對不同場景做了實驗。在如下兩組實驗中,特征檢測采用sift特征,特征匹配采用常用的最近鄰與第二近鄰的比值作為匹配準(zhǔn)則,然后采用RANSAC方法去除錯誤匹配點。我們把這種方法稱作一般局部模型匹配方法,方便與下一部分的匹配方法相區(qū)分。
圖3的實驗數(shù)據(jù)是航拍的河流與村莊,視頻一共拍攝235幀,飛行器拍攝的路線跨度較大,相應(yīng)的視頻幀之間的視差也較大。圖3列出第15和第35幀之間的對齊結(jié)果??梢钥闯霾捎萌帜P蛯R后的視頻幀,屋頂和湖泊都有較大程度的重影問題,而采用局部模型的對齊效果比全局模型有了顯著提升。從PSNR指標(biāo)和SSIM指標(biāo)的結(jié)果來看,局部模型對齊后的圖像質(zhì)量要高于全局模型對齊后的圖像質(zhì)量。
(a) 局部模型 (b) 全局模型圖3 局部模型與全局模型對齊效果對比(實驗數(shù)據(jù)1)
圖4的實驗數(shù)據(jù)是距離目標(biāo)5 m拍攝的,場景中既有剛性的建筑對象,又有運動的人與背景,且拍攝場景不在同一平面,視頻視差較大,實驗場景較為復(fù)雜。該視頻數(shù)據(jù)共有358幀,圖4中列出第17與27幀的實驗結(jié)果,其中:第一行兩幅圖像是待對齊的兩幀圖像;第二行是對齊后的全局模型對齊結(jié)果和局部模型對齊結(jié)果;第三第四行是放大后的細(xì)節(jié)??梢钥闯?,全局模型對齊后的圖像中男生的耳朵、鼻子等身體部位都有非常明顯的模糊與重影現(xiàn)象,而局部模型對齊后效果有了明顯改進(jìn)。
(a) 全局模型 (b) 局部DLT模型圖4 全局模型比與局部DLT模型對比(實驗數(shù)據(jù)2)
因PSNR和SSIM指標(biāo)(圖5和圖6)也可得出相同的結(jié)論。
圖5 PSNR指標(biāo)對比(實驗數(shù)據(jù)1)
圖6 SSIM指標(biāo)對比(實驗數(shù)據(jù)1)
綜合實驗結(jié)果來看,由于局部模型和全局把模型本質(zhì)上的算法特性,基于局部模型的Homography更適合描述大視差下的攝像機(jī)運動,基于局部模型的對齊效果都要好于全局模型對齊結(jié)果,從如圖7和圖8所示的實驗也可看出,本文算法結(jié)果要好于以往以全局模型為代表[9]的實驗結(jié)果。
圖7 PSNR指標(biāo)對比(實驗數(shù)據(jù)2)
圖8 SSIM指標(biāo)對比(實驗數(shù)據(jù)2)
根據(jù)局部模型的計算過程可知,局部模型估計的精度與特征點的數(shù)量和分布密切相關(guān)。在實際應(yīng)用時很多情況下常規(guī)的匹配方法得到的特征點比較少,這時采用一般局部模型,其對齊效果就會大打折扣。本節(jié)實驗結(jié)果表明,將GMS特征點檢測算法與局部模型結(jié)合,其對齊結(jié)果有了顯著提高。
在圖9中,最上面兩行分別顯示了采用一般匹配方法與采用GMS方法匹配后的對應(yīng)點,顯然GMS方法匹配數(shù)量要大大多于一般的方法。同時可以明顯看出,特征點數(shù)量的多少對圖像對齊的影響。比如,一般匹配方法對齊后其窗戶和建筑已經(jīng)嚴(yán)重變形,而GMS方法則取得了較好的對齊效果。
文獻(xiàn)[6]是一種經(jīng)典的視頻修復(fù)算法,并且得到了廣泛的應(yīng)用。該算法主要用于修復(fù)靜態(tài)視頻,對視差較小的動態(tài)視頻,先采用全局仿射模型進(jìn)行對齊然后再采用靜態(tài)修復(fù)方法進(jìn)行修復(fù),取得了不錯的效果,并且由于采用了改進(jìn)后的三維patchMatch查找填充塊方法,因此還具有較高的運算效率。在本節(jié)實驗中,視頻對齊采用基于GMS的局部模型方法,而視頻修復(fù)采用了文獻(xiàn)[9]中的方法。
圖10中第一行是拍攝的圖書館建筑的視頻樣例幀,其中黑色區(qū)域是人工污染區(qū)域,我們試圖修復(fù)這塊區(qū)域。該視頻是高度結(jié)構(gòu)化場景,且具有較大的視差,視頻修復(fù)具有較大的難度,如果對齊精度不高,很難保證良好的修復(fù)效果。圖10中第二行左右兩圖分別是采用全局模型對齊和本文局部模型對齊后的修復(fù)結(jié)果。從修復(fù)后的放大圖(第三行)可清晰看出,原圖中門洞部分采用全局模型對齊后的修復(fù)結(jié)果明顯出現(xiàn)了錯誤的填充,而本文方法得到的結(jié)果有了明顯的改善。同樣,PSNR和SSIM指標(biāo)也給出了一致的結(jié)論。
(a) 文獻(xiàn)[9]修復(fù)結(jié)果 (b)本文修復(fù)結(jié)果圖10 文獻(xiàn)[9]與本文方法修復(fù)結(jié)果對比
圖11是另一段實驗視頻。運動視頻中有一運動的老人和年輕男孩。該視頻數(shù)據(jù)共302幀,圖中黑色區(qū)域表示待修復(fù)的部分,本次實驗?zāi)康氖歉淖円曨l故事,即去除原來在視頻中一直出現(xiàn)的年輕男孩,并且在去除男孩后,修復(fù)男孩原來所在的區(qū)域,得到在視覺上滿意的結(jié)果。
(a) 全局模型修復(fù) (b) 局部模型修復(fù)圖11 全局模型與局部模型對齊效果對比
可以看出,采用文獻(xiàn)[6]中全局模型對齊后的視頻幀由于對齊不準(zhǔn),修復(fù)后的圖像中紫色器材上出現(xiàn)明顯錯位和變形,而本文提出的基于局部模型的修復(fù)方法效果在視覺上取得了更加令人滿意的結(jié)果。
圖12 文獻(xiàn)[9]與本文方法PSNR指標(biāo)對比
圖13 文獻(xiàn)[9]與本文方法SSIM指標(biāo)對比
由圖14和圖15可以看出,PSNR指標(biāo)和SSIM指標(biāo)的均值(圖中水平虛線標(biāo)注的部分)本文的修復(fù)方法也都高于文獻(xiàn)[6]的算法。
圖14 全局模型與局部模型PSNR對比
圖15 全局模型與局部模型SSIM對比
為了對算法進(jìn)行進(jìn)一步的客觀評價,本文還使用BSD數(shù)據(jù)集和Urban數(shù)據(jù)集對算法進(jìn)行測試。其中:BSD數(shù)據(jù)集包含200對自然場景的圖片,如圖16所示;Urban數(shù)據(jù)集包含100對城市場景圖片,如圖17所示。測試結(jié)果如表1所示??梢钥闯?,與Alasdair算法相比,本文算法在Urban數(shù)據(jù)集和BSD數(shù)據(jù)集上的結(jié)果的SSIM指標(biāo)和PSNR指標(biāo)均有所提高。
(a) Alasdair (b) 本文算法圖16 Urban數(shù)據(jù)集上算法修復(fù)效果
(a) Alasdair (b) 本文算法圖17 BSD數(shù)據(jù)集上算法修復(fù)效果
表1 在公開數(shù)據(jù)集上的實驗結(jié)果
由圖16、圖17可以看出,本文的視頻修復(fù)算法在BSD數(shù)據(jù)集和Urban數(shù)據(jù)集上都取得了更好的結(jié)果,由表1可以得出,本文算法比Alasdair算法在數(shù)據(jù)集上的表現(xiàn)更好,SSIM評價指標(biāo)和PSNR指標(biāo)都顯示更高。但從時間上來說,本文算法的時間復(fù)雜度更高,花費時間更多。
本文針對視差大、視頻背景復(fù)雜的動態(tài)視頻修復(fù)問題,提出一種基于局部模型對齊的視頻修復(fù)算法。由于局部模型能更好地描述攝像機(jī)的一般運動,因此,相比全局模型取得了更好的對齊效果;另外,本文采用GMS特征匹配方法,有效地增加了特征點匹配的數(shù)量,從而進(jìn)一步提高了局部模型的估計精度。實驗結(jié)果表明,通過提高視頻對齊精度,擴(kuò)展了傳統(tǒng)靜態(tài)視頻修復(fù)方法的適用范圍,有效地提升了動態(tài)視頻修復(fù)性能。下一步我們將繼續(xù)在對應(yīng)點擴(kuò)散、對應(yīng)點的分布調(diào)整方面進(jìn)一步研究,以進(jìn)一步提升基于局部模型的對齊和動態(tài)視頻修復(fù)性能。