摘 要: 在研究Criminisi修復(fù)算法的基礎(chǔ)上,提出了改進(jìn)的基于樣本塊的圖像修復(fù)方法。根據(jù)圖像的待修復(fù)面積及其紋理特征,自適應(yīng)選取樣本塊大小,提高修復(fù)的速度;采用新的數(shù)據(jù)項,改進(jìn)優(yōu)先權(quán)公式,避免階梯效應(yīng)的產(chǎn)生;重新定義置信度的更新公式,引入曲率距離,減少因置信度更新而累計的誤差,提高修復(fù)順序的準(zhǔn)確性。實驗表明,改進(jìn)的方法能夠有效提高修復(fù)的效果,減少修復(fù)所需時間。
關(guān)鍵詞: 圖像修復(fù);樣本塊;優(yōu)先權(quán);置信度的更新
0 引言
圖像修復(fù)的本質(zhì)是通過不完整信息重新構(gòu)造出完整信息,對圖像上信息缺損區(qū)域進(jìn)行填充,恢復(fù)受損的圖像,讓觀察者無法用肉眼看出圖像曾損壞過。對圖像修復(fù)技術(shù)的深入研究也是當(dāng)前計算機視覺領(lǐng)域中的一個熱點。
圖像修復(fù)技術(shù)可分為兩大類:基于偏微分的修復(fù)方法[1-3]和基于紋理的修復(fù)方法[4-7]。前者是通過建立偏微分方程,將圖像中完好的信息向受損區(qū)域內(nèi)部擴散,進(jìn)行圖像修復(fù),這類方法能夠保留圖像的線性結(jié)構(gòu),對小尺度破損的圖像的修復(fù)效果較好,但對修復(fù)破損區(qū)域較大的圖像時,計算量大,耗時長,易產(chǎn)生模糊效應(yīng)。后者是利用圖像紋理的重復(fù)性以及規(guī)則性進(jìn)行紋理合成,填補丟失的信息,修復(fù)受損區(qū)域。2003年,Criminisi等人[4]提出了一種基于樣本塊的圖像修復(fù)算法,利用待修復(fù)塊在信息完整區(qū)域匹配選擇紋理塊,結(jié)合擴散修復(fù)方法的優(yōu)點,按照一定的先后順序進(jìn)行填充,保證了圖像紋理修復(fù)的自然順暢,其簡單有效的特點使其成為紋理修復(fù)的經(jīng)典算法。但是利用該算法進(jìn)行修復(fù)的圖像會產(chǎn)生冗余,出現(xiàn)結(jié)構(gòu)不連續(xù)現(xiàn)象,影響最終的修復(fù)效果。本文以Criminisi算法為基礎(chǔ),對其不足之處進(jìn)行改進(jìn),自適應(yīng)選擇最佳樣本塊大小,改進(jìn)優(yōu)先權(quán)公式和置信度更新方式,使紋理和結(jié)構(gòu)信息得到有效利用。通過實驗結(jié)果對比分析,證明改進(jìn)的方法不僅能得到較好的修復(fù)結(jié)果,且能夠大幅度提高修復(fù)的速度。
1 Criminisi算法簡介
Criminisi算法的核心是找到具有最高優(yōu)先權(quán)值的待修復(fù)點p,設(shè)置以p為中心的9×9像素的待修復(fù)塊,在未受損的圖像區(qū)域中尋找最佳樣本塊,將該樣本塊的信息復(fù)制到待修復(fù)塊中,待修復(fù)區(qū)域發(fā)生變化,最后更新邊界和置信度的值,其過程如圖1所示。圖中的是未受損的區(qū)域,是待修復(fù)區(qū)域,是待修復(fù)區(qū)域的邊界,p是上的一點,p是待修復(fù)塊,q為最佳樣本塊。
算法的具體步驟如下:
(1)根據(jù)圖像的特征結(jié)構(gòu),求出優(yōu)先權(quán)值最高的點,確定填充的順序。優(yōu)先權(quán)P(p)的計算公式為:
P(p)=C(p)D(p)(1)
其中,C(p)是待修復(fù)點p的置信度,用來衡量?鬃p包含的可用信息量。D(p)是數(shù)據(jù)項,反映?鬃p的結(jié)構(gòu)特征。表達(dá)如下:
式中q∈時,c(q)=1,否則c(q)=0。|p|是p像素的數(shù)量,是點p的等照度線方向,np是在點p處的單位法向量,是歸一化因子,一般取值為255。
?。?)在已知區(qū)域?椎中尋找與?鬃p最相近的樣本塊q,要求q滿足:
式中的d(p,q′)是p和q′對應(yīng)的已知像素點的顏色差的平方和。之后將最佳樣本塊q中對應(yīng)的像素復(fù)制到待修復(fù)塊p中的未知像素點。
?。?)p被修復(fù)后,待修復(fù)區(qū)域的范圍和邊界都發(fā)生變化,待修復(fù)區(qū)域點的置信度也有了改變,因此需要更新p內(nèi)所有點的置信度:
重復(fù)上述3個步驟直至完成修復(fù)。
2 改進(jìn)的算法
2.1 模板塊大小的自適應(yīng)選擇
原始算法中,Criminisi經(jīng)過多次試驗分析和比較,最終選擇修復(fù)模板塊的大小固定為9×9。由文獻(xiàn)[7]知對不同的圖像,采用不同的樣本塊大小進(jìn)行處理,會得到不同的修復(fù)效果,但過小的模板塊影響修復(fù)的速度,在不影響修復(fù)效果的情況下選取較大的模板塊,能夠提高修復(fù)的效率。為選取最優(yōu)樣本塊,本文利用圖像紋理特征[8]及破損面積自適應(yīng)選擇樣本塊的大小r,通過大量實驗數(shù)據(jù)的擬合,得到式(6)中樣本塊大小選擇和它們之間的關(guān)系:
其中,S是圖像受損面積占整幅圖像的百分比,待修復(fù)區(qū)域越大,用較大的樣本塊去修復(fù),運行的速度和修復(fù)的質(zhì)量都有所提高。T建立圖像幾種紋理特征與r選取的關(guān)系,其中I是圖像的粗糙度,G是圖像的熵均值,L是圖像的能量慣性矩。
2.2 優(yōu)先權(quán)的改進(jìn)
計算優(yōu)先權(quán),確定填充順序,使得修補過程有序進(jìn)行,但原始算法采用C(p)和D(p)直接相乘的形式,當(dāng)C(p)急劇下降直趨近為零時,無論D(p)值多大,都可能會導(dǎo)致優(yōu)先權(quán)函數(shù)值接近為零,圖像中的結(jié)構(gòu)信息無法作為填充順序的參考,使得圖像填充順序變得不準(zhǔn)確,影響圖像修復(fù)的效果。數(shù)據(jù)項D(p)采用受損邊緣梯度向量垂直的等照度線向量和法線向量相乘的形式,不能有效提取圖像結(jié)構(gòu)信息,本文引入基于偏微分模型中的平滑擴散因子D1和D2[5],將其作為數(shù)據(jù)項,定義新的優(yōu)先權(quán)公式如下:
其中置信度添加0.5,保證其不會迅速降為零,是拉普拉斯梯度,分別表示沿著梯度方向和垂直于梯度方向的二階方向?qū)?shù),填充順序要考慮這兩個方向的圖像特征變化,像素變化越小的塊,具有更大的優(yōu)先權(quán),保證圖像能夠沿著邊緣處平滑擴散,避免在平滑區(qū)域產(chǎn)生階梯效應(yīng),在邊緣處出現(xiàn)信息延伸的現(xiàn)象。
2.3 置信度更新改進(jìn)
置信度項的更新是Criminisi算法中重要的一步,因為待修復(fù)塊p被填充后,未知像素點變?yōu)橐阎c,置信度值發(fā)生變化,修復(fù)塊p和樣本塊q不是完全相等的,它們有一定的結(jié)構(gòu)誤差,這個誤差會隨著修復(fù)過程不斷的疊加而增多,填充順序的可信度逐漸降低,最終影響圖像的修復(fù)結(jié)果。提出的改進(jìn)的置信度項更新公式如下:
式中Ipi,Iqi分別表示待修復(fù)塊p和樣本塊q的對應(yīng)已知點的等照度線的曲率,n表示樣本塊中p已知像素點的個數(shù),這樣可以使得差異度小的塊有較大的置信度值,減小誤差的累積,避免冗余現(xiàn)象的產(chǎn)生。
2.4 本文算法步驟
(1)輸入待修復(fù)的彩色圖像,手動選擇需要修復(fù)的區(qū)域;
?。?)按公式(6)選擇最優(yōu)樣本塊的大小;
(3)利用公式(8)計算待修復(fù)區(qū)域的邊界上各點的優(yōu)先權(quán)P(p),確定待修復(fù)區(qū)域內(nèi)的填充順序;
(4)在匹配區(qū)域中搜索最佳匹配塊q;
?。?)將q中對應(yīng)的圖像信息復(fù)制到待修復(fù)塊p中;
?。?)利用公式(10)更新置信度項C(p);
?。?)重復(fù)步驟(2)~(6),直到整個待修復(fù)區(qū)域被填充完。
3 實驗結(jié)果和分析
本文算法是以MATLAB7.1為仿真平臺實現(xiàn)的,硬件環(huán)境是Intel(R)Core(TM)i5-2430M 2.4 GHz處理器,2 GB內(nèi)存。用文獻(xiàn)[4]和本文改進(jìn)的算法對四幅受損圖像進(jìn)行修復(fù)實驗,如圖2~圖5所示,其中圖2和圖3是對受損的區(qū)域進(jìn)行填充,本文用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和修復(fù)所需的時間對圖像進(jìn)行評價,見表1和表2。圖4和圖5是對目標(biāo)物的移除,在實際情況中,很難找到原始圖進(jìn)行PSNR對比,這里主要借用人眼的觀測和消耗的時間進(jìn)行評價。
從表1和表2可以看出,實驗圖1和實驗圖2改進(jìn)算法的PSNR值比文獻(xiàn)[4]要高,而四個實驗的修復(fù)速度基本上提高了30%~50%。從視覺上比較可以看出:圖2(c)出現(xiàn)塊匹配錯誤,使得圖像有明顯修復(fù)痕跡,圖2(d)減弱了修復(fù)的錯誤匹配,避免了修復(fù)區(qū)域不均的現(xiàn)象。圖3(c)中圖像明顯沒有很好地進(jìn)行填充修復(fù),圖3(c)從視覺上看基本與原圖無差。圖4(c)對人物的填充,在修復(fù)的邊緣處,有明顯的紋理延伸,房頂沒有得到較好修復(fù),陸地上的草延伸至水中,圖4(d)修復(fù)的結(jié)果在邊緣處能夠平滑過渡,獲得較好修復(fù)效果。圖5(c)明顯沒有修復(fù)完全,有殘余的飛機尾翼未被填充,而圖5(d)的結(jié)果更為自然。
4 結(jié)論
本文在文獻(xiàn)[4]的基礎(chǔ)上進(jìn)行改進(jìn)。根據(jù)圖像破損的面積及其紋理特征,自適應(yīng)選擇最優(yōu)的樣本塊大小。引入平滑擴散因子,改進(jìn)優(yōu)先權(quán)計算公式,增強圖像結(jié)構(gòu)特征的影響,避免因置信度的急劇衰減而導(dǎo)致的錯誤修復(fù)順序。提出新的置信度更新方式,減少在修復(fù)過程中,因待修復(fù)塊和樣本塊之間的結(jié)構(gòu)差異而累計的誤差。實驗結(jié)果表明,本文改進(jìn)的算法在提高修復(fù)速度的同時,能夠獲得更好的修復(fù)效果。
參考文獻(xiàn)
[1] BERTALMIO M, SAPIRO G, CASELLES V, et al. Image inpainting[C]. Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques. New York: ACM Press,2000:417-424.
[2] CHAN T F,SHEN J. Mathematical models for local non-texture inpaintings[J]. SIAM Journal on Applied Math, 2001,62(3):1019-1043.
[3] DRORI I, DANIEL C-O, YESHURUN H. Fragment based image completion[J]. ACM Transactions on Graphics, 2003,22(3): 303-312.
[4] CRIMINISI A, PEREZ P, TOYAMA K. Region filling and object removal by exemplar-based image inpainting[J]. IEEE transactions on image processing,2004,13(9):1200-1212.
[5] 王遠(yuǎn)敏,朱曉明,孫雁飛,等.基于模板的圖像修復(fù)算法優(yōu)先權(quán)的改進(jìn)[J].信息技術(shù),2008(5):64-67.
[6] 張偉偉,何凱,孟春芝.自適應(yīng)選取樣本塊大小的紋理合成方法[J].計算機工程與應(yīng)用,2012:48(17):170-173.
[7] 潘姣君,謝伙生.結(jié)合灰度共生矩陣和熵的圖像修復(fù)算法[J].微型機與應(yīng)用,2012,31(21):44-46.
[8] 賀雙雙,戴青云.綜合紋理和形狀特征的外觀專利圖像檢索算法研究[J].微型機與應(yīng)用,2013,32(4):42-44,47.