白同磊,張翠芳
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 611756)
在過(guò)去的幾十年中,已經(jīng)研究出許多圖像去噪的方法,包括基于濾波的方法、基于擴(kuò)散的方法、基于全變分的方法、基于小波的方法、基于稀疏表示的方法和基于非局部自相似的方法等。
非局部自相似(Non-local Self-similarity,NSS)算法根據(jù)圖像中存在許多相似圖像塊的事實(shí)來(lái)恢復(fù)圖像,與傳統(tǒng)的基于局部自相似性的方法相比可以提取更多的先驗(yàn)信息,顯著提高了算法的去噪性能。Dabov等人[1]提出了圖像塊匹配和三維濾波(Block Matching with 3D Filtering,BM3D)的方法,將非局部相似塊組成三維矩陣,并在稀疏3D變換域中進(jìn)行了協(xié)同過(guò)濾,使得BM3D算法成為圖像去噪的高效算法。Mairal等人[2]提出一種非局部稀疏模型,通過(guò)對(duì)NSS先驗(yàn)進(jìn)行組稀疏編碼來(lái)恢復(fù)圖像。Dong等人[3]將NSS先驗(yàn)和局部稀疏編碼統(tǒng)一到非局部中心化稀疏表示(Nonlocally Centralized Sparse Representation,NCSR)框架中,形成了一種高效的圖像去噪算法。Gu等人[4-5]假設(shè)非局部相似塊的矩陣具有低秩結(jié)構(gòu),提出了基于低秩最小化的去噪方法。張?chǎng)┑热薣6]提出用高斯混合模型從外部干凈數(shù)據(jù)集學(xué)習(xí)非局部自相似先驗(yàn)信息的方法,可以較好地恢復(fù)圖像的細(xì)節(jié)部分,但是沒(méi)有充分利用塊組之間的相似性,導(dǎo)致高斯混合模型過(guò)于復(fù)雜。柯祖福等人[7]提出一種基于非局部自相似的譜聚類(lèi)圖像去噪算法,利用合適的低秩矩陣來(lái)近似恢復(fù)圖像,但是需要提供高斯白噪聲的標(biāo)準(zhǔn)差,缺乏自適應(yīng)性。張玉征等人[8]提出用雙核函數(shù)來(lái)計(jì)算參考圖像塊和鄰域圖像塊的相似度,可以取得良好的去噪結(jié)果,但是在噪聲水平比較高的情況下,雙核函數(shù)不能準(zhǔn)確衡量圖像塊之間的相似度。薛智爽等人[9]將非局部群稀疏表示引入到圖像的最優(yōu)濾波中,提出了非局部群稀疏表示模型,可以高效地恢復(fù)圖像的結(jié)構(gòu)信息,但是僅適用于去除高斯白噪聲。李偉偉[10]提出了一種非局部可切換濾波的方法,通過(guò)對(duì)圖像塊進(jìn)行預(yù)處理來(lái)增加相似度函數(shù)的準(zhǔn)確性,但是僅適用于去除椒鹽噪聲。
與大多數(shù)圖像去噪算法不同,本文的目標(biāo)是去除圖像中真實(shí)的噪聲。為了提取準(zhǔn)確的先驗(yàn)信息,從外部干凈圖像中學(xué)習(xí)非局部自相似先驗(yàn),以實(shí)現(xiàn)高性能的去噪算法。在學(xué)習(xí)階段,從外部干凈圖像數(shù)據(jù)集中提取數(shù)百萬(wàn)個(gè)外部塊組,并用高斯混合模型學(xué)習(xí)外部塊組的先驗(yàn)信息。在去噪階段,對(duì)高斯分量的協(xié)方差矩陣進(jìn)行奇異值分解得到字典和正則化參數(shù),并利用得到的字典和正則化參數(shù)對(duì)噪聲圖像內(nèi)部塊組進(jìn)行稀疏表示。實(shí)驗(yàn)結(jié)果顯示,本文提出的算法可以高效地去除圖像中真實(shí)的噪聲。
本文選用Kodak PhotoCD數(shù)據(jù)集作為外部干凈圖像數(shù)據(jù)集,該數(shù)據(jù)集包含24張高質(zhì)量自然圖像,每張圖像的尺寸大小為500 pixel×500 pixel。學(xué)習(xí)外部先驗(yàn)信息的關(guān)鍵是將圖像中相似的塊聚集成一個(gè)塊組,相比于單個(gè)圖像塊,塊組具有更多的先驗(yàn)信息。用高斯混合模型可以從外部干凈圖像數(shù)據(jù)集中學(xué)習(xí)精確的圖像先驗(yàn)信息,而無(wú)需考慮噪聲對(duì)圖像的干擾和破壞。
(1)
對(duì)塊組去直流后,會(huì)顯著增加塊組間的相似性,從而減少擬合塊組所需的高斯分量個(gè)數(shù),進(jìn)而降低了高斯混合模型的復(fù)雜度。
假設(shè)從外部干凈圖像數(shù)據(jù)集中提取N個(gè)塊組,對(duì)塊組進(jìn)行去直流分量處理得
(2)
(3)
式中:μk表示均值,Σk表示協(xié)方差矩陣,πk表示權(quán)重系數(shù)。假設(shè)塊組之間是獨(dú)立的,則N個(gè)塊組的似然函數(shù)表示為
(4)
(5)
(6)
(7)
(8)
通過(guò)在E步和M步之間交替,模型參數(shù)將被迭代更新,每次迭代都可以增加式(5)中對(duì)數(shù)似然函數(shù)的值,并且EM算法將收斂。
在圖像噪聲水平比較高的情況下,難以從噪聲圖像中學(xué)習(xí)精確的先驗(yàn)信息。因此,本文用最大后驗(yàn)概率的方法找到與噪聲圖像塊組最匹配的外部塊組先驗(yàn),進(jìn)而利用稀疏表示算法恢復(fù)圖像。
(9)
(10)
式中:Dk是保存特征向量的字典,Sk是保存特征值的對(duì)角矩陣。Dk中的特征向量也叫做原子,這些原子表征了外部干凈圖像中非局部自相似塊的統(tǒng)計(jì)特性,Sk中的特征值表征了Dk中特征向量的重要程度。
(11)
(12)
式中:λ=(1/2)[λ1,λ2,…,λ3p2]T是正則化系數(shù)向量,sgn(·)是符號(hào)函數(shù),⊙表示對(duì)向量元素的乘法操作。
(13)
Step1 將若干相似的圖像塊聚成塊組,并對(duì)塊組進(jìn)行去直流分量處理。
Step2 用高斯混合模型學(xué)習(xí)外部塊組先驗(yàn),并用EM算法求解高斯混合模型的參數(shù)。
Step3 對(duì)高斯混合模型的協(xié)方差矩陣進(jìn)行奇異值分解得到字典。
Step4 用軟閾值的方法求解稀疏表示模型中的稀疏編碼系數(shù)。
Step5 利用字典和稀疏編碼系數(shù)對(duì)圖像塊進(jìn)行稀疏表示。
為了平衡算法的計(jì)算成本和去噪性能,本文將圖像塊的大小設(shè)置為p=6,搜索窗口的邊長(zhǎng)大小為W=31,塊組中塊的數(shù)量M=10。高斯混合模型中高斯分量的個(gè)數(shù)K=32,字典中原子的個(gè)數(shù)為108,稀疏編碼的正則化系數(shù)λ=0.000 5。求解公式(11)的迭代次數(shù)T=6,迭代次數(shù)過(guò)多會(huì)發(fā)生過(guò)擬合,迭代次數(shù)過(guò)少會(huì)發(fā)生欠擬合。算法用Matlab實(shí)現(xiàn),計(jì)算機(jī)CPU型號(hào)為Intel(R) Core(TM) i7-5930K,內(nèi)存條容量為32 GB。
本文用CC15、CC60和PolyU100圖像數(shù)據(jù)集對(duì)算法進(jìn)行測(cè)試。CC15圖像數(shù)據(jù)集包含了15張?jiān)肼晥D像,每張圖像的尺寸大小為512 pixel×512 pixel;CC60圖像數(shù)據(jù)集包含了60張?jiān)肼晥D像,每張圖像的尺寸大小為500 pixel×500 pixel;PolyU100圖像數(shù)據(jù)集包含了100張?jiān)肼晥D像,每張圖像的尺寸大小為512 pixel×512 pixel。為了計(jì)算峰值信噪比(Peak Signal-to-Noise Ratio,PSNR),數(shù)據(jù)集中包含了與每張?jiān)肼晥D像相匹配的ground truth圖像。
將本文算法的仿真結(jié)果與基于廣義Anscombe變換的BM3D(Generalized Anscombe Transformation Block Matching with 3D Filtering,GAT-BM3D)算法[13]、彩色塊匹配和三維濾波(Color Block Matching with 3D Filtering,CBM3D)算法[14]、加權(quán)核范數(shù)最小化(Weighted Nuclear Norm Minimization,WNNM)算法[15]、多層感知機(jī)(Multi-Layer Perceptron,MLP)算法[16]、降噪卷積神經(jīng)網(wǎng)絡(luò)(Denoising Convolutional Neural Networks,DnCNN)算法[17]、訓(xùn)練反應(yīng)擴(kuò)散(Trained Reaction Diffusion,TRD)算法[18]、盲去噪(Noise Clinic,NC)[19]算法和指導(dǎo)圖像去噪(Guided Image Denoising,GID)算法[20]的仿真結(jié)果對(duì)比。
CBM3D算法需要設(shè)定噪聲圖像的噪聲標(biāo)準(zhǔn)差參數(shù)。WNNM、MLP和TRD算法需要輸入每個(gè)顏色通道中噪聲的水平,為了得到R、G、B三個(gè)顏色通道的噪聲水平σr、σg、σb,這里假設(shè)噪聲服從高斯分布,用Chen等人[21]提出的算法估計(jì)每個(gè)顏色通道的噪聲水平。DnCNN算法被訓(xùn)練為處理噪聲水平為0~55的圖像。此外,本文重新訓(xùn)練了判別性去噪方法MLP和 TRD的模型,其噪聲水平從σ=5到σ=50,間隔為5。
稀疏表示模型的關(guān)鍵參數(shù)是正則化參數(shù)λ。圖1顯示了用本文算法對(duì)CC15數(shù)據(jù)集去噪的結(jié)果,可以看到當(dāng)λ=0.000 5時(shí)算法的性能達(dá)到最優(yōu);當(dāng)λ<0.000 5時(shí),算法對(duì)噪聲水平比較高的圖像過(guò)擬合;當(dāng)λ>0.000 5時(shí),算法對(duì)噪聲水平比較低的圖像欠擬合。
表1列出了幾種算法對(duì)CC15數(shù)據(jù)集進(jìn)行去噪的結(jié)果,每個(gè)圖像的最佳峰值信噪比結(jié)果用紅色粗體突出顯示。平均而言,本文提出的外部非局部自相似(External Nonlocal Self-similarity,ENSS)先驗(yàn)算法比GID算法提高0.24 dB的峰值信噪比。從算法復(fù)雜度的角度來(lái)看,ENSS算法處理一張圖像需要36.1 s,復(fù)雜度主要體現(xiàn)在對(duì)圖像進(jìn)行分塊處理操作和塊組聚類(lèi)操作。
表1 幾種算法對(duì)CC15數(shù)據(jù)集的去噪結(jié)果
圖2是用佳能5D Mark 3(ISO=3 200)拍攝的圖像。可以看到,GAT-BM3D、CBM3D、WNNM、MLP、DnCNN、NC和GID算法要么會(huì)保留噪聲,要么會(huì)產(chǎn)生偽影,而TRD會(huì)使圖像過(guò)于平滑。相比而言,ENSS算法在處理小尺度紋理上表現(xiàn)更優(yōu)。
圖2 幾種算法對(duì)CC15數(shù)據(jù)集樣例去噪結(jié)果
表2顯示了幾種算法對(duì)CC60圖像數(shù)據(jù)集進(jìn)行去噪的結(jié)果。相比于最優(yōu)的GID算法,本文提出的ENSS算法提升了0.18 dB的峰值信噪比。圖3是用Nikon D800(ISO=3 200)拍攝的圖像,與噪聲圖像對(duì)比可以發(fā)現(xiàn)本文提出的ENSS算法可以高效地對(duì)圖像進(jìn)行去噪,去噪結(jié)果與原圖像非常接近。
表2 幾種算法對(duì)CC60數(shù)據(jù)集的去噪結(jié)果
圖3 幾種算法對(duì)CC60數(shù)據(jù)集樣例去噪結(jié)果
表3顯示了幾種算法對(duì)PolyU100數(shù)據(jù)集去噪的結(jié)果,實(shí)驗(yàn)結(jié)果表明ENSS算法比其他算法獲得了更好的PSNR結(jié)果,比GID算法提升了0.82 dB。圖4是用Canon 80D(ISO=12 800)拍攝的圖像,相比其他算法,本文提出的算法在消除噪聲的同時(shí)可以更好地保留圖像的細(xì)節(jié)信息。
表3 幾種算法對(duì)PolyU100數(shù)據(jù)集的去噪結(jié)果
圖4 幾種算法對(duì)PolyU100數(shù)據(jù)集樣例去噪結(jié)果
圖像中的真實(shí)噪聲過(guò)于復(fù)雜,不服從簡(jiǎn)單的概率分布,難以根據(jù)噪聲的性質(zhì)設(shè)計(jì)高性能的圖像去噪算法。此外,噪聲會(huì)破壞圖像的先驗(yàn)信息,在噪聲水平比較高的情況下很難從噪聲圖像本身提取準(zhǔn)確的先驗(yàn)信息。因此,本文提出了一種從外部干凈圖像數(shù)據(jù)集學(xué)習(xí)非局部自相似先驗(yàn)的圖像去噪算法,用最大后驗(yàn)概率估計(jì)的方法從外部先驗(yàn)信息中找到最適合恢復(fù)圖像的信息,并用外部先驗(yàn)對(duì)噪聲圖像進(jìn)行稀疏表示,以此來(lái)去除噪聲。大量的對(duì)比仿真實(shí)驗(yàn)結(jié)果表明本文提出的ENSS算法具有良好的去噪性能。但由于外部先驗(yàn)是通過(guò)學(xué)習(xí)有限干凈圖像中的先驗(yàn)信息而得到,難以保證能夠?yàn)槊總€(gè)噪聲圖像塊找到最佳的外部先驗(yàn),如何將外部先驗(yàn)與噪聲圖像本身的先驗(yàn)相結(jié)合是下一步研究的關(guān)鍵。