本發(fā)明屬于數(shù)字圖像修復(fù)
技術(shù)領(lǐng)域:
,具體一種邊緣擬合的分類稀疏表示圖像修復(fù)方法。
背景技術(shù):
:傳統(tǒng)的圖像修復(fù)方法分為兩類:一類是基于偏微分方程的方法。該方法本質(zhì)上是一種擴(kuò)散過程,但在修復(fù)大面積區(qū)域時(shí)存在明顯模糊。另一類是基于紋理合成的方法。該方法用匹配塊替換待修復(fù)塊,當(dāng)找不到匹配塊時(shí)就會(huì)產(chǎn)生錯(cuò)誤匹配并延續(xù)錯(cuò)誤。為了解決貪婪性造成的錯(cuò)誤匹配,人們對(duì)算法進(jìn)行了很多改進(jìn),但仍然避免不了錯(cuò)誤的匹配和加權(quán)圖像塊過多帶來的模糊。最近,一種新的圖像稀疏表示方法在圖像處理領(lǐng)域得到重視,許多學(xué)者將稀疏理論運(yùn)用到圖像修復(fù)的方法中。技術(shù)實(shí)現(xiàn)要素:在實(shí)驗(yàn)中發(fā)現(xiàn),基于稀疏表示的圖像修復(fù)算法中均采用OMP重構(gòu)算法,在對(duì)待修復(fù)圖像進(jìn)行重構(gòu)時(shí),往往需要預(yù)估信號(hào)的稀疏度,無論稀疏度估計(jì)過小或者過大都不能達(dá)到較好的重構(gòu)效果;其次,稀疏表示方法對(duì)結(jié)構(gòu)平滑性的保持不夠理想,特別是對(duì)曲線進(jìn)行修復(fù)時(shí),會(huì)在結(jié)構(gòu)處產(chǎn)生一些畸變。為了較好地修復(fù)圖像的結(jié)構(gòu)信息,本發(fā)明從考慮結(jié)構(gòu)整體平滑性的角度,結(jié)合樣本稀疏表示和結(jié)構(gòu)約束修復(fù)的優(yōu)點(diǎn),發(fā)明了一種邊緣擬合的分類稀疏表示圖像修復(fù)方法。本發(fā)明采取以下技術(shù)方案:采用整體邊緣和局部邊緣相結(jié)合的提取方法,對(duì)待修復(fù)區(qū)域的斷裂邊緣進(jìn)行提取,獲得反映邊緣特征的各類信息,根據(jù)這些信息按一定規(guī)則將斷裂邊緣線進(jìn)行曲線擬合,以保證圖像邊緣結(jié)構(gòu)的修復(fù)嚴(yán)格受到邊緣輪廓線的約束;采用按特征分類進(jìn)行字典訓(xùn)練,以增強(qiáng)學(xué)習(xí)字典的自適應(yīng)性;采用近似雙曲正切函數(shù)去近似l0范數(shù),利用共軛梯度法求解該函數(shù),實(shí)現(xiàn)對(duì)傳統(tǒng)SL0算法的改進(jìn),將不需要預(yù)估稀疏度的SL0重構(gòu)算法應(yīng)用于非邊緣破損區(qū)域的圖像修復(fù)中,以提高稀疏表示修復(fù)紋理信息的可靠性。具體步驟如下:第一步:獲取和修復(fù)圖像的邊緣信息。1-1.通過Sobel算子提取整體邊緣,獲得破損圖像的強(qiáng)邊緣,為圖像修復(fù)提供圖像的整體邊緣結(jié)構(gòu);1-2.采用“將存在連續(xù)4個(gè)邊緣點(diǎn)及以上的斷裂邊緣線定義為主體結(jié)構(gòu)邊緣”的原則,采用整體邊緣提取與破損周邊區(qū)域局部邊緣提取相結(jié)合的方法實(shí)現(xiàn),有效獲取破損周邊區(qū)域的斷裂邊緣結(jié)構(gòu)信息,找到待修復(fù)邊界與邊緣信息的交點(diǎn)。將這些斷裂曲線(設(shè)斷裂曲線為c1,c2,…,cn,記為集合Q,其中斷裂曲線ci的起點(diǎn)為pi1)一一對(duì)應(yīng)地連接。將斷裂曲線ci在其起點(diǎn)pi1上的方向向量幾乎相反的兩條斷裂曲線相連。由此通過曲線ci的方向向量將Q分為兩個(gè)集合Q1,Q2。分類完成后,計(jì)算各曲線起點(diǎn)之間的距離,將起點(diǎn)距離最近的兩條曲線通過二次多項(xiàng)式曲線擬合的方法進(jìn)行連接。具體步驟如下:1-2-1.對(duì)于任意的斷裂曲線ci,由起點(diǎn)pi1出發(fā),獲取ci上的其它各點(diǎn)pi2,pi3,pi4,。若為點(diǎn)pi,j的坐標(biāo)向量,則曲線ci在起點(diǎn)pi1上的方向向量定義為:s→i=0.5(p→i,1-p→i,2)+0.25(p→i,2-p→i,3)+0.125(p→i,3-p→i,4)---(1)]]>其中,將單位化,1-2-2.循環(huán)步驟1-2-1求出每條斷裂曲線ci的方向向量,將c1放入集合Q1中,然后遍歷剩下的所有曲線ci,求出與Q1中所有曲線的方向向量夾角和最小的曲線,記為cmin,并放入集合Q1,直到Q1中的元素為總曲線數(shù)量的一半,剩下的曲線放入集合Q2。cmin∈Q1,iffΣci∈Q1θ(s→i,s→min)=mincj∈Q-Q1{Σcj∈Q1θ(s→i,s→j)}---(2)]]>1-2-3.將Q中的曲線分類后,取Q1中的一條曲線,在Q2中尋找與Q1中選取的曲線起點(diǎn)距離最近的曲線,將這兩條曲線進(jìn)行二次多項(xiàng)式曲線擬合,即完成斷裂曲線的連接;當(dāng)完成這兩條斷裂曲線的連接后,將這兩條曲線分別從集合Q1,Q2中剔除,然后按照上述方法對(duì)剩下的曲線進(jìn)行處理,直到斷裂的曲線全部連接完成,得到修復(fù)的邊緣輪廓信息。第二步:對(duì)圖像塊按特征分類以及K-SVD字典訓(xùn)練。為了增強(qiáng)學(xué)習(xí)字典的自適應(yīng)性,采用結(jié)合圖像塊梯度信息和局部方差的方法對(duì)圖像塊進(jìn)行分類。眾所周知,邊緣和紋理信息往往存在于含有豐富結(jié)構(gòu)信息的圖像塊中,反之,圖像的平滑區(qū)域含有較少的結(jié)構(gòu)信息。根據(jù)像素的梯度變化的越劇烈,圖像塊內(nèi)結(jié)構(gòu)信息就越豐富;而結(jié)構(gòu)信息稀少的圖像塊,其內(nèi)部像素的梯度普遍比較小。因此,梯度信息可以很好的反映圖像塊的結(jié)構(gòu)信息豐富程度(即平滑程度)。令圖像中任意位置(x,y)的像素值為f(x,y),其上下左右4個(gè)方向的梯度值為:g1(x,y)=|f(x,y)-f(x-1,y)|g2(x,y)=|f(x,y)-f(x+1,y)|g3(x,y)=|f(x,y)-f(x,y-1)|g4(x,y)=|f(x,y)-f(x,y+1)|---(3)]]>取這4個(gè)方向上的最大梯度值為該像素點(diǎn)的權(quán)值:g(x,y)=max{g1(x,y),g2(x,y),g3(x,y),g4(x,y)}(4)將每個(gè)圖像塊(大小為n×m)內(nèi)的每個(gè)像素進(jìn)行梯度加權(quán),其大小為:uk=Σx=1nΣy=1mg(x,y)×f(x,y)Σx=1nΣy=1mg(x,y)---(5)]]>uk為第k個(gè)圖像塊的梯度加權(quán)值。為了將圖像塊進(jìn)行分類,設(shè)定一個(gè)閾值T1,其中T1為經(jīng)驗(yàn)常數(shù),一般取T1=100。當(dāng)uk<T1時(shí),表示圖像塊為平滑區(qū),反之圖像塊為結(jié)構(gòu)豐富區(qū)。雖然邊緣結(jié)構(gòu)區(qū)和不規(guī)則紋理區(qū)域的梯度變化都普遍較大,但圖像的局部方差往往能較好的體現(xiàn)出圖像的細(xì)節(jié)信息,其包含了圖像的大量結(jié)構(gòu)信息。因此,利用局部方差對(duì)上述結(jié)構(gòu)豐富區(qū)進(jìn)行再分類得到邊緣結(jié)構(gòu)區(qū)和不規(guī)則紋理區(qū)。第k個(gè)圖像塊的局部方差為:Vark=1n×mΣx=1nΣy=1m|f(x,y)-f‾k|2---(6)]]>其中,為圖像塊中的平均像素值。設(shè)定一個(gè)閾值T2,其中T2為經(jīng)驗(yàn)常數(shù),一般取T2=300。當(dāng)Vark<T2時(shí),圖像塊為不規(guī)則紋理區(qū),反之圖像塊為邊緣結(jié)構(gòu)區(qū)。在將圖像塊按結(jié)構(gòu)特征分成邊緣結(jié)構(gòu)區(qū)、不規(guī)則紋理區(qū)和平滑區(qū)三個(gè)不同的子區(qū)域后,將不同區(qū)域的圖像樣本塊進(jìn)行字典訓(xùn)練,得到與之相對(duì)應(yīng)的過完備字典。下面以平滑字典Ds為例,說明K-SVD算法對(duì)字典訓(xùn)練的實(shí)現(xiàn)過程。根據(jù)稀疏表示模型:minD,X||Y-DX||2s.t||xi||0<K---(7)]]>其中,D=[d1,d2,…,dL]是過完備字典,K<<L表示xi的最大稀疏度為K;表示待訓(xùn)練信號(hào),即同一特征的樣本圖像塊。算法在求解D的同時(shí)也對(duì)稀疏系數(shù)xi進(jìn)行稀疏編碼。由于l0問題的非凸性,通常采用OMP算法進(jìn)行求解。但字典訓(xùn)練算法與式(7)有所區(qū)別的是,訓(xùn)練信號(hào)已知,而過完備字典D是未知的,其需要通過字典訓(xùn)練算法得到。假設(shè)Ys={yi|i∈Ωs}表示從平滑區(qū)域圖像塊中選擇的待訓(xùn)練樣本塊集合,Ωs表示平滑區(qū)域圖像塊,用K-SVD算法訓(xùn)練該樣本集合所對(duì)應(yīng)的特征字典的過程可描述為:minDs,Xs||Ys-Dsxs||2s.t||xi||0<K,i∈Ωs---(8)]]>為了求解式(8),必須首先初始化字典Ds。為了加快算法的收斂速度,在本算法選擇圖像分類后的平滑圖像塊對(duì)Ds進(jìn)行初始化。K-SVD算法是根據(jù)稀疏編碼的步驟給出樣本塊集合的估計(jì),從而更新字典中的各個(gè)原子。具體而言,要更新平滑字典Ds中的第k列dk,則式(8)可以改寫為:||Ys-Dsxs||2=||Ys-Σj=1Kdjxj||2=||(Ys-Σj≠kKdjxj)-dkxk||2=||Ek-dkxk||2---(9)]]>其中,DsXs被分解為K個(gè)秩為1的矩陣和,其余K-1項(xiàng)都是固定的,剩下的1列就是要更新的列,Ek表示去掉原子dk后對(duì)所有樣本造成的誤差,進(jìn)而對(duì)Ek進(jìn)行SVD分解,更新dk。用上述方法,將{d1,d2,…,dL}中的所有原子都進(jìn)行更新,即對(duì)平滑字典Ds完成了訓(xùn)練。這樣,根據(jù)以上K-SVD的訓(xùn)練方法,由分類的圖像塊就可得相應(yīng)的過完備字典:邊緣字典De、不規(guī)則紋理字典Dt以及平滑字典Ds。第三步:將近似l0范數(shù)的稀疏重構(gòu)算法SL0應(yīng)用于稀疏表示的圖像修復(fù)。采用近似雙曲正切函數(shù)去近似l0范數(shù),利用共軛梯度法求解該函數(shù)。由于SL0的數(shù)學(xué)模型為:min||X||0,s.t.Y=DX(10)向量X=[x1x2…xn]T,其l0范數(shù)表示向量X中非0元素的個(gè)數(shù),若假設(shè):f(x)=1,x≠00,x=0---(11)]]>則:||X||0=Σi=1nf(xi)---(12)]]>因此,只要找到一個(gè)合適的平滑的連續(xù)函數(shù)f(x),就可以很好的逼近||X||0的值。為了構(gòu)造具有“陡峭性”明顯的平滑連續(xù)函數(shù),且該連續(xù)函數(shù)能準(zhǔn)確的逼近l0范數(shù)。因此本專利采用式(13)所示的近似雙曲正切函數(shù)作為近似估計(jì)l0范數(shù)的函數(shù)。fσ(x)=18ex22σ2-e-x22σ2ex22σ2+e-x22σ2+78(1-e-8x2σ2)---(13)]]>從式(13)可知,變量σ值越小,近似雙曲正切函數(shù)“陡峭性”越明顯,越逼近l0范數(shù),但隨著σ值的不斷變小,函數(shù)曲線也越來越不光滑。因此,σ參數(shù)的選取非常關(guān)鍵,它的選取必須在逼近l0范數(shù)的程度和函數(shù)光滑度兩者之間取折中。為此,采用一組遞減的σ序列{σ1,σ2,…,σn}用來逼近目標(biāo)函數(shù),對(duì)σ每一次取值的同時(shí)利用最速下降法來求解函數(shù)的最佳值。最速下降法的搜索方向?yàn)楹瘮?shù)的負(fù)梯度方向,越接近目標(biāo)值,步長(zhǎng)越小,前進(jìn)越慢,在求解過程中存在鋸齒效應(yīng),使得l0范數(shù)估計(jì)的準(zhǔn)確性降低。而共軛梯度法的搜索方向?yàn)樨?fù)梯度方向與上一次迭代的搜索方向的線性組合,可以解決最速下降法帶來的鋸齒效應(yīng)。對(duì)于求解minf(x)這類無約束化問題,假設(shè)一個(gè)初始值x0,經(jīng)過一系列迭代得到xn。假如目前的迭代值為xk,則下一個(gè)迭代值即xk+1=xk+u×dk,u表示迭代步長(zhǎng),dk表示求最小值的搜索方向,使用共軛梯度法求解公式為:dk=-gk,k=1-gk+βkdk-1,k≥2---(14)]]>其中,gk代表函數(shù)f(x)的梯度,βk能夠通過不同的共軛梯度法來求解。對(duì)βk的求解方法采用混合共軛梯度法,即混合FR(Fletcher-Reeves)共軛梯度法和PRP(Polak,RibiereandPolyar)共軛梯度法:βk=βkPRP,0<βkPRP<βkFRβkFR,else---(15)]]>這種混合的共軛梯度法避免了可能產(chǎn)生連續(xù)小步長(zhǎng)的缺點(diǎn);同時(shí),由于共軛梯度法的每一次迭代的方向都是上一次迭代方向與負(fù)梯度方向組合而成,能夠克服最速下降法帶來的鋸齒現(xiàn)象。因此,利用SL0的稀疏表示方法,分類修復(fù)圖像各類特征信息的實(shí)現(xiàn)步驟如下:(1)令初始值分別為X=DT(DDT)-1Y,σ1=2max(X),k=1;(2)j=1,2,…,L,(L為共軛梯度法迭代次數(shù),L=5)利用共軛梯度法求解gn代表函數(shù)f(x)的梯度:①搜尋方向:②X←X+μdn,其中步長(zhǎng)因子μ=1.5;③X←X-DT(DDT)-1(DX-Y);④n=n+1,j=j(luò)+1;如果j<L,則重復(fù)步驟①、②、③;(3)k=k+1,σk=ησk-1,η∈[0.51],重復(fù)步驟(2),直到σk<ε,ε=0.01,此時(shí)得到X的最優(yōu)解。本發(fā)明有益效果如下:在對(duì)待修復(fù)圖像進(jìn)行重構(gòu)時(shí),往往需要預(yù)估信號(hào)的稀疏度,無論稀疏度估計(jì)過小或者過大都不能達(dá)到較好的重構(gòu)效果;其次,稀疏表示方法對(duì)結(jié)構(gòu)平滑性的保持不夠理想,特別是對(duì)曲線進(jìn)行修復(fù)時(shí),會(huì)在結(jié)構(gòu)處產(chǎn)生一些畸變。為了較好地修復(fù)圖像的結(jié)構(gòu)信息,本發(fā)明從考慮結(jié)構(gòu)整體平滑性的角度,結(jié)合樣本稀疏表示和結(jié)構(gòu)約束修復(fù)的優(yōu)點(diǎn)。本發(fā)明對(duì)待修復(fù)區(qū)域的斷裂邊緣進(jìn)行提取,獲得反映邊緣特征的各類信息,根據(jù)這些信息按一定規(guī)則將斷裂邊緣線進(jìn)行曲線擬合,以保證圖像邊緣結(jié)構(gòu)的修復(fù)嚴(yán)格受到邊緣輪廓線的約束;采用按特征分類進(jìn)行字典訓(xùn)練,以增強(qiáng)學(xué)習(xí)字典的自適應(yīng)性;采用近似雙曲正切函數(shù)去近似l0范數(shù),利用共軛梯度法求解該函數(shù),實(shí)現(xiàn)對(duì)傳統(tǒng)SL0算法的改進(jìn),將不需要預(yù)估稀疏度的SL0重構(gòu)算法應(yīng)用于非邊緣破損區(qū)域的圖像修復(fù)中,以提高稀疏表示修復(fù)紋理信息的可靠性。附圖說明圖1為本發(fā)明的流程圖。圖2為整體與局部法提取的結(jié)構(gòu)邊緣示意圖,圖2(a)為破損Lena圖像;圖2(b)整體法提取的結(jié)構(gòu)邊緣;圖2(c)整體與局部法提取的結(jié)構(gòu)邊緣;圖2(d)邊緣擬合效果圖,其中圖中‘△’表示未經(jīng)篩選前的主體結(jié)構(gòu)邊緣的起點(diǎn),‘o’表示經(jīng)過篩選后的主體結(jié)構(gòu)邊緣的起點(diǎn)。圖3(a)-(d)為斷裂邊緣的擬合修復(fù)模型。圖4(a)-(b)為邊緣信息修復(fù)示意圖。圖5(a)-(c)為圖像塊按特征分類的示意圖。圖6(a)-(f)為分別采用修復(fù)算法[1]、修復(fù)算法[2]、修復(fù)算法[3]以及本發(fā)明算法對(duì)破損Baboon圖像修復(fù)結(jié)果的比較。圖7(a)-(f)為采用上述算法對(duì)破損Barb圖像修復(fù)效果的比較。圖8(a)-(f)為采用上述算法對(duì)Baboon圖像進(jìn)行英文字母去除處理結(jié)果的比較。圖9(a)-(f)為采用上述算法對(duì)實(shí)物移除效果圖的比較。圖10(a)-(f)為采用上述算法對(duì)大面積破損Lena修復(fù)效果的比較。圖11(a)-(f)為采用上述算法對(duì)人物移除效果的比較。說明:為了比較本發(fā)明算法的優(yōu)越性,與下列相關(guān)修復(fù)算法進(jìn)行了比較。修復(fù)算法[1]:CriminisiA,PerezP,ToyamaK.RegionfillingandobjectremovalbyEexemplar-basedinpainting[J].IEEETransactionsonImageProcessing,2004,13(9):1200-1212.修復(fù)算法[2]:XuZ,SunJ.Imageinpaintingbypatchpropagationusingpatchsparsity[J].IEEETransactionsonImageProcessing,2010,19(5):1153-1165.修復(fù)算法[3]:康佳倫,唐向宏,張東,屠雅麗.特征分類學(xué)習(xí)的結(jié)構(gòu)稀疏傳播圖像修復(fù)方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2015,27(5):864-872.具體實(shí)施說明下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例作詳細(xì)說明。在本實(shí)施例中,圖1給出的本發(fā)明的流程圖。第一步:首先,通過Sobel算子提取整體邊緣,獲得破損圖像的強(qiáng)邊緣,為圖像修復(fù)提供圖像的整體邊緣結(jié)構(gòu),如圖2(b)所示,給出了對(duì)破損Lena圖像整體法提取的結(jié)構(gòu)邊緣;然后采用“將存在連續(xù)4個(gè)邊緣點(diǎn)及以上的斷裂邊緣線定義為主體結(jié)構(gòu)邊緣”的原則,采用整體邊緣提取與破損周邊區(qū)域局部邊緣提取相結(jié)合的方法實(shí)現(xiàn),有效獲取破損周邊區(qū)域的斷裂邊緣結(jié)構(gòu)信息,找到待修復(fù)邊界與邊緣信息的交點(diǎn),如圖2(c)所示。為了將這些點(diǎn)一一對(duì)應(yīng)地連接,圖3(a)給出了多條斷裂邊緣線分別為c1,c2,…,cN,記為集合Q,其中曲線ci的起點(diǎn)為pi1。規(guī)定將曲線ci在其起點(diǎn)pi1上的方向向量幾乎相反的兩條斷裂曲線相連。由此通過曲線ci的方向向量將Q分為兩個(gè)集合Q1,Q2。分類完成后,計(jì)算各曲線起點(diǎn)之間的距離,將起點(diǎn)距離最近的兩條曲線通過二次多項(xiàng)式曲線擬合的方法進(jìn)行連接。具體步驟如下:(1)對(duì)于任意的斷裂曲線ci,由起點(diǎn)pi1出發(fā),獲取ci上的其它各點(diǎn)pi2,pi3,pi4,。若為點(diǎn)pi,j的坐標(biāo)向量,則曲線ci在起點(diǎn)pi1上的方向向量定義為:s→i=0.5(p→i,1-p→i,2)+0.25(p→i,2-p→i,3)+0.125(p→i,3-p→i,4)---(1)]]>其中,將單位化,(2)循環(huán)步驟(1)求出每條曲線ci的方向向量,將c1放入集合Q1中,然后遍歷剩下的所有曲線ci,求出與Q1中所有曲線的方向向量夾角和最小的曲線,記為cmin,并放入集合Q1,直到Q1中的元素為總曲線數(shù)量的一半,剩下的曲線放入集合Q2。cmin∈Q1,iffΣci∈Q1θ(s→i,s→min)=mincj∈Q-Q1{Σcj∈Q1θ(s→i,s→j)}---(2)]]>(3)將Q中的曲線分類后,取Q1中的一條曲線,在Q2中尋找與其起點(diǎn)距離最近的曲線,將這兩條曲線進(jìn)行二次多項(xiàng)式曲線擬合,即完成斷裂曲線的連接;當(dāng)完成這兩條斷裂曲線的連接后,將這兩條曲線分別從集合Q1,Q2中剔除,然后按照上述方法對(duì)剩下的曲線進(jìn)行處理,直到斷裂的曲線全部連接完成。斷裂曲線修復(fù)效果如圖3(b)所示:(4)當(dāng)斷裂曲線總數(shù)N為奇數(shù)時(shí),n(Q1)≠n(Q2)(如圖3(c)所示)。這種情況下,實(shí)現(xiàn)步驟做以下調(diào)整:①在執(zhí)行步驟(2)中,若n(Q1)=(N-1)/2,則接下來的一條曲線ci按以下規(guī)則歸類:cmin∈Q1,Σci∈Q1θ(S→i,S→min)≤π(N-1)/22Q2,Σci∈Q1θ(S→i,S→min)>π(N-1)/22]]>完成(N-1)/2+1條曲線歸類后,剩下的曲線放入集合Q2中。②在步驟(3)中,比較Q1,Q2中的元素個(gè)數(shù),選取個(gè)數(shù)少的集合,假設(shè)n(Q1)<n(Q2),則取集合Q1中的一條曲線,在Q2中尋找與其起點(diǎn)距離最近的曲線,將這兩條曲線進(jìn)行二次多項(xiàng)式曲線擬合。依次類推,完成集合Q1中的所有曲線配對(duì)后,Q2中還剩一條曲線未配對(duì),則在Q1中尋找與其起點(diǎn)距離最近的曲線,完成連接。這樣Q中的所有曲線配對(duì)完成,如圖3(d)所示。按上述擬合規(guī)則對(duì)破損Lena圖(圖2(a))的斷裂邊緣的擬合效果如圖2(d)所示。當(dāng)圖像邊緣曲線完成擬合后,該擬合曲線便可以作為邊緣修復(fù)的約束信息,使得邊緣上圖像塊的修復(fù)按邊緣的軌跡進(jìn)行。本發(fā)明以擬合后的邊緣線上的點(diǎn)為中心,取修復(fù)窗口大小為3×3(為了修復(fù)的準(zhǔn)確性,修復(fù)窗口取值較小),利用像素的誤差平方和(SSD)在ψ1,ψ2,ψ3…(邊緣線上的已知像素塊,大小為3×3,如圖4(a)所示)中尋找與ψ最相似的匹配塊,再將最佳匹配塊的像素值填充到對(duì)應(yīng)的待修復(fù)圖像塊的未知像素點(diǎn)。按上述方法依次完成邊緣上的小圖像塊的修復(fù)。修復(fù)結(jié)果如圖4(b)所示。第二步:對(duì)圖像塊按特征分類以及K-SVD字典訓(xùn)練。為了增強(qiáng)學(xué)習(xí)字典的自適應(yīng)性,采用結(jié)合圖像塊梯度信息和局部方差的方法對(duì)圖像塊進(jìn)行分類。眾所周知,邊緣和紋理信息往往存在于含有豐富結(jié)構(gòu)信息的圖像塊中,反之,圖像的平滑區(qū)域含有較少的結(jié)構(gòu)信息。根據(jù)像素的梯度變化的越劇烈,圖像塊內(nèi)結(jié)構(gòu)信息就越豐富;而結(jié)構(gòu)信息稀少的圖像塊,其內(nèi)部像素的梯度普遍比較小。因此,梯度信息可以很好的反映圖像塊的結(jié)構(gòu)信息豐富程度(即平滑程度)。若令圖像中任意位置(x,y)的像素值為f(x,y),其上下左右4個(gè)方向的梯度值為:g1(x,y)=|f(x,y)-f(x-1,y)|g2(x,y)=|f(x,y)-f(x+1,y)|g3(x,y)=|f(x,y)-f(x,y-1)|g4(x,y)=|f(x,y)-f(x,y+1)|---(3)]]>取這4個(gè)方向上的最大梯度值為該像素點(diǎn)的權(quán)值:g(x,y)=max{g1(x,y),g2(x,y),g3(x,y),g4(x,y)}(4)將每個(gè)圖像塊(大小為n×m)內(nèi)的每個(gè)像素進(jìn)行梯度加權(quán),其大小為:uk=Σx=1nΣy=1mg(x,y)×f(x,y)Σx=1nΣy=1mg(x,y)---(5)]]>uk為第k個(gè)圖像塊的梯度加權(quán)值。為了將圖像塊進(jìn)行分類,設(shè)定一個(gè)閾值T1,其中T1為經(jīng)驗(yàn)常數(shù),一般取T1=100。當(dāng)uk<T1時(shí),表示圖像塊為平滑區(qū),反之圖像塊為結(jié)構(gòu)豐富區(qū)。圖5(b)給出了使用梯度加權(quán)值對(duì)圖5(a)進(jìn)行圖像塊分類的結(jié)果。圖5(b)中,黑色部分表示平滑區(qū)域,白色部分表示結(jié)構(gòu)豐富區(qū)域。但由于邊緣結(jié)構(gòu)區(qū)和不規(guī)則紋理區(qū)域的梯度變化都普遍較大,無法用梯度加權(quán)值去識(shí)別邊緣結(jié)構(gòu)區(qū)和不規(guī)則紋理區(qū)。因此,利用局部方差對(duì)上述結(jié)構(gòu)豐富區(qū)進(jìn)行再分類得到邊緣結(jié)構(gòu)區(qū)和不規(guī)則紋理區(qū)。第k個(gè)圖像塊的局部方差為:Vark=1n×mΣx=1nΣy=1m|f(x,y)-f‾k|2---(6)]]>其中,為圖像塊中的平均像素值。設(shè)定一個(gè)閾值T2,其中T2為經(jīng)驗(yàn)常數(shù),一般取T2=300。當(dāng)Vark<T2時(shí),圖像塊為不規(guī)則紋理區(qū),反之圖像塊為邊緣結(jié)構(gòu)區(qū)。圖5(c)給出了結(jié)合梯度加權(quán)值和局部方差的圖像分類結(jié)果,其中黑色區(qū)域代表平滑區(qū),灰色部分代表不規(guī)則紋理區(qū),白色部分代表邊緣結(jié)構(gòu)區(qū)。從圖中可以看出,梯度加權(quán)值和局部方差相結(jié)合的圖像特征分類效果較好。在將圖像塊按結(jié)構(gòu)特征分成邊緣結(jié)構(gòu)區(qū)、不規(guī)則紋理區(qū)和平滑區(qū)三個(gè)不同的子區(qū)域后,將不同區(qū)域的圖像樣本塊進(jìn)行字典訓(xùn)練,得到與之相對(duì)應(yīng)的過完備字典。下面以平滑字典Ds為例,說明K-SVD算法對(duì)字典訓(xùn)練的實(shí)現(xiàn)過程。根據(jù)稀疏表示模型:minD,X||Y-DX||2s.t||xi||0<K---(7)]]>其中,D=[d1,d2,…,dL]是過完備字典,K<<L表示xi的最大稀疏度為K;表示待訓(xùn)練信號(hào),即同一特征的樣本圖像塊。算法在求解D的同時(shí)也對(duì)稀疏系數(shù)xi進(jìn)行稀疏編碼。由于l0問題的非凸性,通常采用OMP算法進(jìn)行求解。但字典訓(xùn)練算法與式(7)有所區(qū)別的是,訓(xùn)練信號(hào)已知,而過完備字典D是未知的,其需要通過字典訓(xùn)練算法得到。假設(shè)Ys={yi|i∈Ωs}表示從平滑區(qū)域圖像塊中選擇的待訓(xùn)練樣本塊集合,Ωs表示平滑區(qū)域圖像塊,用K-SVD算法訓(xùn)練該樣本集合所對(duì)應(yīng)的特征字典的過程可描述為:minDs,Xs||Ys-Dsxs||2s.t||xi||0<K,i∈Ωs---(8)]]>為了求解式(8),必須首先初始化字典Ds。為了加快算法的收斂速度,在本發(fā)明選擇圖像分類后的平滑圖像塊對(duì)Ds進(jìn)行初始化。K-SVD算法是根據(jù)稀疏編碼的步驟給出樣本塊集合的估計(jì),從而更新字典中的各個(gè)原子。具體而言,要更新Ds中的第k列dk,則式(8)可以改寫為:其中,DsXs被分解為K個(gè)秩為1的矩陣和,其余K-1項(xiàng)都是固定的,剩下的1列就是要更新的列,Ek表示去掉原子dk后對(duì)所有樣本造成的誤差,進(jìn)而對(duì)Ek進(jìn)行SVD分解,更新dk。用上述方法,將{d1,d2,…,dL}中的所有原子都進(jìn)行更新,即對(duì)字典Ds完成了訓(xùn)練。這樣,根據(jù)以上K-SVD的訓(xùn)練方法,由分類的圖像塊就可得相應(yīng)的過完備字典:邊緣字典De、不規(guī)則紋理字典Dt以及平滑字典Ds。第三步:將近似l0范數(shù)的稀疏重構(gòu)算法SL0應(yīng)用于稀疏表示的圖像修復(fù)。采用近似雙曲正切函數(shù)去近似l0范數(shù),利用共軛梯度法求解該函數(shù)。由于SL0的數(shù)學(xué)模型為:min||X||0,s.t.Y=DX(10)向量X=[x1x2…xn]T,其l0范數(shù)表示向量X中非0元素的個(gè)數(shù),若假設(shè):f(x)=1,x≠00,x=0---(11)]]>則:||X||0=Σi=1nf(xi)---(12)]]>因此,只要找到一個(gè)合適的平滑的連續(xù)函數(shù)f(x),就可以很好的逼近||X||0的值。為了構(gòu)造具有“陡峭性”明顯的平滑連續(xù)函數(shù),且該連續(xù)函數(shù)能準(zhǔn)確的逼近l0范數(shù)。因此本發(fā)明采用式(13)所示的近似雙曲正切函數(shù)作為近似估計(jì)l0范數(shù)的函數(shù)。fσ(x)=18ex22σ2-e-x22σ2ex22σ2+e-x22σ2+78(1-e-8x2σ2)---(13)]]>從式(13)可知,變量σ值越小,近似雙曲正切函數(shù)“陡峭性”越明顯,越逼近l0范數(shù),但隨著σ值的不斷變小,函數(shù)曲線也越來越不光滑。因此,σ參數(shù)的選取非常關(guān)鍵,它的選取必須在逼近l0范數(shù)的程度和函數(shù)光滑度兩者之間取折中。為此,采用一組遞減的σ序列{σ1,σ2,…,σn}用來逼近目標(biāo)函數(shù),對(duì)σ每一次取值的同時(shí)利用最速下降法來求解函數(shù)的最佳值。最速下降法的搜索方向?yàn)楹瘮?shù)的負(fù)梯度方向,越接近目標(biāo)值,步長(zhǎng)越小,前進(jìn)越慢,在求解過程中存在鋸齒效應(yīng),使得l0范數(shù)估計(jì)的準(zhǔn)確性降低。而共軛梯度法的搜索方向?yàn)樨?fù)梯度方向與上一次迭代的搜索方向的線性組合,可以解決最速下降法帶來的鋸齒效應(yīng)。對(duì)于求解minf(x)這類無約束化問題,假設(shè)一個(gè)初始值x0,經(jīng)過一系列迭代得到xn。假如目前的迭代值為xk,則下一個(gè)迭代值即xk+1=xk+u×dk,u表示迭代步長(zhǎng),dk表示求最小值的搜索方向,使用共軛梯度法求解公式為:dk=-gk,k=1-gk+βkdk-1,k≥2---(14)]]>其中,gk代表函數(shù)f(x)的梯度,βk能夠通過不同的共軛梯度法來求解。對(duì)βk的求解方法采用混合共軛梯度法,即混合FR(Fletcher-Reeves)共軛梯度法和PRP(Polak,RibiereandPolyar)共軛梯度法:βk=βkPRP,0<βkPRP<βkFRβkFR,else---(15)]]>這種混合的共軛梯度法避免了可能產(chǎn)生連續(xù)小步長(zhǎng)的缺點(diǎn);同時(shí),由于共軛梯度法的每一次迭代的方向都是上一次迭代方向與負(fù)梯度方向組合而成,能夠克服最速下降法帶來的鋸齒現(xiàn)象。因此,利用SL0的稀疏表示方法,分類修復(fù)圖像各類特征信息的實(shí)現(xiàn)步驟如下:(1)令初始值分別為X=DT(DDT)-1Y,σ1=2max(X),k=1;(2)j=1,2,…,L,(L為共軛梯度法迭代次數(shù),L=5)利用共軛梯度法求解gn代表函數(shù)f(x)的梯度:①搜尋方向:②X←X+μdn,其中步長(zhǎng)因子μ=1.5;③X←X-DT(DDT)-1(DX-Y);④n=n+1,j=j(luò)+1;如果j<L,則重復(fù)步驟①、②、③;(3)k=k+1,σk=ησk-1,η∈[0.51],重復(fù)步驟(2),直到σk<ε,ε=0.01,此時(shí)得到X的最優(yōu)解。為了檢驗(yàn)本發(fā)明算法的修復(fù)效果,對(duì)圖像進(jìn)行了模擬仿真,并與其他算法進(jìn)行了對(duì)比實(shí)驗(yàn)。仿真實(shí)驗(yàn)在MATLAB環(huán)境下進(jìn)行。在對(duì)圖像修復(fù)效果評(píng)時(shí),除了采用主觀評(píng)價(jià)外,同時(shí)也采用峰值信噪比(PSNR)進(jìn)行客觀評(píng)價(jià)。圖6和圖7給出了修復(fù)算法[1]、修復(fù)算法[2]、修復(fù)算法[3]和本算法對(duì)破損圖像Baboon和Barb進(jìn)行修復(fù)處理的結(jié)果。從圖6Baboon修復(fù)效果圖可以看出,在鼻子中間部分(平滑區(qū)域),四種算法的修復(fù)效果都比較理想;在鼻子與臉頰連接處的破損,修復(fù)算法[1]、算法[2]和算法[3]修復(fù)后均出現(xiàn)結(jié)構(gòu)斷裂現(xiàn)象(圖6(c)、圖6(d)和圖6(e)所示),但本算法在修復(fù)后鼻子的邊緣結(jié)構(gòu)平滑;對(duì)于眼睛部分的修復(fù),這部分結(jié)構(gòu)和紋理信息都較復(fù)雜,算法[1]和算法[2]在眼睛的右上部分出現(xiàn)大塊的不自然的白色延伸(圖6(c)、圖6(d)所示),對(duì)眼部結(jié)構(gòu)造成了嚴(yán)重破壞,算法[3]修復(fù)后在眼角出現(xiàn)了一定的延伸現(xiàn)象(圖6(e)所示),而本算法在修復(fù)后眼角保持了良好的結(jié)構(gòu)特征且眼珠周圍清晰無延伸現(xiàn)象,修復(fù)效果比較自然(圖6(f)所示)。從圖7Barb圖修復(fù)處理的結(jié)果可以看出,四種算法在手臂(平滑區(qū)域)修復(fù)效果均良好;四種算法在桌腿邊緣部分(平滑區(qū)和邊緣結(jié)合區(qū)域)修復(fù)效果較好;在修復(fù)圍巾部分時(shí)(紋理與邊緣結(jié)合區(qū)域),算法[1]、算法[2]和算法[3]均出現(xiàn)紋理不連貫的現(xiàn)象(圖7(c)、圖7(d)、和圖7(e)所示),修復(fù)效果比較模糊;而本算法由于首先對(duì)圍巾的邊緣進(jìn)行了修復(fù),形成了一定的結(jié)構(gòu)約束,因此修復(fù)后邊緣結(jié)構(gòu)得到保持,并且紋理清晰、走向合理自然(圖7(f)所示)。圖8和圖9分別給出了物體去除處理效果的比較。圖8給出了對(duì)Baboon圖進(jìn)行英文字母去除處理的結(jié)果。從圖中可以看出,在修復(fù)Baboon圖的鼻子中部等圖像平滑區(qū)時(shí),四種算法的修復(fù)效果均良好;但算法[2]和算法[3]在修復(fù)鼻子與臉頰交界處時(shí),鼻子邊界出現(xiàn)斷裂現(xiàn)象(圖8(d)和圖8(e)畫黑圈部分),結(jié)構(gòu)遭到破壞,而其它二種算法能保持此處結(jié)構(gòu)連貫;在修復(fù)臉頰的紋路時(shí),算法[1]、算法[2]和算法[3]均出現(xiàn)不自然的延伸(圖8(c)、圖8(d)和圖8(e)所示),不符合視覺規(guī)律,而本算法修復(fù)效果較理想;Baboon圖中的胡子部分屬于紋理結(jié)構(gòu)復(fù)雜區(qū)域,算法[1]、算法[2]和算法[3]這三種算法均出現(xiàn)模糊或者不自然的延伸現(xiàn)象(圖8(c)、圖8(d)和圖8(e)所示),而本算法在紋理部分修復(fù)效果自然(圖8(f)所示)。圖9給出了對(duì)實(shí)物移除的仿真實(shí)驗(yàn)結(jié)果。從圖中可以看出,算法[1]、算法[2]和算法[3]在修復(fù)岸邊時(shí)出現(xiàn)邊緣扭曲和不連續(xù)的現(xiàn)象(圖9(c)、圖9(d)和圖9(e)所示),邊緣結(jié)構(gòu)無法保持連貫性,修復(fù)痕跡明顯,使得修復(fù)效果不自然。而本算法對(duì)物體移除效果十分自然,符合視覺規(guī)律。圖10和圖11分別給出了對(duì)大面積破損修效果的比較。圖10給出了對(duì)Lena圖進(jìn)行大面積修復(fù)的仿真實(shí)驗(yàn)結(jié)果,其中破損面積為10.1%(每小塊破損大小為20×20像素)。從圖中可以看出,算法[1]和算法[2]對(duì)Lena圖中的左臉頰和部分背景區(qū)域(平滑部分)的修復(fù)效果不佳(圖10(c)、圖10(d)畫黑圈部分),而其他二種算法對(duì)這部分的修復(fù)效果均良好;頭發(fā)部分的紋理結(jié)構(gòu)復(fù)雜,算法[1]、算法[2]、和算法[3]這三種算法在修復(fù)頭發(fā)部分時(shí)均出現(xiàn)斷裂現(xiàn)象(圖10(c)、圖10(d)和圖10(e)所示),而本算法的修復(fù)效果較理想,修復(fù)后頭發(fā)部分比較自然也沒有出現(xiàn)不自然的斷裂現(xiàn)象(圖10(f)所示)。在帽頂、帽檐和右臉頰等部分(畫黑圈部分),前三種算法在修復(fù)其邊緣時(shí)均出現(xiàn)一定程度的凹凸和不自然的延伸現(xiàn)象,而本算法先對(duì)待修復(fù)區(qū)域的斷裂邊緣線進(jìn)行擬合,保障了圖像邊緣的平滑性,使得修復(fù)效果符合人眼視覺效應(yīng)(圖10(f)所示)。圖11給出了對(duì)大面積實(shí)物移除的仿真實(shí)驗(yàn)結(jié)果。從圖中可以看出,算法[2](圖11(d)所示)在修復(fù)遠(yuǎn)處的海平面和海浪這兩部分時(shí),都出現(xiàn)不連貫現(xiàn)象,結(jié)構(gòu)信息遭到破壞,有比較明顯的修復(fù)痕跡;而算法[1]、算法[2]和算法[3]在修復(fù)海浪部分時(shí),其邊緣線條不夠平坦,使實(shí)物移除效果不自然(圖11(c)、圖11(d)和圖11(e)所示);而本算法修復(fù)效果自然,符合視覺規(guī)律。以上對(duì)本發(fā)明的優(yōu)選實(shí)施例及原理進(jìn)行了詳細(xì)說明,對(duì)本領(lǐng)域的普通技術(shù)人員而言,依據(jù)本發(fā)明提供的思想,在具體實(shí)施方式上會(huì)有改變之處,而這些改變也應(yīng)視為本發(fā)明的保護(hù)范圍。當(dāng)前第1頁(yè)1 2 3