本發(fā)明屬于計(jì)算機(jī)圖像復(fù)原領(lǐng)域,涉及一種圖像修復(fù)算法,可用于文物保護(hù)、影視特效制作等。
背景技術(shù):
圖像修復(fù)是對(duì)受損圖像進(jìn)行修復(fù)重建,或者去除圖像中的多余物體,同時(shí)保證圖像原有的視覺效果。作為計(jì)算機(jī)圖形學(xué)和計(jì)算機(jī)視覺領(lǐng)域中的一個(gè)研究熱點(diǎn),圖像修復(fù)技術(shù)在老照片的修復(fù)、劃痕的移除、恢復(fù)傳輸過程中的圖像數(shù)據(jù)丟失等方面,都具有重要的研究價(jià)值。
目前的圖像修復(fù)算法主要可以分為兩大類:一類是適用于小區(qū)域破損區(qū)域修復(fù)的基于偏微分方程的圖像修復(fù)算法,主要是利用熱擴(kuò)散方程建立圖像的偏微分方程,并按照一定的規(guī)則向待修復(fù)區(qū)域擴(kuò)散,該技術(shù)現(xiàn)已較為成熟;另一類是基于紋理合成的大區(qū)域圖像修復(fù)算法,也是目前圖像修復(fù)的重點(diǎn)。其主要思想是利用圖像破損區(qū)域附近完好的紋理信息,對(duì)待修復(fù)區(qū)域進(jìn)行塊匹配和復(fù)制,從而達(dá)到圖像修復(fù)的目的。經(jīng)典算法是Criminisi等提出的基于樣本塊的修復(fù)算法(Criminisi A,Perez P,Toyama K.Object removal by exemplar-based inpainting[C]//Proceedings of 2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Wisconsin,USA,2003:721-728.)。該算法中的優(yōu)先權(quán)計(jì)算方法同時(shí)兼顧了圖像的紋理與結(jié)構(gòu),但傳統(tǒng)基于樣本塊的圖像修復(fù)算法在搜索最優(yōu)匹配塊時(shí),容易產(chǎn)生誤匹配進(jìn),且在優(yōu)先權(quán)的計(jì)算上因置信度衰減過快產(chǎn)生錯(cuò)誤的修復(fù)引導(dǎo)方向,修復(fù)效果不是很理想,各國學(xué)者在該算法基礎(chǔ)上提出了許多改進(jìn)算法加以改善。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)上述問題提出一種新的置信度更新函數(shù),用來抑制置信度衰減過快的現(xiàn)象,以提高圖像引導(dǎo)修復(fù)方向的準(zhǔn)確性;此外,鑒于SSD匹配準(zhǔn)則(在基于樣本塊紋理合成及改進(jìn)算法中廣泛采用)魯棒性較低,本發(fā)明引入Census變換(簡記CT)匹配準(zhǔn)則,以提高尋找最優(yōu)匹配塊的準(zhǔn)確度。本發(fā)明的技術(shù)方案如下:
一種基于改進(jìn)置信度更新函數(shù)及匹配準(zhǔn)則的圖像修復(fù)算法,該方法針對(duì)Criminisi提出的基于樣本塊圖像修復(fù)算法,對(duì)其置信度項(xiàng)、匹配準(zhǔn)則進(jìn)行改進(jìn),包括下列步驟:
1)以待修復(fù)圖像I內(nèi)破損區(qū)域Ω邊緣上的各點(diǎn)為目標(biāo)像素點(diǎn)p,得到各目標(biāo)像素點(diǎn)p的置信度項(xiàng)C(p)與數(shù)據(jù)項(xiàng)D(p);
2)計(jì)算優(yōu)先權(quán)P(p),其中e為自然底數(shù);
3)選取優(yōu)先權(quán)最大的目標(biāo)像素點(diǎn)p*,并將其對(duì)應(yīng)的目標(biāo)塊標(biāo)記為待修復(fù)塊;
4)將基于樣本塊的匹配算法中的最小均方差之和SSD和CT匹配準(zhǔn)則相結(jié)合并賦予不同的權(quán)重用以 構(gòu)成新的相似性度量函數(shù),然后利用該相似性度量函數(shù)在待修復(fù)塊周圍的源區(qū)域Φ內(nèi)搜索與其匹配程度最高的最優(yōu)匹配塊使用最優(yōu)匹配塊對(duì)破損的待修復(fù)塊進(jìn)行對(duì)應(yīng)破損像素點(diǎn)的填充,即完成待修復(fù)塊的修復(fù),并將其標(biāo)記為已修復(fù)的樣本塊,其中,源區(qū)域Φ為待修復(fù)塊周圍的圖像未破損區(qū)域;
5)更新破損區(qū)域Ω及源區(qū)域Φ,根據(jù)公式更新已修復(fù)樣本塊內(nèi)相應(yīng)像素點(diǎn)的置信度值,其中m為待修復(fù)塊與破損區(qū)域Ω交集內(nèi)的任意像素點(diǎn);
6)重復(fù)上述步驟(1)~(5)直至破損區(qū)域?yàn)榭占瘎t圖像修復(fù)完畢。
本發(fā)明針對(duì)傳統(tǒng)的樣本塊修復(fù)算法中存在的不足,提出一種基于置信度更新函數(shù)及匹配代價(jià)的圖像修復(fù)算法,在最優(yōu)匹配塊搜索階段,利用Census變換匹配代價(jià)與傳統(tǒng)SSD匹配代價(jià)相結(jié)合,提出了新的相似性度量函數(shù),提高了匹配塊搜索的準(zhǔn)確度和魯棒性。在置信度更新階段,提出一種新的置信度更新函數(shù)用來抑制置信度衰減過快的現(xiàn)象,以獲得更為準(zhǔn)確的圖像引導(dǎo)修復(fù)方向。相比于現(xiàn)有技術(shù),本發(fā)明的有點(diǎn)有以下兩點(diǎn):
(1)本發(fā)明通過引入Census變換來提高樣本塊匹配的可靠性。Census變換是一種反應(yīng)局部范圍內(nèi)灰度變化的非參數(shù)變換方法,它是一種基于灰度對(duì)比的非參數(shù)變換,對(duì)圖像的光照和幾何變化具有較高的魯棒性。將其與SSD準(zhǔn)則相結(jié)合,克服了傳統(tǒng)方法中由于數(shù)據(jù)畸變所帶來的誤匹配。
(2)本發(fā)明提出一種改進(jìn)的置信度更新函數(shù),以使得置信度值在修復(fù)迭代過程中較為緩慢的趨于0,進(jìn)而提高引導(dǎo)修復(fù)方向的準(zhǔn)確度。
總之,本發(fā)明較好的解決了傳統(tǒng)樣本塊修復(fù)算法中存在的誤匹配問題,對(duì)于修復(fù)具有復(fù)雜結(jié)構(gòu)紋理的圖像方面得了較好的視覺效果,結(jié)構(gòu)引導(dǎo)方向更為準(zhǔn)確,同時(shí)對(duì)各種自然紋理具有較強(qiáng)的魯棒性等特點(diǎn),有著廣泛的應(yīng)用前景。
附圖說明
圖1本發(fā)明的基于置信度更新函數(shù)及匹配代價(jià)的圖像修復(fù)算法流程圖。
圖2~4為本發(fā)明與傳統(tǒng)圖像修復(fù)算法對(duì)不同圖像的修復(fù)效果對(duì)比,其中:
圖(a)代表原始圖像,
圖(b)黑色區(qū)域代表破損區(qū)域;
圖(c)為經(jīng)典Criminisi算法的修復(fù)效果;
圖(d)為Entropy算法修復(fù)效果;
圖(e)為Parabola算法修復(fù)效果
圖(f)為本發(fā)明方法修復(fù)效果
具體實(shí)施方式
本發(fā)明基于改進(jìn)置信度更新函數(shù)及匹配準(zhǔn)則的圖像修復(fù)算法,主要由三部分組成:優(yōu)先權(quán)計(jì)算、置信度更新、搜索最優(yōu)匹配塊。具體步驟和原理如下:
101:計(jì)算待修復(fù)圖像破損區(qū)域內(nèi)目標(biāo)像素點(diǎn)的優(yōu)先權(quán);
待修復(fù)圖像為I,待修復(fù)圖像的破損區(qū)域?yàn)棣?,其邊緣為目?biāo)像素點(diǎn)p為邊界上的任意一點(diǎn),Ψp為以p為中心尺寸為13×13的目標(biāo)塊。待修復(fù)圖像的源區(qū)域?yàn)棣?,滿足關(guān)系Φ+Ω=I。
目標(biāo)像素點(diǎn)p處優(yōu)先權(quán)P(p)的計(jì)算公式如下:
其中,e為自然底數(shù),C(p)為置信度項(xiàng),用于衡量目標(biāo)塊內(nèi)可靠信息的數(shù)量,其數(shù)值越大代表信息越可靠,初始化其中,q為源區(qū)域Φ內(nèi)的像素點(diǎn);D(p)為數(shù)據(jù)項(xiàng),代表了p點(diǎn)等照度線的強(qiáng)度。表示p點(diǎn)梯度方向的垂直方向,即代表邊界等照度線方向,Ix(p)、Iy(p)分別代表p在x、y方向上的梯度值,為歸一化因子,通常取255??梢姡瑑?yōu)先權(quán)系數(shù)兼顧了圖像的紋理和結(jié)構(gòu),能夠在很大程度上引導(dǎo)修復(fù)過程有條理地進(jìn)行。
102:選取優(yōu)先權(quán)最大的目標(biāo)像素點(diǎn),并將其對(duì)應(yīng)的目標(biāo)塊標(biāo)記為待修復(fù)塊;
根據(jù)如下公式計(jì)算目標(biāo)像素點(diǎn)優(yōu)先權(quán)最大的點(diǎn)p*
其中為破損區(qū)域的邊界。得到p*后,其對(duì)應(yīng)的目標(biāo)塊即為待修復(fù)塊。
103:根據(jù)SSD(即最小均方差之和)和CT(Census變換)匹配準(zhǔn)則構(gòu)成的相似性度量函數(shù)計(jì)算待修復(fù)塊對(duì)應(yīng)的最優(yōu)匹配塊;
確定待修復(fù)塊后,采用SSD+CT匹配準(zhǔn)則在源區(qū)域Φ內(nèi)尋找與其尺寸相同的的最優(yōu)匹配塊
SSD匹配準(zhǔn)則計(jì)算待修復(fù)塊與匹配塊Ψq的SSD匹配代價(jià)的公式為:
其中,R(a)、G(a)、B(a)表示待修復(fù)塊內(nèi)的任意像素點(diǎn)a的R、G、B分量,R(b)、G(b)、B(b) 表示匹配塊Ψq內(nèi)的像素點(diǎn)b的R、G、B分量。
CT(即Census變換的簡稱)匹配準(zhǔn)則計(jì)算待修復(fù)塊與匹配塊Ψq的CT匹配代價(jià)的公式為:
其中表示以p*為中心,N(p*)鄰域內(nèi)任意像素點(diǎn)s的編碼結(jié)果,CTq(t)表示以q為中心,N(q)鄰域內(nèi)任意像素點(diǎn)t的編碼結(jié)果。為N(p*)鄰域內(nèi)所有的像素點(diǎn)按照列坐標(biāo)優(yōu)先的原則依次進(jìn)行編碼而得到的編碼流,code_CTq為N(q)鄰域內(nèi)所有的像素點(diǎn)按照列坐標(biāo)優(yōu)先的原則依次進(jìn)行CTq(t)編碼而得到的編碼流。
為編碼流與編碼流code_CTq之間的漢明距離,將其記為待修復(fù)塊與匹配塊Ψq的CT匹配代價(jià)
根據(jù)SSD+CT匹配準(zhǔn)則構(gòu)成的相似性度量函數(shù)計(jì)算待修復(fù)塊與匹配塊Ψq的總匹配代價(jià) 的公式為:
其中,λ為權(quán)重值,取為0.1。
在得到總匹配代價(jià)后,即可計(jì)算得到待修復(fù)塊對(duì)應(yīng)的最優(yōu)匹配塊
傳統(tǒng)基于樣本塊圖像修復(fù)算法在尋找最優(yōu)匹配塊時(shí),通常采用SSD匹配準(zhǔn)則作為相似性度量函數(shù),僅考慮顏色信息之間的差異,缺乏魯棒性,容易受到干擾,匹配可靠性不高。本發(fā)明通過引入Census變換(簡稱CT)來提高樣本塊匹配的可靠性。Census變換是一種反應(yīng)局部范圍內(nèi)灰度變化的非參數(shù)變換方法,它是一種基于灰度對(duì)比的非參數(shù)變換,對(duì)圖像的光照和幾何變化具有較高的魯棒性。
因此,將Census變換匹配準(zhǔn)則引入到尋找最優(yōu)匹配塊階段,可以克服傳統(tǒng)方法中由于數(shù)據(jù)畸變所帶來的誤匹配現(xiàn)象。
104:使用最優(yōu)匹配塊對(duì)破損的待修復(fù)塊進(jìn)行填充修復(fù),并將待修復(fù)塊標(biāo)記為已修復(fù)的樣本塊,更新 破損區(qū)域及源區(qū)域;
得到最優(yōu)匹配塊后,對(duì)破損的待修復(fù)塊進(jìn)行填充修復(fù),即
其中表示內(nèi)與相對(duì)應(yīng)的區(qū)域。
然后更新破損區(qū)域及源區(qū)域,分別得到新的破損區(qū)域Ωnew及新的源區(qū)域Φnew即
接著將新的破損區(qū)域再次標(biāo)記為破損區(qū)域,將新的源區(qū)域再次標(biāo)記為源區(qū)域,即
Ω=Ωnew
Φ=Φnew
105:更新已修復(fù)樣本塊內(nèi)相應(yīng)像素點(diǎn)的置信度值;
按照以下公式對(duì)已修復(fù)樣本塊內(nèi)相應(yīng)像素點(diǎn)的置信度值,
其中m為內(nèi)的任意像素點(diǎn)。
傳統(tǒng)基于樣本塊的圖像修復(fù)算法是直接利用優(yōu)先權(quán)最高的點(diǎn)對(duì)應(yīng)的置信度值來更新修復(fù)區(qū)域的置信度值,即令C(m)=C(p*),這相當(dāng)于使用函數(shù)f(x):y=x,x∈[0,1]去更新置信度值(其中x,y分別為函數(shù)的自變量和因變量),很容易導(dǎo)致置信度值在迭代的過程中迅速趨于0,進(jìn)而產(chǎn)生錯(cuò)誤的引導(dǎo)修復(fù)方向。
本發(fā)明提出的改進(jìn)置信度更新公式
相當(dāng)于使用函數(shù)h(x):y=e2-2x·x2,x∈[0,1]去更新置信度值(其中x,y分別為函數(shù)的自變量和因變量)。分析比較h(x)與f(x)的函數(shù)圖像可知,h(x)函數(shù)曲線均在f(x)上方,即采用h(x)更新置信度值,其置信度值下降的速度應(yīng)比f(x)慢。
本發(fā)明提出形如y=e2-2x·x2的置信度更新函數(shù),以使得置信度值在修復(fù)迭代過程中較為緩慢的趨于0,進(jìn)而提高引導(dǎo)修復(fù)方向的準(zhǔn)確度。
106:重復(fù)步驟101-105,直至破損區(qū)域?yàn)榭占?,完成圖像的最終修復(fù)。
下面以具體的試驗(yàn)來驗(yàn)證本方法的可行性,詳見下文描述:
試驗(yàn)結(jié)果均為本方法在CPU為Inteli3-3110M,2.4GHz,內(nèi)存為4G的筆記本電腦上運(yùn)行所得,操作系統(tǒng) 為Windows 7,仿真軟件為32位Matlab R2013a。
從圖2中可以看出,對(duì)于Beach圖像,利用Criminisi算法和Entropy算法,在海水區(qū)域均有明顯錯(cuò)誤的修復(fù)痕跡,即將海浪與沙灘邊界的白色部分?jǐn)U散到中間的海水區(qū)域,這說明傳統(tǒng)SSD匹配不夠準(zhǔn)確,產(chǎn)生了誤匹配;Parabola算法修復(fù)效果略好于上述兩種算法,但也存在較為明顯的擴(kuò)散效果,而本發(fā)明算法采用了匹配性能更佳的SSD+CT匹配準(zhǔn)則,并使用了新的置信度更新函數(shù),海水區(qū)域的修復(fù)更加自然合理,沒有明顯的擴(kuò)散現(xiàn)象,取得了比較理想的紋理合成修復(fù)。
從圖3可以看出,對(duì)于Pyramid圖像,利用前3種算法修復(fù)后,由于置信度快速下降,導(dǎo)致產(chǎn)生了錯(cuò)誤的修復(fù)引導(dǎo),修復(fù)后金字塔尖端有明顯的凹陷,而本發(fā)明算法則很好的保持了金字塔的結(jié)構(gòu)特征,修復(fù)效果更加自然合理。
從圖4可以看出,Criminis、Entropy、Parabola算法修復(fù)后,中間黃色線明顯凹陷,proposed算法雖然從整體看較流暢自然,但在直線處略不平整,而本發(fā)明算法不僅修復(fù)效果流暢自然,同時(shí)在結(jié)構(gòu)處理方面也更為理想。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
本發(fā)明的具體流程如下:
(1)以待修復(fù)圖像I內(nèi)破損區(qū)域Ω邊緣上的各點(diǎn)為目標(biāo)像素點(diǎn)p,得到各目標(biāo)像素點(diǎn)p的置信度項(xiàng)C(p)與數(shù)據(jù)項(xiàng)D(p)后,計(jì)算它們的優(yōu)先權(quán)P(p),其中e為自然底數(shù),選取優(yōu)先權(quán)最大的目標(biāo)像素點(diǎn)p*,并將其對(duì)應(yīng)的目標(biāo)塊標(biāo)記為待修復(fù)塊
(2)將SSD(即最小均方差之和)和CT(Census變換)匹配準(zhǔn)則相結(jié)合并賦予不同的權(quán)重用以構(gòu)成新的相似性度量函數(shù),然后利用該相似性度量函數(shù)在待修復(fù)塊周圍的源區(qū)域內(nèi)搜索與其匹配程度最高的最優(yōu)匹配塊使用最優(yōu)匹配塊對(duì)破損的待修復(fù)塊進(jìn)行對(duì)應(yīng)破損像素點(diǎn)的填充,即完成待修復(fù)塊的修復(fù),并將其標(biāo)記為已修復(fù)的樣本塊
(3)更新破損區(qū)域Ω及源區(qū)域Φ,并利用形如的置信度更新函數(shù)更新步驟(2)中已修復(fù)樣本塊內(nèi)相應(yīng)像素點(diǎn)的置信度值,其中m為待修復(fù)塊與破損區(qū)域Ω交集內(nèi)的任意像素點(diǎn),依次重復(fù)上述步驟直至破損區(qū)域?yàn)榭占瘎t圖像修復(fù)完畢。