基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法
【專利摘要】本發(fā)明公開了一種基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法,主要步驟包括:根據(jù)張量的方向性和近鄰結(jié)構(gòu)信息對張量樣本進行分類,每一類分別構(gòu)造張量字典,對待修補圖像張量采用同樣的方式分類,用與之類別標簽對應(yīng)的張量字典對其進行修補,對每類字典下的重建結(jié)果進行加權(quán)求和,得到最終的待修補圖像的重建結(jié)果。本發(fā)明根據(jù)張量的方向性和近鄰結(jié)構(gòu)信息對張量進行有效、確定性的分類,能區(qū)別具有不同細節(jié)的張量,在對待修補張量重建時,利用重建誤差對每類字典下的重建結(jié)果進行加權(quán)求和,克服了單個字典表達能力有限的缺點,對自然圖像的修補,能恢復更為清晰的邊緣細節(jié),進一步提高了修補質(zhì)量。用于受損圖像的修補。
【專利說明】
基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,更進一步設(shè)及壓縮感知技術(shù)領(lǐng)域中的圖像修補, 具體是一種基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法。本發(fā)明可用于對自然圖 像進行修補,使受損的圖像復原、移走或替換圖片中原有的目標,并達到人眼難W覺察到的 效果。
【背景技術(shù)】
[0002] 目前在圖像處理領(lǐng)域中,對自然圖像進行修補的方法通常分為=類:基于偏微分 方程的非線性擴散法、紋理合成法和基于稀疏表示的方法?;谄⒎址匠痰姆蔷€性擴散 法,利用待修復區(qū)域周圍提供的有用信息,通過逐漸擴散邊緣來修復圖像中缺損的空桐。紋 理合成法是將圖像未丟失信息的部分作為推導圖像丟失信息部分的訓練集,在訓練集中尋 找最匹配的樣本圖像填入空白區(qū)?;谙∈璞硎镜姆椒軌蛴行Ю脠D像的稀疏性,W及 缺損圖像與完整圖像在超完備的字典下有相同稀疏編碼系數(shù)的性質(zhì),使得缺損圖像得W恢 復。
[0003] 山東大學的方寶龍在其學位論文"基于紋理合成的圖像修復算法研究"([分類號] TP391.41,2013)中提出一種基于紋理合成的圖像修補方法。該方法通過計算目標塊和源區(qū) 域塊對應(yīng)像素顏色差值平方和來確定最佳匹配塊,利用已丟失信息圖像周圍的紋理信息, 來填補缺損圖像。該方法存在的不足之處是,由于沒有考慮到紋理繁殖的次序,很難較好地 修復紋理的結(jié)構(gòu)信息,修復圖像不連續(xù),容易產(chǎn)生塊效應(yīng)。
[0004] 南京信息工程大學在其申請的專利"一種基于改進的偏微分模型的指紋方向場計 算方法"(申請?zhí)枺?015101027345申請日:2015-03-09公開號:CN104680148A)中公開了一種 基于偏微分方程的指紋圖像方向計算方法。該方法主要包括兩個步驟:第一,采用基本的梯 度算法求解指紋的初始方向場;第二,對初始方向場采用改進的偏微分模型進行平滑。該方 法存在的不足之處是,在圖像信息偏微分擴散過程中不能保持圖像的紋理信息,只能用于 小區(qū)域圖像修復,當待修復的目標區(qū)域較大時,修復結(jié)果會產(chǎn)生模糊,引起較大的失真。
[0005] 基于偏微分方程的非線性擴散法在修補過程中不能保持圖像的紋理信息,修補出 來的圖像邊緣不連續(xù);紋理合成法沒有考慮到圖像塊的結(jié)構(gòu)信息,很難較好地修復紋理的 結(jié)構(gòu)信息,容易產(chǎn)生塊效應(yīng);基于稀疏表示的圖像修補方法,需要對圖像塊進行向量化處 理,破壞了圖像塊的結(jié)構(gòu)信息,而且在修補的過程中,W單個圖像塊為單位進行修補,沒有 有效利用圖像的紋理和空間結(jié)構(gòu)信息,修補后的圖像輪廓不太連續(xù),會產(chǎn)生一定的失真。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于針對上述已有技術(shù)的不足,提出一種能夠迅速準確地完成圖像 修補的基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法。
[0007] 本發(fā)明是一種基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法,包括W下步 驟:
[0008] 步驟I將訓練樣本庫中的圖像構(gòu)成張量樣本并分類:
[0009] la)把訓練樣本庫中的圖像分成大小為mXn的圖像塊,將非平滑的圖像塊和其空 間8近鄰圖像塊構(gòu)成張量樣本^GRmxnx9,隨機選取100 000個張量樣本作為訓練樣本集 (主}1!T,其中Rmxnxs表示每一個張量樣本的大小為m X n X 9。
[0010] Ib)將訓練樣本集中的張量樣本分為結(jié)構(gòu)類和非結(jié)構(gòu)類,根據(jù)方向性和近鄰結(jié)構(gòu) 信息,對結(jié)構(gòu)類再進一步細分。
[0011] 步驟2對各個類的張量樣本進行張量字典學習:
[0012] 用張量字典學習算法分別對各個類的張量樣本進行學習,得到L個過完備張量字 典醉斯D盤,其中巧成為分別表示第i類張量樣本在稅,模2,模3上的字典。
[001引步驟3對待修補張量分類:
[0014] 將待修補圖像分成大小為mXn的重疊的圖像塊,將每一個待修補圖像塊與其空間 8近鄰圖像塊構(gòu)成待修補張量砂GRmxnx9,按照步驟1中的方法分類,得到待修補張量的類別 柄簽1 D
[0015] 步驟4判斷待修補張量的類別,用與之類別標簽對應(yīng)的張量字典進行修補:
[0016] 4a)將待修補張量n去掉缺損部分得到張量ft Ejrv?%x9,用張量稀疏編碼對待修 補張量在與之類別標簽對應(yīng)的張量字典下進行稀疏編碼,得到編碼系數(shù)谷k,
[0017]
[0018] 其中巧表示去掉缺損部分得到張量墓的大小為m日Xn日X9,l表示待修補張量 的類別標簽,表示待修補張量在j模上的感知矩陣,^表示第1類張量j模字典W在感知 矩陣O J下的字典,即
/ = 1,2,3,自1^為待修補張量在第1類張量結(jié)構(gòu)字典下的稀疏 編碼系數(shù),I I ? I Ii表示1范數(shù),A控制稀疏編碼系數(shù)的稀疏度;
[0019] 4b)計算得到修補后的張量
,
[0020] 步驟5對修補后的張量進行重建:
[0021] 5a)計算修補后的張量拓在多類張量結(jié)構(gòu)字典下的重建結(jié)果乏;:
[0022]
[0023] 其中,稀疏編碼系數(shù)技通過
1求解得到,公為修 補后的張量私在第i類張量結(jié)構(gòu)字典下的稀疏編碼系數(shù),S為修補后的張量彭在第i類張量 結(jié)構(gòu)字典下的重建結(jié)果;
[0024] 5b)計算修補后的張量在多類張量結(jié)構(gòu)字典下的重建權(quán)值:
[0025]
[0026] 其中,Wi表示修補后的張量在第i類張量結(jié)構(gòu)字典下的權(quán)值,L表示結(jié)構(gòu)字典中分 字典的數(shù)目,X表示求和操作,ei表示修補后的張量在第i類張量字典稀疏編碼的重建誤 差,即
[0027] 5c)對修補后的張量在多類張量結(jié)構(gòu)字典下的重建結(jié)果I;進行加權(quán)求和,得到最 終的待修補張量的重建結(jié)果斟,
[002引
[0029] 將重建后的張量構(gòu)成圖像,完成圖像修補。
[0030] 本發(fā)明首先將圖像塊和其空間8近鄰圖像塊構(gòu)成張量,避免了對圖像塊進行向量 化處理,保持了圖像塊中的結(jié)構(gòu)信息,然后根據(jù)張量的方向性和近鄰結(jié)構(gòu)信息對張量樣本 進行分類,分別建立稀疏超完備張量字典,分類進行圖像修補。本發(fā)明能夠迅速準確地完成 圖像修補,較為準確地恢復出圖像的局部結(jié)構(gòu)信息,獲得清晰的圖像修補結(jié)果。
[0031 ]本發(fā)明與現(xiàn)有技術(shù)相比具有W下優(yōu)點:
[0032] 第一,由于本發(fā)明采用了圖像張量塊分類的方法,再對待修補張量進行修補,克服 了現(xiàn)有技術(shù)中對圖像塊單獨重建,無法利用到圖像塊局部近鄰結(jié)構(gòu)信息的缺點,使得本發(fā) 明具有了修補時間短,準確性高的優(yōu)點;
[0033] 第二,由于本發(fā)明在圖像張量塊分類過程中利用了圖像張量塊中的方向性和近鄰 結(jié)構(gòu)信息,克服了現(xiàn)有無監(jiān)督聚類技術(shù)中聚類不準確的缺點,使得本發(fā)明具有了修補細節(jié) 信息清晰的優(yōu)點;
【附圖說明】
[0034] 圖1是本發(fā)明的流程圖;
[0035] 圖2是圖像張量分類示意圖;
[0036] 圖3是Lena圖像,其中3(a)為原始的Lena圖像,3(b)為受損的Lena圖像;
[0037] 圖4是本發(fā)明對Lena圖像修補結(jié)果與其他方法修補結(jié)果的對比圖,其中4(a)為 化iminisi方法修補的結(jié)果圖,4(b)為稀疏表示方法修補的結(jié)果圖,4k)為本發(fā)明修補的結(jié) 果圖;
[0038] 圖5是化ppers圖像,其中5(a)為原始的化ppers圖像,5(b)為受損的化ppers圖像;
[0039] 圖6是本發(fā)明對化ppers圖像修補結(jié)果與其他方法修補結(jié)果的對比圖,其中6(a)為 化iminisi方法修補的結(jié)果圖,6(b)為稀疏表示方法修補的結(jié)果圖,6k)為本發(fā)明修補的結(jié) 果圖。
【具體實施方式】
[0040] 下面結(jié)合附圖對本發(fā)明進行詳細描述。
[0041 ] 實施例1
[0042] 傳統(tǒng)的圖像修補方法沒有能有效利用到待修補圖像塊中的近鄰結(jié)構(gòu)信息和紋理 信息,導致修補出來的圖像比較模糊,有比較大的失真。為此,本發(fā)明提出了一種基于張量 結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法,參見圖1,包括W下步驟:
[0043] 步驟1將訓練樣本庫中的圖像構(gòu)成張量樣本并分類:
[0044] la)把訓練樣本庫中的圖像分成大小為mXn的圖像塊,將非平滑的圖像塊和其空 間8近鄰圖像塊構(gòu)成張量樣本^GRmXnX9,隨機選取100 OOO個張量樣本作為訓練樣本集 {主},其中Rmxnx嗦示每一個張量樣本的大小為m X n X 9,k表示張量樣本在訓練樣本集 中的索引。在本實施例中,m=9,n = 9,當圖像中的受損區(qū)域比較大的時候,m和n的數(shù)值可W 適當增加。
[0045] Ib)將訓練樣本集中的張量樣本分為結(jié)構(gòu)類和非結(jié)構(gòu)類,根據(jù)方向性,將結(jié)構(gòu)類分 為結(jié)構(gòu)子類,再根據(jù)近鄰結(jié)構(gòu)信息,用K-means算法對結(jié)構(gòu)子類進一步細分,將每一個結(jié)構(gòu) 子類再分為K類。
[0046] 步驟2對各個類的張量樣本進行張量字典學習,包括非結(jié)構(gòu)類與結(jié)構(gòu)類中各個細 分的子類:
[0047] 用張量字典學習算法分別對各個類的張量樣本進行學習,得到L個過完備張量字 典
其中巧,巧,巧分別表示第i類張量樣本在模1,模2,模3上的字典。
[004引步驟3對待修補張量分類:
[0049] 將待修補圖像分成大小為mXn的重疊的圖像塊,將每一個待修補圖像塊與空間8 近鄰圖像塊構(gòu)成待修補張量ZkGRmxnX9,按照步驟1中的方法分類,得到待修補張量的類別 柄簽1。
[0050] 步驟4判斷待修補張量的類別,用與之類別標簽對應(yīng)的張量字典進行修補:
[0051] 首先判斷待修補張量是否屬于結(jié)構(gòu)類,如果不屬于結(jié)構(gòu)類則用非結(jié)構(gòu)類字典進行 修補,如果屬于結(jié)構(gòu)類,則用結(jié)構(gòu)類中張量字典進行修補,總之用與之類別標簽對應(yīng)的張量 字典進行修補。
[0化2] 4a)將待修補張量去掉缺損部分得到張量_ ,在張量字典中找到與該待 修補張量類別標簽1相對應(yīng)的張量字典,用張量稀疏編碼對待修補張量在該張量字典下進 行稀疏編碼,得到編碼系數(shù)Ck,
[0化3]
[0化4]其中嚴"。'"。X0表示去掉缺損部分得到張量私的大小為m日X no X 9,1表示待修補張量 的類別標簽,O J表示待修補張量在j模上的感知矩陣,K表示第1類張量j模字典在感知 矩陣Oj下的字典,即
,£^<為待修補張量在第1類張量結(jié)構(gòu)字典下的稀疏 編碼系數(shù),I I ? I Ii表示1范數(shù),A控制稀疏編碼系數(shù)的稀疏度。A的取值在(0,1)之間。在本例 中,A取值為0.5,在實際應(yīng)用中,A的取值可W根據(jù)需要在取值區(qū)間內(nèi)適當調(diào)整。
[0055] 4b)計算得到修補后的張量
[0056] 步驟5對修補后的張量進行圖像重建:
[0化7] 53)計算修補后的張量^^在多類張量結(jié)構(gòu)字典下的重建結(jié)果苗:
[0化引
[0化9]其中,稀疏編碼系數(shù)這通i3
求解得到,公為修 補后的張量弘在第i類張量結(jié)構(gòu)字典下的稀疏編碼系數(shù),哲-為修補后的張量教在第i類張 量結(jié)構(gòu)字典下的重建結(jié)果。
[0060] 本發(fā)明中,多類張量結(jié)構(gòu)字典為在步驟2中學習得到的所有類別的張量字典。通過 將修補后的張量在多類張量字典中進行重建,可W克服單個張量字典對某些結(jié)構(gòu)信息表示 不準確的缺點,進一步提高修補質(zhì)量。
[0061] 5b)計算修補后的張量在多類張量結(jié)構(gòu)字典下的重建權(quán)值:
[0062]
[0063] 其中,Wi表示修補后的張量在第i類張量結(jié)構(gòu)字典下的權(quán)值,L表示結(jié)構(gòu)字典中分 字典的數(shù)目,S表示求和操作,ei表示修補后的張量在第i類張量字典稀疏編碼的重建誤 差,即
[0064] 5c)對修補后的張量在多類張量結(jié)構(gòu)字典下的重建結(jié)果裝進行加權(quán)求和,得到最 終的待修補張量的重建結(jié)果斟,
[00 化]
[0066] 將重建后的張量構(gòu)成圖像,完成圖像修補。
[0067] 基于稀疏表示的方法需要對圖像塊進行向量化處理,破壞了圖像塊的結(jié)構(gòu)信息, 而且在修補的過程中,W單個圖像塊為單位進行修補,沒有考慮到圖像塊之間的近鄰結(jié)構(gòu) 信息。本發(fā)明將圖像塊和其空間8近鄰圖像塊構(gòu)成張量,根據(jù)張量的方向性和近鄰結(jié)構(gòu)信息 對張量樣本進行分類,然后在每一類中構(gòu)造張量字典,再對待修補張量在特定字典下進行 修補,通過將修補后的張量在多類張量字典中進行重建,可W克服單個張量字典對某些結(jié) 構(gòu)信息表達不準確的缺點,最大限度的提高修補質(zhì)量,使得本發(fā)明的修補時間短,修補的準 確性更高。
[006引實施例2
[0069] 基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法同實施例1,步驟化所述的 將訓練樣本集中的張量樣本分為結(jié)構(gòu)類和非結(jié)構(gòu)類的具體步驟,參見圖2,如下:
[0070] 化.1)構(gòu)造每一個張量樣本的梯度張量王a
[0071] 化.2)對梯度張量王:進行冊SVD分解,如下
[0072]
[0073] 其中A,B,C分別表示梯度張量王在模1,模2,模3矩陣的左奇異向量構(gòu)成的字典,0 是梯度張量王在字典A,B,C上的核屯、張量,P,Q,R分別表示核屯、張量g在一維,二維和=維 方向上的長度,gpqr表示核屯、張量客在(P,q,r)位置處的值,Xi表示張量的i模上的乘法,O表 示向量的外積;
[0074] 化.3)按照下式,計算梯度張量王在方向bi,te上的相近程度vi,V2
[0075]
[0076] 其中bi,b2分別表示梯度張量王模2字典帥的第一個和第二個列向量;
[0077] 化.4)按照下式,計算梯度張量T的方向值;
[007引
[0079] 將方向值王C小于TH的張量樣本作為非結(jié)構(gòu)類,將方向值王0大于TH的張量樣本作 為結(jié)構(gòu)類,其中王。表示梯度張量王的方向值,Vl和V2分別為梯度張量在bl,b2上的相近程 度。本發(fā)明中TH是衡量結(jié)構(gòu)類與非結(jié)構(gòu)中的闊值,在分類過程中根據(jù)操作選定,通常在0.6- 0.9之間選取,在本實施例中,TH取值為0.7,當圖像塊比較大的時候,TH的數(shù)值可W適當減 小。
[0080] 1、.。格昭下古宵緝構(gòu)類張量樣本的角度:
[0081]
[0082] 將結(jié)構(gòu)類張量樣本的角度a在范圍-90°~90°內(nèi)每隔10°分為一類,平均劃分為18 類,得到分類后的張量樣本,其中,Cl表示結(jié)構(gòu)類張量樣本的角度,n表示圓周率,bi(l)和bi (2)分別表示向量bi的前兩個值,arctan表示反S角函數(shù)的反正切操作。在實際應(yīng)用中,可 W根據(jù)需要,調(diào)整角度的間隔,從而改變分類的類別數(shù)。當圖像的結(jié)構(gòu)信息比較復雜,需要 分類的類別數(shù)比較多的時候,角度間隔可W適度減小,從而每一個類別中的樣本更相似。
[0083] Ib. 6) W結(jié)構(gòu)類張量樣本對應(yīng)的梯度張量王的模3字典C的第一個原子Cl作為特 征,對在同一結(jié)構(gòu)子類中的張量樣本進行K-means聚類,將每一個結(jié)構(gòu)子類中的張量樣本再 進一步分為K類,完成對每一個結(jié)構(gòu)類張量樣本的細分。在本發(fā)明中,K表示對每一個結(jié)構(gòu)子 類中的張量樣本進一步分類的類別數(shù),通常取值為大于5的正數(shù)。在本例中,K的取值為8。
[0084] 本發(fā)明在圖像張量分類過程中利用了張量的方向性將張量樣本分為結(jié)構(gòu)類和非 結(jié)構(gòu)類,再根據(jù)近鄰結(jié)構(gòu)信息,將每一個結(jié)構(gòu)子類再分為K類。運種分類方法用到了張量的 方向性和近鄰結(jié)構(gòu)信息,克服了現(xiàn)有無監(jiān)督聚類方法中聚類不準確的缺點,使得每一類中 的張量樣本具有較高的結(jié)構(gòu)相似性,從而提升了本發(fā)明修補細節(jié)信息的能力。
[0085] 實施例3
[0086] 基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法同實施例1-2,步驟Ib. 1所 述的構(gòu)造每一個張量樣本的梯度張量王的具體步驟如下:
[0087] 化.1.1)計算張量樣本中的每一個圖像塊。和該張量樣本中屯、圖像塊Ii的相似度: [008引
[0089] 其中,山表示張量樣本中的圖像塊。與其中屯、圖像塊Ii的相似度,h為控制圖像塊 之間相似度的平滑參數(shù),h的取值范圍為1到幾百之間的正數(shù),在本例中,h的取值為20。
[0090] Ib. 1.2)按照下式,計算張量樣本中每一個圖像塊。中每個像素在水平方向和垂 直方向上的梯度:
[0091]
[OOW]其中,V/yh.,興)表示張量樣本的圖像塊I j中第k個點水平方向和垂直方向上的梯 度,(xk,y〇表示第k個像素點處的坐標,將圖像塊。中所有像素點的梯度按照下面的形式構(gòu) 成梯度矩陣Gj,
[0093]
[0094] Ib. 1.3)將張量樣本中每一個圖像塊。的梯度矩陣&分別乘W該圖像塊與該張量 樣本中屯、圖像塊的相似度山,將加權(quán)后的梯度矩陣即Gj X山重疊成梯度張量王,梯度張量
[0095] 本發(fā)明在構(gòu)造梯度張量的過程中,同時考慮到了張量中圖像塊的梯度信息和圖像 塊之間的相似性,使得該梯度張量具有更好反映張量的紋理和結(jié)構(gòu)信息的能力,為下一步 的張量分類提供了更好的依據(jù)。
[0096] 實施例4
[0097] 基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法同實施例1-3,參照附圖1, 對本發(fā)明的具體實現(xiàn)步驟做進一步的描述。
[0098] 步驟1,將訓練樣本庫中的圖像形成張量樣本并分類:
[0099] la)把訓練樣本庫中的圖像分成大小為mXn的圖像塊,將非平滑的圖像塊和該非 平滑的圖像塊的空間8近鄰圖像塊構(gòu)成張量樣本卸GRmxnx9,隨機選取100 000個張量樣本 作為訓練樣本集,其中Rmxnxs表示每一個張量樣本的大小為m X n X 9,k表示張量樣 本在訓練樣本集中的索引。在本實施例中,m=8,n = 8,當圖像中的受損區(qū)域比較大的時候, m和n的數(shù)值可W適當增加。
[0100] Ib)將訓練樣本集中的張量樣本分為結(jié)構(gòu)類和非結(jié)構(gòu)類,根據(jù)方向性,將結(jié)構(gòu)類分 為結(jié)構(gòu)子類,再根據(jù)近鄰結(jié)構(gòu)信息,用K-means算法對結(jié)構(gòu)子類進一步細分,將每一個結(jié)構(gòu) 子類再分為K類。
[0101] 化.1)構(gòu)造每一個張量樣本的梯度張量王;
[0102] 化.1.1)計算張量樣本中的每一個圖像塊。和該張量樣本中屯、圖像塊Ii的相似度:
[0103]
[0104] 其中,山表示張量樣本中的圖像塊。與其中屯、圖像塊Ii的相似度,h為控制圖像塊 之間相似度的平滑參數(shù)。
[0105] Ib. 1.2)按照下式,計算張量樣本中每一個圖像塊。中每個像素在水平方向和垂 直方向上的梯度:
[0106]
[0107]其中,巧,托)表示張量樣本的圖像塊。中第k個點水平方向和垂直方向上的梯 度,(xk,yk)表示第k個像素點處的坐標,將圖像塊。中所有像素點的梯度按照下面的形式構(gòu) 成梯度矩陣Gj,
[010 引
[0109] lb. I. 3)將張量樣本中每一個圖像塊。的梯度矩陣b分別乘W該圖像塊與該張量 樣本中屯、圖像塊的相似度山,將加權(quán)后的梯度矩陣即& X山重疊成梯度張量王,梯度張量
[0110] 化.2)對梯度張量T進行冊SVD分解,按照下式進行:
[0111]
[0112] 其中A,B,C分別表示梯度張量T在模1,模2,模3矩陣的左奇異向量構(gòu)成的字典,復 是梯度張量王在字典A,B,C上的核屯、張量,P,Q,R分別表示核屯、張量鳥在一維,二維和=維 方向上的長度,gpqr表示核屯、張量£在(P,q,r)位置處的值,Xl表示張量的i模上的乘法,o表 示向量的外積。
[0113] 化.3)按照下式,計算梯度張量王在方向bi,te上的相近程度vi,V2
[0114]
[0115] 其中bi,b2分別表示梯度張量f模2字典B中的第一個和第二個列向量。
[0116] 化.4)按照下式,計算梯度張量T的方向值:
[0117]
[011引將方向值里。小于TH的張量樣本作為非結(jié)構(gòu)類,將方向值王。大于TH的張量樣本作 為結(jié)構(gòu)類,其中王^表示梯度張量王的方向值,Vl和V2分別為梯度張量在bl,b2上的相近程 度。在本實施例中,TH取值0.7。
[0119] 化.5)按照下式,計算結(jié)構(gòu)類張量樣本的角度:
[0120]
[0121] 將結(jié)構(gòu)類張量樣本的角度a在范圍-90°~90°內(nèi)每隔10°分為一類,平均劃分為18 類,得到分類后的張量樣本,其中,a表示結(jié)構(gòu)類張量樣本的角度,JT表示圓周率,bi(l)和bi (2)分別表示向量bi的前兩個值,arctan表示反S角函數(shù)的反正切操作。在實際應(yīng)用中,根 據(jù)需要調(diào)整角度的間隔,改變分類的類別數(shù)。
[0122] Ib. 6) W結(jié)構(gòu)類張量樣本對應(yīng)的梯度張量r的模3字典C的第一個原子Cl作為特 征,對在同一結(jié)構(gòu)子類中的張量樣本進行K-means聚類,將每一個結(jié)構(gòu)子類中的張量樣本再 進一步分為K類,完成對每一個結(jié)構(gòu)類張量樣本的細分。
[0123] 步驟2,張量字典學習:
[0124] 用張量字典學習算法分別對各個類的張量樣本進行學習,得到L個過完備張量字 典的,D油心其中D'l馬D紛別表示第i類張量樣本在稅,模2,模3上的字典。
[0125]本發(fā)明沒有用單個字典對所有的樣本進行學習,而是將所有的張量樣本根據(jù)方向 性和近鄰結(jié)構(gòu)信息先分類,然后在各個類別中分別學習張量字典,運種方法減少了字典學 習的復雜度,提高了字典的準確性,從而達到了比較好的重建結(jié)果。
[01 %]步驟3,對待修補張量分類:
[0127] 將待修補圖像分成大小為mXn的重疊的圖像塊,將每一個待修補的圖像塊與其空 間8近鄰圖像塊構(gòu)成待修補張量砂G Rmxnx9,按照步驟1中的方法分類,將待修補的張量分為 結(jié)構(gòu)類和非結(jié)構(gòu)類,再根據(jù)方向^生和近鄰結(jié)構(gòu)信息,對結(jié)構(gòu)類進一步細分,得到其類別標簽 1。在運里將待修補圖像分成重疊的圖像塊,是為了減少因分塊而導致重建圖像比較嚴重的 塊效應(yīng),提升圖像的重建效果。
[0128] 步驟4,將待修補張量用與之類別標簽對應(yīng)的張量字典進行修補:
[0129] 4a)將待修補張量去掉缺損部分得到張量用張量稀疏編碼對待修補 張量在與之對應(yīng)類別的張量字典下進行稀疏編碼得到編碼系數(shù)也就是對編碼誤差最小 化,
[0130]
[0131] 其中i^。x"。x9表示去掉缺損部分得到張量?的大小為m日Xn日X9,l表示待修補張量 的類別標簽,01表示待修補張量在i模上的感知矩陣,巧表示第1類張量i模字典D;在感知 矩陣(61下的字典,即
1表示1范數(shù),A控制稀疏編碼系數(shù)的稀疏度。在本例 中,如勺取值為0.2。
[0132] 4b)計算得到修補后的張量
[0133] 步驟5,圖像重建:
[0134] 5a)計算修補后的張量扛在多類張量結(jié)構(gòu)字典下的重建結(jié)果乏1-:
[0135]
[0136] 其中,稀疏編碼系數(shù)起通過
求解得到,公為修 補后的張量替在第i類張量結(jié)構(gòu)字典下的稀疏編碼系數(shù),替為修補后的張量&在第i類張 量結(jié)構(gòu)字典下的重建結(jié)果;
[0137] 5b)計算修補后的張量在多類張量結(jié)構(gòu)字典下的重建權(quán)值:
[013 引
[0139] 其中,Wi表示修補后的張量在第i類張量結(jié)構(gòu)字典下的權(quán)值,L表示結(jié)構(gòu)字典中分 字典的數(shù)目,S表示求和操作,ei表示修補后的張量在第i類張量字典稀疏編碼的重建誤 差,即
[0140] 5c)對修補后的張量在多類張量結(jié)構(gòu)字典下的重建結(jié)果^進行加權(quán)求和,得到最 終的待修補張量的重建結(jié)果斟,
[0141]
[0142] 將重建后的張量構(gòu)成圖像,完成圖像修補。
[0143] 本發(fā)明的效果可W通過W下仿真實驗進一步說明:
[0144] 實施例5
[0145] 基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法同實施例1-4,
[0146] 1.仿真實驗條件與方法:
[0147] 硬件測試平臺是:處理器為Intel Core2CPU,主頻為2.33GHz,內(nèi)存2GB,
[0148] 軟件平臺為:Windows XP操作系統(tǒng)和Matlab R2012a;
[0149] 實驗方法:分別為本發(fā)明、化iminisi方法和基于稀疏表示的圖像修補方法。
[0150] 2.仿真實驗內(nèi)容:
[0151] 在上述實驗條件下,進行W下實驗。
[0152] 仿真一,利用本發(fā)明與現(xiàn)有兩種方法,對含破損待修補圖像3(b)進行修補處理,其 中圖3(b)中的白色文字部分為受損區(qū)域,修補結(jié)果如圖4所示。其中圖4(a)為Criminisi方 法修補的結(jié)果圖,圖4(b)為基于稀疏表示的方法修補的結(jié)果圖,圖4(c)為本發(fā)明修補的結(jié) 果圖。
[0153] 分別將上述S種方法修補的結(jié)果圖4(a),圖4(b)和圖4(c)與未破損圖像3(a)進行 比較,從視覺效果來看,Criminisi算法修補過后圖像的臉部和帽子邊緣出現(xiàn)了明顯的瑕 疵,基于稀疏表示的方法無法對細節(jié)進行較好的處理,修補后圖像的邊緣產(chǎn)生了一定的模 糊。如圖4(c)所示,經(jīng)本發(fā)明修補的圖像可見,保持了較好的結(jié)構(gòu)信息,修補后的結(jié)果圖具 有更多的細節(jié),輪廓部分更加清晰自然。
[0154] 如果說視覺感受對圖像修補結(jié)果的分辨仍有差異,數(shù)值指標更能精確反映圖像的 重構(gòu)效果。
[0155] 分別計算上述S種方法對含受損待修補圖3(b)修補結(jié)果的峰值信噪比PSNR和結(jié) 構(gòu)相似度SSIM,其指標表示不同方法修補圖像的效果,數(shù)值越大,說明修補效果越好。其結(jié) 果如表1所不。
[0156] 表1:本發(fā)明與現(xiàn)有方法實驗結(jié)果的對比
[0157]
[015引從表1中可W看出本發(fā)明修補出來圖像的峰值信噪比PSNR和結(jié)構(gòu)相似度SSIM比現(xiàn) 有的兩種方法都有較大提局。
[0159] W上的實驗結(jié)果表明,本發(fā)明無論在客觀指標還是視覺效果上,都表現(xiàn)出了較好 的性能,在保持結(jié)構(gòu)效果的同時,提高了圖像的修補結(jié)果。
[0160] 實施例6
[0161] 基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法同實施例1-5,仿真實驗條 件與方法同實施例5:
[0162] 仿真二,利用本發(fā)明與現(xiàn)有兩種方法,對含破損待修補圖像5(b)進行修補處理,其 中圖5(b)中的白色'#'部分為受損區(qū)域,修補結(jié)果如圖6所示。其中圖6(a)為Criminisi方法 修補的結(jié)果圖,圖6(b)為基于稀疏表示的方法修補的結(jié)果圖,圖6(c)為本發(fā)明修補的結(jié)果 圖。
[0163] 分別將上述S種方法修補的結(jié)果圖6(a),圖6(b)和圖6(c)與未破損圖像5(a)進行 比較,從視覺效果來看,Criminisi算法修補后的圖像,尤其是在圖像中間化pper的中間部 位明顯地留有橫向和豎向的痕跡,產(chǎn)生了較為明顯的塊效應(yīng)?;谙∈璞硎镜姆椒ㄐ扪a后 的圖像在尖椒上原受損區(qū)域有豎向的模糊痕跡,在深色的化pper上有比較明顯的橫向模糊 痕跡。如圖6(c)所示,經(jīng)本發(fā)明修補的圖像可見,保持了較好的整體結(jié)構(gòu)信息,修補結(jié)果清 晰自然,更加接近于原圖。
[0164] 進一步從數(shù)值指標來對比本發(fā)明與現(xiàn)有技術(shù)的圖像重構(gòu)效果。
[0165] 分別計算上述S種方法對含受損待修補圖5(b)修補結(jié)果的峰值信噪比PSNR和結(jié) 構(gòu)相似度SSIM,其指標表示不同方法修補圖像的效果,數(shù)值越大,說明修補效果越好。其結(jié) 果如表2所示。
[0166] 表2:本發(fā)明與現(xiàn)有方法實驗結(jié)果的對比
[0167]
[016引從表2中可W看出本發(fā)明修補出來圖像的峰值信噪比PSNR和結(jié)構(gòu)相似度SSIM比現(xiàn) 有的兩種方法都有較大提局。
[0169] W上的實驗結(jié)果表明,本發(fā)明無論在客觀指標還是主觀效果上,都表現(xiàn)出了較好 的性能,在保持結(jié)構(gòu)效果的同時,提高了圖像的修補結(jié)果。
[0170] 簡而言之,本發(fā)明的基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法,其主 要步驟包括:根據(jù)張量的方向性和近鄰結(jié)構(gòu)信息對張量樣本進行分類,每一類分別構(gòu)造張 量字典,對待修補圖像張量采用同樣的方式分類,用與之類別標簽對應(yīng)的張量字典對其進 行修補,對每類字典下的重建結(jié)果進行加權(quán)求和,得到最終的待修補圖像的重建結(jié)果。本發(fā) 明根據(jù)張量的方向性和近鄰結(jié)構(gòu)信息對張量進行有效的、確定性的分類,能很好的區(qū)別具 有不同細節(jié)的張量,在對待修補張量重建時,利用重建誤差對每類字典下的重建結(jié)果進行 加權(quán)求和,克服了單個字典表達能力有限的缺點,對自然圖像的修補,能恢復更為清晰的邊 緣細節(jié),進一步提高了修補質(zhì)量。應(yīng)用領(lǐng)域為圖像修補。
【主權(quán)項】
1. 一種基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法,其特征在于,包括有以 下步驟: 步驟1將訓練樣本庫中的圖像構(gòu)成張量樣本并分類: la) 把訓練樣本庫中的圖像分成大小為mXn的圖像塊,將非平滑的圖像塊和其空間8近 鄰圖像塊構(gòu)成張量樣本@erXnX9,隨機選取100 OOO個張量樣本作為訓練樣本集 其中RmXnX9表不每一個張量樣本的大小為m X η X 9; lb) 將訓練樣本集中的張量樣本分為結(jié)構(gòu)類和非結(jié)構(gòu)類,根據(jù)方向性和近鄰結(jié)構(gòu)信息, 對結(jié)構(gòu)類再進一步細分; 步驟2對各個類的張量樣本進行張量字典學習: 用張量字典學習算法分別對各個類的張量樣本進行學習,得到L個過完備張量字典>別表示第i類張量樣本在模1,模2,模3上的字典; 步驟3對待修補張量分類: 將待修補圖像分成大小為mXn的重疊的圖像塊,將每一個待修補圖像塊和其空間8近 鄰圖像塊構(gòu)成待修補張量ZkeRmXnX9,按照步驟1中的方法分類,得到待修補張量的類別標 簽1; 步驟4判斷待修補張量的類別,用與之類別標簽對應(yīng)的張量字典進行修補: 4a)將待修補張量@去掉缺損部分得到張量& e :,用張量稀疏編碼對待修補張量 在與之類別標簽對應(yīng)的張量字典下進行稀疏編碼,得到編碼系數(shù)£k,其中表示去掉缺損部分得到張量的大小為mo Xno X9,l表示待修補張量的類 別標簽,表示待修補張量在j模上的感知矩陣,^表示第1類張量j模字典%:在感知矩陣 3^下的字典,即= 2,3為待修補張量在第1類張量結(jié)構(gòu)字典下的稀疏編碼 系數(shù),I I · I I1表示1范數(shù),λ控制稀疏編碼系數(shù)的稀疏度; 4b)計算得到修補后的張量t :心=X1 D; x2 D; x3 D;; 步驟5對修補后的張量進行重建: 5a)計算修補后的張量^在多類張量結(jié)構(gòu)字典下的重建結(jié)果右:其中,稀疏編碼系數(shù)S通過農(nóng)解得到,4為修補后 的張量&在第i類張量結(jié)構(gòu)字典下的稀疏編碼系數(shù),$為修補后的張量匕在第i類張量結(jié)構(gòu) 字典下的重建結(jié)果; 5b)計算修補后的張量在多類張量結(jié)構(gòu)字典下的重建權(quán)值:其中,^表示修補后的張量在第i類張量結(jié)構(gòu)字典下的權(quán)值,L表示結(jié)構(gòu)字典中分字典的 數(shù)目,Σ表示求和操作,^表示修補后的張量在第i類張量字典稀疏編碼的重建誤差,即5c)對修補后的張量在多類張量結(jié)構(gòu)字典下的重建結(jié)果$進行加權(quán)求和,得到最終的 待修補張量的重建結(jié)果將重建后的張量構(gòu)成圖像,完成圖像修補。2.根據(jù)權(quán)利要求1所述的基于張量結(jié)構(gòu)多字典學習與稀疏編碼的圖像修補方法,步驟 Ib所述的將訓練樣本集中的張量樣本分為結(jié)構(gòu)類和非結(jié)構(gòu)類,其特征在于,包括有以下步 驟: lb. 1)構(gòu)造每一個張量樣本的梯度張量2:; Ib. 2)對梯度張量:z:進行HOSVD分解,按照下式進行:其中A,B,C分別表示梯度張量:T在模1,模2,模3矩陣的左奇異向量構(gòu)成的字典,晝是梯 度張量T在字典A,B,C上的核心張量,P,Q,R分別表示核心張量g在一維,二維和三維方向 上的長度,gpqr表示核心張量堂在(p,q,r)位置處的值,X i表示張量的i模上的乘法,O表示向 量的外積; Ib. 3)按照下式,計算梯度張量^在方向bi,b2上的相近程度Vi,V2:其中h,b2分別表示梯度張量:〇莫2字典B中的第一個和第二個列向量; Ib.4)按照下式,計算梯度張量Z:的方向值:將方向值:小于TH的張量樣本作為非結(jié)構(gòu)類,將方向值大于TH的張量樣本作為結(jié) 構(gòu)類,其中表示梯度張量2:的方向值,VdPv2分別為梯度張量在匕,132上的相近程度; Ib.5)按照下式,計算結(jié)構(gòu)類張量樣本的角度:將結(jié)構(gòu)類張量樣本的角度α在范圍-90°~90°內(nèi)每隔10°分為一類,平均劃分為18類,得 到分類后的張量樣本,其中,α表示結(jié)構(gòu)類張量樣本的角度,π表示圓周率,I31(IWPb1U)分別 表示向量bi的前兩個值,arc tan表示反三角函數(shù)的反正切操作; Ib.6)以結(jié)構(gòu)類張量樣本對應(yīng)的梯度張量Γ的模3字典C的第一個原子(^作為特征,對在 同一結(jié)構(gòu)子類中的張量樣本進行Κ-means聚類,將每一個結(jié)構(gòu)子類中的張量樣本再進一步 分為K類,完成對每一個結(jié)構(gòu)類張量樣本的細分。3.根據(jù)權(quán)利要求2所述的將訓練樣本集中的張量樣本分為結(jié)構(gòu)類和非結(jié)構(gòu)類,步驟 Ib. 1所述的構(gòu)造每一個張量樣本的梯度張量尤,其特征在于,包括有以下步驟: Ib. 1.1)計算張量樣本中的每一個圖像塊和該張量樣本中心圖像塊^的相似度:其中,山表示張量樣本中的圖像塊込與其中心圖像塊I1的相似度,h為控制圖像塊之間 相似度的平滑參數(shù); Ib. 1.2)按照下式,計算張量樣本中每一個圖像塊Ij中每個像素在水平方向和垂直方向 上的梯度:其中,▽/)(.&,Λ)表示張量樣本的圖像塊I j中第k個點水平方向和垂直方向上的梯度, U,yk)表示第k個像素點處的坐標,將圖像塊I沖所有像素點的梯度按照下面的形式構(gòu)成 梯度矩陣化,Ib. 1.3)將張量樣本中每一個圖像塊的梯度矩陣Gj分別乘以該圖像塊與該張量樣本 中心圖像塊的相似度dj,將加權(quán)后的梯度矩陣即Gj Xdj重疊成梯度張量Z,梯度張量 T(u:,j) = G ,
【文檔編號】G06T5/00GK106023098SQ201610312527
【公開日】2016年10月12日
【申請日】2016年5月12日
【發(fā)明人】楊淑媛, 焦李成, 崔順, 劉紅英, 馬晶晶, 馬文萍, 侯彪, 緱水平, 曹向海, 劉志, 王夢娜
【申請人】西安電子科技大學