王 欣,沈思秋
(河海大學 計算機與信息學院,江蘇 南京 211100)
隨著圖像處理技術(shù)的不斷發(fā)展,圖像去噪一直都是圖像處理的熱門研究重點。圖像去噪的目標就是在去除圖像噪聲的前提下最大限度地保留好圖像的細節(jié)和邊緣信息。傳統(tǒng)的處理含噪圖像方法中,一般均基于圖像有用信息部分的頻率較低,噪聲的頻率較高的假設(shè)來完成,基于多尺度變換的圖像去噪是研究較多的一類方法,其中基于小波變換的圖像去噪也是其中最常用的一種方法。然而實際上圖像的細節(jié)部分和邊緣環(huán)節(jié)等有用信息中有時也會含有部分高頻分量,而且噪聲雖以高頻成分為主,也含有低頻成分,因此這就是傳統(tǒng)的去噪方法存在缺陷的根本原因。近年來,由于圖像的稀疏表示能更好地刻畫圖像的本質(zhì)特征,因此將稀疏表示運用到圖像去噪領(lǐng)域?qū)⒊蔀楫斍把芯康闹攸c。信號的稀疏表示優(yōu)越之處在于采用過完備系統(tǒng)的自適應(yīng)表示比采用單一完備基的系統(tǒng)更容易取得稀疏性。在圖像稀疏表示領(lǐng)域,字典的設(shè)計和產(chǎn)生是超完備稀疏表示理論的重要研究內(nèi)容之一,本文提出了一種改進的基于K-SVD字典的去噪算法,該方法將K-SVD與圖像內(nèi)容聚類和稀疏貝葉斯學習算法相結(jié)合,更有效地去除了圖像噪聲,最大程度地保留了圖像的有用信息,得到了視覺較好的去噪圖像。
在基于稀疏表示的去噪圖像[1]中,圖像的有用信息具有一定的結(jié)構(gòu)特征和稀疏性,它與字典原子的結(jié)構(gòu)相吻合,而噪聲不具備這樣的結(jié)構(gòu)特征,不能在任何字典上稀疏表示,因此稀疏表示將有用信息和噪聲進行了定性的劃分,這種劃分受噪聲強度和帶寬的影響較小,能夠很好的分離圖像有用信息和噪聲信息,達到圖像的去噪作用,獲得良好的重構(gòu)圖像。本文從字典設(shè)計的預處理階段進行優(yōu)化,結(jié)合圖像聚類和稀疏貝葉斯學習兩個角度對含噪圖像進行預處理,然后進行K-SVD字典學習[2]和稀疏表示,這樣可以使字典設(shè)計更具有針對性,以更好地實像圖像的去噪。
設(shè)信號x∈Rn是預定原子的線性組合,那么x的稀疏表示問題為
其中,α∈Rn為稀疏表示系數(shù);‖α‖0為α的非零元個數(shù),即稀疏度;D為字典;ε為誤差容限。
字典一般分為顯示字典和隱式字典兩種,其中顯示字典能夠得到一個快速簡單的算法,而隱式字典相對于顯示針對性強,精度更高,收斂性好,在圖像去噪領(lǐng)域運用更為廣泛。本文將詳細介紹一種基于隱式字典K-SVD的字典學習。
字典的學習一般包括兩個階段,即第一階段為稀疏編碼,第二階段為字典更新。稀疏編碼階段即在初始化字典D不變的情況下,求出樣本圖像在字典D上的稀疏表示,得到稀疏向量。字典更新階段即在稀疏表示向量和已知輸入信號的前提下,逐列更新字典D的每一列向量,直至字典D收斂更新完畢,結(jié)束字典的學習,完成信號的稀疏表示。
稀疏分解圖像去噪[3]的流程一般為第一步構(gòu)建過完備字典,第二步圖像稀疏分解 (這一階段為圖像去噪的關(guān)鍵階段),第三步去噪圖像重構(gòu),使用稀疏系數(shù)舉證和優(yōu)化的過完備字典重構(gòu)圖像,得到去噪后的圖像。
基于K-SVD字典的傳統(tǒng)圖像去噪算法的流程圖如下:
圖1 傳統(tǒng)算法流程圖Fig.1 The traditional algorithm flowchart
在訓練好含噪圖像的過完備字典后,通過字典D進行圖像的去噪[4-5]。
首先對輸入圖像Y進行分塊,每個圖像子塊為Xij=RijX,Rij,為提取圖像子塊的矩陣,則目標函數(shù)為
其中:第一項表示未知去噪圖像和含噪圖像的總體相似度,第二項表示總的稀疏度約束,第三項表示重構(gòu)圖像子塊與已知圖像子塊的總誤差,αij表示圖像子塊在字典D上的稀疏表示系數(shù)。
由目標函數(shù)可知,第一步先求αij,即
利用正交匹配追蹤算法求解αij,這種方法相當于滑動窗口的稀疏編碼步驟,當求解完所有的αij后,上式轉(zhuǎn)換為求解
該二項式的封閉形式的解即為
所以X^即為所求的去噪圖像,其中I為單位矩陣。
通過具體分析信號的幾何結(jié)構(gòu),針對信號內(nèi)容實現(xiàn)更精細的分類,繼而尋找每一類圖形塊的優(yōu)化字典,這樣可以加快收斂的速度,提高信號稀疏表示的精度。本改進算法通過引入K-means算法對圖像塊進行聚類處理,將具有相似集合形態(tài)的同一類圖像塊聚在一起,然后針對每一類圖像塊,利用KSVD算法各自訓練對應(yīng)該類圖像塊的優(yōu)化字典,得到的字典更具有針對性,使基于字典的稀疏表示對于樣本的殘差達到最小,最終實現(xiàn)圖像的去噪。
K均值(K-means)聚類算法的主要原理如下:首先從n個數(shù)據(jù)中隨機選擇k個對象作為初始聚類中心。根據(jù)每類中的聚類中心,計算剩余每個對象與各聚類中心的距離,并根據(jù)最近鄰分配法將各對象分配到與其最近的類中,然后再重新計算每個有變化的類中心反復進行聚類,直到每個聚類不再發(fā)生變化和平方誤差函數(shù)收斂為止。
平方收斂函數(shù)定義如下:
其中,E表示數(shù)據(jù)中對象與相應(yīng)聚類中心的均方差之和,p代表對象空間中的一個點,Ci代表第i個分類,mi為類Ci的均值。
在K-SVD算法中,如果初始化字典的不恰當選擇,字典的每一列不能全部更新,部分列會出現(xiàn)失效的情況,為了解決K-SVD算法的信號利用率不足的問題,本改進算法采用稀疏貝葉斯學習(Sparse Bayesian Learning,SBL)[6]來對待處理的信號進行預處理,首先通過貝葉斯概率模型迭代至信號的稀疏表示,減輕了利用率不足的問題。
具體步驟如下:
1)計算 αij的協(xié)方差矩陣和 αij:
其中 Γ 是 K×K 階對角矩陣,γ1,γ2,…,γk為對角元素。
2)噪聲的更新:
本文改進算法的流程圖如下:
圖2 改進算法流程圖Fig.2 The improved algorithm flowchart
本文去噪算法的具體步驟如下所示:
輸入:輸入含噪圖像Y,其中噪聲標準差為σ2,迭代次數(shù)Jmax
輸出:字典D和去噪圖像X。
Step1初始化階段。聚類個數(shù)M,K個超參數(shù)向量γ=[γ1,γ2,…,γk]T,初始化字典 D(0)∈Rn×k為過完備 DCT 基,J=1
Step2圖像樣本聚類階段。對圖像塊Y進行K-means聚類,將圖像Y分成 M類,得到每個圖像子塊 Xij=RijX,i=1,2,…,k;j=1,2,…,M;Rij為提取圖像子塊的矩陣。
Step3稀疏貝葉斯學習階段。當J≤Jmax時,針對每一類圖像塊Xij,使用稀疏貝葉斯學習來求得稀疏向量αij,同時不斷更新噪聲大小。
Step4稀疏編碼階段。當J>Jmax時,針對每一類圖像塊Xij,使用OMP算法對下述模型進行匹配追蹤繼續(xù)求得稀疏向量 αij。
其中:X為去噪后的圖像;Rij為索引矩陣,表示提取圖像X中標記為(i,j)的子塊;αij表示圖像子塊 RijX在字典D上的稀疏;σ為噪聲的標準差;C為容差系數(shù),表示去噪的精度。
Step5字典更新階段。假設(shè)α和D固定,對字典DJ-1j中的每個列向量 djl,l=1,2,…,k,進行逐列更新。
更新步驟如下:
1)定義使用這個原子的樣本組 ωl={(i,j)|αij(l)≠0};
2)對于每個索引(i,j)∈ωl,計算表示誤差
3)定義 El為的矩陣,根據(jù) El=UΔVT對其進行奇異值分解,用 U 的第一列替換字典的 djl,用 Δ(1,1)×V 替換。 反復迭代至其收斂穩(wěn)定,結(jié)束字典學習。
為了驗證本文算法在圖像去噪中的可行性和優(yōu)越性,進行仿真實驗,分別采用本文算法、K-SVD字典學習算法對含有高斯噪聲的圖像進行去噪比較。
圖3給出了含噪圖像及兩種算法去噪算法得到的去噪圖像,圖 3(a)為含噪圖像,圖 3(b)為 K-SVD算法去噪圖像,圖3(c)為本文算法去噪圖像。
圖3 含噪圖像及兩種算法去噪圖像Fig.3 The noisy image and two denoising image algorithms
對含有高斯噪聲的低信噪比圖像進行去噪比較,除了從肉眼觀察圖像的去噪情況,還采用常用的尖峰信噪比PSNR(Peak Signal to Noise Ratio)作為客觀指標,來更直接地比較不同算法的去噪效果。本文中也采用PSNR作為客觀評價標準。表1為本文算法和K-SVD算法在圖像去噪后的PSNR(dB)數(shù)據(jù)比較,PSNR將圖像的品質(zhì)與圖像灰度級數(shù)相關(guān),PSNR值越高,圖像去噪效果越好,因此PSNR是常用的客觀評價標準。
其中 Q 代表圖像量化的灰度級數(shù),f^(i,j)和 f(i,j)分別表示待評價圖像和參考圖像第i行j列像素點得灰度值,M、N分別代表圖像的長度和寬度。
表1 不同算法在圖像去噪后的PSNR(dB)數(shù)據(jù)比較Tab.1 Comparison of PSNR by different methods
從圖3和表1數(shù)據(jù)可以看出,本文改進算法具有更好的去噪能力,可以更好地保留圖像的邊緣和細節(jié),與基于K-SVD字典的去噪算法比較,在圖像去噪中隨著噪聲的逐漸增強,PSNR值降的較慢,而且有更高的PSNR值,視覺效果更好。
基于稀疏表示,本文提出了一種改進的基于K-SVD字典的圖像去噪方法,采用K均值聚類算法對圖像塊進行聚類,通過稀疏貝葉斯學習進行圖像預處理,使用K-SVD算法分別對各類圖像塊進行訓練,得到與各類圖像塊相適應(yīng)的字典,完成圖像的去噪。實驗結(jié)果表明,該算法具有較好的去噪效果,魯棒性好,它能夠更好地去除圖像中的高斯白噪聲,很好地保留圖像的邊緣信息,提高了圖像的峰值性噪比。
[1]尹忠科,解梅,王建英.基于稀疏分解的圖像去噪[J].電子科技大學學報,2006,35(6):876-878.YIN Zhon-ke,XIE Mei,WANG Jian-ying.Image denoising based on its sparse decomposition[J].Journal of University of Electronic Science and Technology of China,2006,35 (6):876-878.
[2]Aharon M,Elad M,Bruckstein A.The K-SVD:an algorithm for designing overcomplete dictionaries for sparse representation[J].IEEE Transactions on Image Processing,2006,54(11):4311-4322.
[3]蔡澤民,賴劍煌.一種基于超完備字典學習的圖像去噪方法[J].電子學報,2009(2):347-350.CAI Ze-min,LAI Jian-huang.An overcomplete learned dictionary based image denoising method[J].Acta Electronic Sinica,2009(2):347-350.
[4]Elad M,Aharon M.Image denoising via sparse and redundant representations over learned dictionaries[J].IEEE Transaction on Image Processing,2006,15(12):3736,3745.
[5]段新濤,岳冬利.一種非零元個數(shù)約束的字典學習圖像去噪算法[J].計算機應(yīng)用研究,2011,28(8):3192-3197.DUAN Xin-tao,YUE Dong-li.Image denoising algorithm of dictionary learning restricted by nonzeros number[J].Application Research of Computers,2011,28(8):3192-3197.
[6]Ribhu R,Ghosh D.Dictionary design for sparse signal representations using K-SVD with sparse Bayesian learning[C]//Proceedings of 2012 IEEE 11th International Conference on Signal Processing(ICSP),2012:21-25.