歐先鋒 晏鵬程 郭龍源
摘要:傳統(tǒng)的Criminisi算法使用固定大小的樣本塊進(jìn)行修復(fù),無法根據(jù)不同區(qū)域的紋理和結(jié)構(gòu)進(jìn)行調(diào)整,影響圖像的修復(fù)質(zhì)量。為此提出一種自適應(yīng)選擇樣本塊大小的算法,通過計算圖像中像素點的梯度值來反映像素點附近區(qū)域的結(jié)構(gòu)信息,進(jìn)而自適應(yīng)調(diào)整樣本塊大小。實驗結(jié)果表明,改進(jìn)算法可以減少傳統(tǒng)Criminisi算法中可能出現(xiàn)的錯位、斷層等現(xiàn)象,能夠較好地提高破損圖像的修復(fù)效果。
關(guān)鍵詞:Criminisi算法;圖像修復(fù);樣本塊;自適應(yīng)選擇;圖像錯位
中圖分類號:TP391.41文獻(xiàn)標(biāo)志碼:A
文章編號:2095-5383(2018)01-0027-05
數(shù)字圖像在傳輸、處理、保存等過程中容易受到各種因素的影響而丟失部分信息[1],因此圖像修復(fù)技術(shù)的研究具有重要的意義。圖像修復(fù)技術(shù)是利用圖像中的已知區(qū)域信息對破損區(qū)域進(jìn)行填充,使得修復(fù)圖像盡可能與原圖像相似,因此圖像修復(fù)算法的好壞在一定程度上可以通過人眼進(jìn)行主觀判斷。圖像修復(fù)算法可以分為兩類:基于變分PDE的圖像修復(fù)算法[2-3]和基于紋理合成的圖像修復(fù)算法[4-5]。經(jīng)典的基于變分PDE的算法有BSCB[6](Bertalmio、Sapiro、Caselles、Bellester)算法、TV模型[7]和曲率擴(kuò)散模型(CDD)[8]等,它們都適用于受損區(qū)域較小的圖像。其中BSCB是最早提出的基于變分PDE的圖像修復(fù)算法,在處理紋理豐富的受損圖像時修復(fù)效果較差,同時計算量較大;TV模型是BSCB算法的改進(jìn)算法,在修復(fù)圖像時可以祛除噪聲,但在修復(fù)結(jié)構(gòu)性較強(qiáng)的圖像時可能出現(xiàn)錯位、斷層等視覺不連續(xù)性問題;CDD模型改進(jìn)了TV模型,解決了TV模型的視覺不連續(xù)性問題,但是計算量很大。
基于紋理合成的圖像修復(fù)算法適用于受損面積較大的受損圖像,Criminisi算法是最經(jīng)典的基于紋理合成的圖像修復(fù)算法,在處理紋理豐富和結(jié)構(gòu)復(fù)雜的破損圖像時都能取到較好的效果,但是在Criminisi算法的優(yōu)先權(quán)計算過程中可能產(chǎn)生錯誤的修復(fù)順序,同時,使用固定的樣本塊大小也可能導(dǎo)致不能將正確的紋理延伸到破損區(qū)域內(nèi)部而產(chǎn)生錯位、斷層等現(xiàn)象,圖像修復(fù)質(zhì)量有待進(jìn)一步提高。
1 Criminisi算法
Criminisi算法[9]的主要思想是:首先,通過優(yōu)先權(quán)公式計算優(yōu)先權(quán)值,選取待修復(fù)區(qū)域邊緣上優(yōu)先權(quán)最高的像素點;其次,在未破損區(qū)域為優(yōu)先權(quán)最高的待修復(fù)塊尋找最佳匹配塊;最后,將最佳匹配塊中的像素信息填充到待修復(fù)塊中,其原理圖如圖1所示。重復(fù)上述過程,直到整個受損區(qū)域被填充修補(bǔ)完整。
圖1中,I為整幅圖像,Ω為待修復(fù)區(qū)域,Ω表示待修復(fù)區(qū)域的邊緣;Φ表示圖像未破損的區(qū)域,即為圖像已知部分,Φ=I-Ω。算法具體步驟為:
2)在圖像已知信息區(qū)域?qū)ふ遗c目標(biāo)塊匹配最佳的像素塊,再將最佳匹配塊的像素值填充到待修復(fù)區(qū)域的對應(yīng)位置,根據(jù)紋理匹配的SSD標(biāo)準(zhǔn)搜索最佳匹配塊Ψq,然后填充Ψp。
3)填充完成后,更新圖像的置信度C(p)。當(dāng)優(yōu)先權(quán)最高的像素塊Ψp被填充之后,已經(jīng)修復(fù)完后的點p的置信度C(p)就要更新為新的待修復(fù)塊中心點的置信度:
重復(fù)上述步驟,直到整個破損區(qū)域全部修復(fù)完成。
2 自適應(yīng)樣本塊的Criminisi算法
真實的圖像中,圖像的受損區(qū)域包含了豐富的紋理和復(fù)雜的結(jié)構(gòu),圖像修復(fù)算法要求圖像在修復(fù)后紋理一致,結(jié)構(gòu)完整[10]。由于圖像中不同位置所包含的紋理和結(jié)構(gòu)信息不同,
傳統(tǒng)的Criminisi算法在選擇樣本塊時,使用了固定大小的樣本塊,在結(jié)構(gòu)性復(fù)雜的區(qū)域,可能由于樣本塊取值過大,搜索到錯誤的最佳匹配塊,誤差累計將導(dǎo)致修復(fù)結(jié)果不佳。而在紋理單一的區(qū)域,又可能由于固定樣本塊選擇較小,導(dǎo)致算法的修復(fù)時間過長。
針對以上問題,本文提出了一種自適應(yīng)調(diào)整樣本塊大小的Criminisi算法。針對紋理和結(jié)構(gòu)不同的區(qū)域,自適應(yīng)選擇不同大小的樣本塊;同時,采用一種改進(jìn)的優(yōu)先權(quán)計算公式,防止產(chǎn)生錯誤的修復(fù)順序。
2.1 優(yōu)先權(quán)公式改進(jìn)
圖像中像素點的梯度值可以反映該點處的紋理信息[11],梯度值較大說明該點附近的紋理較為豐富。在圖像修復(fù)過程中,通過修復(fù)破損區(qū)域邊緣的點,使得在修復(fù)紋理的同時將結(jié)構(gòu)擴(kuò)散到待修復(fù)區(qū)域,所以應(yīng)該優(yōu)先修復(fù)梯度值較大的點[12]。
傳統(tǒng)的Criminisi算法中,優(yōu)先權(quán)值P(p)可能會隨著修復(fù)的進(jìn)行而出現(xiàn)為0的情況。如式(3)中,當(dāng)破損區(qū)域上點p點處的等照度線向量⊥p與該點處的法向量np垂直時,D(p)的值為0從而可能產(chǎn)生錯誤的修復(fù)順序[13]。
本文采用了一種改進(jìn)的優(yōu)先權(quán)計算公式:
引入C(p)α項后,使得P(p)不會出現(xiàn)等于0的情況,在一定程度上抑制了產(chǎn)生錯誤的修復(fù)順序。
2.2 自適應(yīng)樣本快
傳統(tǒng)的Criminisi算法在修復(fù)過程中使用的是9×9的樣本塊。然而,由于圖像中不同區(qū)域具有不同的紋理結(jié)構(gòu),如果在所有的區(qū)域都采用大小相同的樣本塊進(jìn)行修復(fù),在一定程度上會影響修復(fù)效果。本文提出一種自適應(yīng)選擇樣本塊大小的方法,根據(jù)待修復(fù)區(qū)域內(nèi)不同的結(jié)構(gòu)信息,自動調(diào)節(jié)樣本塊大小,原理圖2所示。
圖2中,I為整幅圖像;Ω為待修復(fù)區(qū)域,即圖像的破損區(qū)域;Ω表示待修復(fù)區(qū)域的邊緣;Φ表示圖像未破損的區(qū)域,即為圖像已知部分。P1、P2、P3為待修復(fù)區(qū)域邊緣Ω上的點,ΨP1 (較小框)、ΨP′1(較大框)、ΨP2、ΨP3分別為以P1、P2、P3為中心的待匹配塊。圖2中,P1、P2附近區(qū)域的結(jié)構(gòu)變化比較明顯,故選擇較小的樣本塊進(jìn)行修復(fù),而P3附近區(qū)域的結(jié)構(gòu)比較平坦,故選擇較大的樣本塊進(jìn)行修復(fù)。從圖中可以看出,比較以點P1為中心的兩個大小不同的樣本塊ΨP1 和ΨP′1,ΨP′1中所包含的已知區(qū)域的結(jié)構(gòu)信息較ΨP1更加復(fù)雜,在使用ΨP′1將無法使正確的紋理延伸到破損區(qū)域內(nèi)部,從而出現(xiàn)斷層、錯位等現(xiàn)象,進(jìn)一步說明了在結(jié)構(gòu)復(fù)雜的區(qū)域應(yīng)選擇較小的樣本塊。
2.2.1 確定自適應(yīng)樣本塊大小
圖像的梯度在一定程度上可以反映圖像各區(qū)域中細(xì)節(jié)的反差和紋理結(jié)構(gòu)的變化,通常,圖像中某像素點的梯度值越大,其附近區(qū)域的紋理越豐富,結(jié)構(gòu)差異越大,在該點處使用較小的樣本塊;對于梯度值較小的像素點,其附近的區(qū)域結(jié)構(gòu)差異相對較小,則使用較大的樣本塊。
在數(shù)字圖像中某點P(x,y)處的梯度值可以利用差分近似求導(dǎo)計算:
2.2.2 本文改進(jìn)算法流程
本文算法的步驟如下:
1)計算待修復(fù)區(qū)域內(nèi)優(yōu)先權(quán)最高的點,按照以下方法確定待修復(fù)塊的大?。?/p>
2)全局搜索最佳匹配塊,并將最佳匹配塊中的像素值填充到待修復(fù)塊中對應(yīng)的位置;
3)更新置信度值C(p);
4)重復(fù)以上步驟,直至修復(fù)完成。
3 仿真結(jié)果與分析
實驗仿真過程中,對cloth、leaf和paper三幅具有不同破損程度和不同區(qū)域結(jié)構(gòu)的測試圖像分別采用Criminisi算法[9]和本文改進(jìn)算法進(jìn)行修復(fù)。圖3、圖4和圖5分別是cloth、leaf和paper三幅破損圖像的修復(fù)結(jié)果對比圖。
由對比圖中的修復(fù)結(jié)果可以看出,Criminisi算法在修復(fù)三張不同的測試圖像時,均出現(xiàn)了不同程度的錯位現(xiàn)象,cloth、paper原圖像中部分區(qū)域結(jié)構(gòu)性較強(qiáng),若對這類圖像進(jìn)行修復(fù)時采用較大的樣本塊,則無法將正確的紋理延伸到破損區(qū)域的內(nèi)部,從而導(dǎo)致了錯位的產(chǎn)生。而本文的改進(jìn)算法中,根據(jù)測試圖像區(qū)域特征,修復(fù)過程中能夠自適應(yīng)地采用不同大小的樣本塊,對比三幅測試圖像的修復(fù)效果,本文改進(jìn)算法能夠較好地修復(fù)破損區(qū)域,整體修復(fù)效果相對于Criminisi算法有較大提升,仿真結(jié)果說明了本文改進(jìn)算法的有效性和優(yōu)越性。
4 結(jié)語
本文研究了基于紋理合成的Criminisi圖像修復(fù)算法,在采用改進(jìn)的優(yōu)先權(quán)計算公式,有效降低錯誤的修復(fù)順序的基礎(chǔ)上,通過進(jìn)一步改進(jìn)樣本塊大小的調(diào)整方式,提出了一種能夠自適應(yīng)調(diào)整樣本塊大小的方法,能夠有效防止修復(fù)過程按錯誤的紋理方向進(jìn)行。實驗結(jié)果表明,本文的改進(jìn)算法相較于Criminisi算法具有較好的修復(fù)效果。
參考文獻(xiàn):
[1]王曉華, 許雪, 王衛(wèi)江,等. 一種稀疏度擬合的圖像自適應(yīng)壓縮感知算法[J]. 北京理工大學(xué)學(xué)報, 2017(1):88-92.[2]李梅菊, 祁清. 數(shù)字圖像修復(fù)技術(shù)綜述[J]. 信息通信, 2016(2):130-131.
[3]徐黎明, 吳亞娟, 張波. 基于八鄰域的自適應(yīng)高階變分圖像修復(fù)算法[J]. 圖學(xué)學(xué)報, 2017, 38(4):558-565.
[4]胡云康, 姜蘇, 吳志榮,等. 基于改進(jìn)的紋理合成圖像修復(fù)算法[J]. 軟件, 2016, 37(4):60-63.
[5]李英, 楊秋翔, 雷海衛(wèi),等. 基于深度圖像繪制技術(shù)的Criminisi算法的改進(jìn)[J]. 計算機(jī)工程與設(shè)計, 2017, 38(5):1287-1291.
[6] 胡海平, 劉曉振. 一種基于非局部BSCB模型的圖像修復(fù)方法[J]. 應(yīng)用數(shù)學(xué)與計算數(shù)學(xué)學(xué)報, 2015, 29(3):374-382.
[7] 楊陳東, 侯海娜. 基于改進(jìn)TV修復(fù)模型的椒鹽噪聲去除算法[J]. 計算機(jī)與數(shù)字工程, 2016, 44(11):2118-2123.
[8]王軍鋒, 裴艷俠, 王濤. 圖像修復(fù)的CDD模型新算法[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2016, 25(8):135-138.
[9]韓明珠, 郭樹旭, 臧玲玲,等. 基于樣本塊的圖像修復(fù)改進(jìn)算法[J]. 計算機(jī)工程與應(yīng)用, 2015, 51(16):192-194.
[10]曾接賢, 王璨. 基于優(yōu)先權(quán)改進(jìn)和塊劃分的圖像修復(fù)[J]. 中國圖象圖形學(xué)報, 2017, 22(9):1183-1193.
[11]胡昭華, 鞠蓉, 李容月,等. 基于梯度紋理特征的稀疏跟蹤方法[J]. 小型微型計算機(jī)系統(tǒng), 2016, 37(8):1857-1861.
[12]王相海, 孫麗, 萬宇,等. 非局域樣本填充和自適應(yīng)曲率驅(qū)動模型的遙感圖像修復(fù)算法[J]. 模式識別與人工智能, 2016, 29(8):735-743.
[13]亓卓亞, 蘇紅旗. 基于Criminisi算法的圖像修復(fù)順序的研究[J]. 無線互聯(lián)科技, 2016(3):120-122.