孟凡云,韓 志,田玉銖,王 帥
(1.青島理工大學(xué)信息與控制工程學(xué)院,山東 青島 266525;2.大連理工大學(xué)數(shù)學(xué)科學(xué)學(xué)院,遼寧 大連 116024)
計算機(jī)視覺是人工智能領(lǐng)域的重要研究方向,自動駕駛、目標(biāo)識別等應(yīng)用對圖像的特征提取十分嚴(yán)格,圖像的色彩失真、邊緣模糊、噪聲等都會對圖像的信息提取產(chǎn)生不可預(yù)估的影響,嚴(yán)重的甚至可能影響到圖像的識別效果,造成圖像的誤識別,誤分類等問題.圖像在采集和傳輸?shù)倪^程中,由于圖像設(shè)備或外界因素的影響,獲取的圖像往往含有一定的噪聲污染,因此對圖像進(jìn)行去噪就成了計算機(jī)視覺處理領(lǐng)域不可或缺的重要步驟[1].
傳統(tǒng)的圖像降噪的方法大致可以分為兩類,一類是基于圖像的空間特征,對像素點與其周圍像素點的通過卷積、均值代替等操作實現(xiàn)代替完成的,如高斯濾波[2]、中值濾波[3-4]、均值濾波[5]和雙邊濾波[2]等,另一種是通過將圖像的特征進(jìn)行數(shù)學(xué)描述,通過數(shù)學(xué)變換公式處理圖像信息,對應(yīng)到某個變換域中,然后再進(jìn)行圖像重構(gòu),在這一過程中盡可能的消除圖像噪聲,常見的方法有小波變換(Wavelet transform)、拉普拉斯變換(Laplacian transform)和離散余弦變換(DCT)等[5-7].由于圖像結(jié)構(gòu)往往具有局部性的特點,通??梢酝ㄟ^周圍鄰域像素的特點,一定程度上還原被處理像素,因此將像素和他們的鄰域組合為局部塊一同處理往往會取得較好的效果.
近年來隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)研究的不斷深入,很多機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法被應(yīng)用到圖像去噪問題中,如LPG-PCA[8-9]、K-SVD字典學(xué)習(xí)[10-11]以及部分神經(jīng)網(wǎng)絡(luò)算法[12]等.LPG-PCA方法利用主成分分析方法處理數(shù)據(jù)集來實現(xiàn)信噪分離,進(jìn)而消除噪聲;K-SVD字典學(xué)習(xí)方法則是利用奇異值分解來對篩選的數(shù)據(jù)集構(gòu)造自適應(yīng)字典來實現(xiàn)去噪目的.這些學(xué)習(xí)算法在帶來新的技巧的同時也帶來了新的問題,這些學(xué)習(xí)算法往往需要通過對數(shù)據(jù)集進(jìn)行訓(xùn)練,學(xué)習(xí)獲得結(jié)果,如何獲取數(shù)據(jù)集就成為了重要問題.針對這一問題,大部分算法會采用類似像素塊匹配[13-14]等較為簡單的方法,但這種方法對于數(shù)據(jù)集的提取有一定的弊端,數(shù)據(jù)的選取只經(jīng)過了簡單的篩選,且窗口固定過于機(jī)械,往往會帶來邊緣處理效果較差、紋理不清晰等問題.
針對這些缺陷,本文設(shè)計了一種新型聚類算法對圖像的每個像素塊進(jìn)行預(yù)先分類,并根據(jù)匹配窗口內(nèi)同類塊數(shù)量的多少進(jìn)行匹配窗口縮減或增大,達(dá)到自適應(yīng)確定匹配窗口大小的功能.通過這種方式提高匹配的精確性,兼顧了圖像紋理變化以及圖像塊在匹配窗口中的數(shù)量變化.然后在對提取后的數(shù)據(jù)集進(jìn)行PCA處理.通過上述方式明顯的改善了邊緣處理效果差、紋理不清晰等問題,也提高了降噪處理后的圖像質(zhì)量.
本論文共分為四節(jié),第一節(jié)為引言,第二節(jié)為基于塊聚類匹配與PCA的圖像降噪算法介紹,對鄰域像素塊聚類算法、基于主成分分析的圖像去噪算法、自適應(yīng)的像素塊匹配算法進(jìn)行分析,第三節(jié)介紹了基于塊聚類匹配與PCA的圖像去噪算法的流程以及相關(guān)實驗分析,第四節(jié)為結(jié)論.
基于塊聚類匹配與PCA的圖像降噪方法主要采用了鄰域塊聚類匹配、主成分分析去噪以及自適應(yīng)匹配窗口處理這三個方法來實現(xiàn),本節(jié)將分別介紹這三部分內(nèi)容.
傳統(tǒng)的圖像聚類算法是一類非常重要的圖像分割工具[15],在圖像處理中有著廣泛應(yīng)用.傳統(tǒng)的圖像聚類算法,如OpenCV內(nèi)置的K-Means算法,以孤立的像素點的灰度值為聚類單元,得到聚類中心像素點的值,進(jìn)而產(chǎn)生整個圖像的聚類分布圖.這種圖像聚類方法簡單迅速,但僅能機(jī)械的反映圖像像素點的灰度信息,忽略了以該像素點為中心某區(qū)域的局部結(jié)構(gòu)信息,容易受圖像的噪聲影響,對聚類類別的正確分類造成偏差.圖1使用OpenCV內(nèi)置圖像聚類算法,得到了不同噪聲水平下cameraman圖像的聚類結(jié)果,聚類類別為5類.從圖1可以看出,對無噪聲圖像(σ=0,σ為噪聲方差)進(jìn)行聚類,得到的聚類類別較為清晰,當(dāng)噪聲水平較高(σ=10、σ=20)時,聚類類別變得支離破碎,甚至同一整體被分割為不同的類別(如人物整體、天空、海洋等).因此當(dāng)圖像噪聲比較大時,使用孤立像素點的聚類方法得到的聚類效果十分不理想.
圖1 OpenCV內(nèi)置圖像聚類算法效果圖
為克服使用孤立像素點的傳統(tǒng)聚類方法造成的聚類類別錯誤,本文以每個像素點為中心,考慮該像素點與其周圍像素點共同構(gòu)成的鄰域塊,使用像素點的鄰域塊代替孤立像素點對圖像進(jìn)行聚類,從而改善圖像的聚類效果,提升聚類算法的抗噪性和魯棒性.
這種新的塊聚類算法的具體執(zhí)行方式如下:
假設(shè)目標(biāo)圖像nI具有M×N個像素點,為防止處理之后邊緣特征消失,使用對稱填充方式填補圖像的邊緣.以圖像每個像素點為中心,R為半徑,令L=M×N,P=R2+1,將圖像矩陣拆解為L×P格式的行向量樣本矩陣(這里默認(rèn)樣本矩陣以行向量進(jìn)行處理),也就是,將圖像每個像素點對應(yīng)的鄰域塊構(gòu)成的集合描述為P維空間中的L個樣本點.在P維空間中對L個樣本點進(jìn)行K-Means聚類處理,假設(shè)圖像聚類類別數(shù)量為C.圖2給出了鸚鵡、Cameraman和Lena的原始圖像和聚類圖像.在這里,我們對3幅原始圖片添加方差σ=10的高斯噪聲,并根據(jù)使用聚類算法將其分割為五類作為展示,如圖2,不同顏色代表不同的類別.從圖2可以看出鸚鵡的眼部細(xì)節(jié)、Cameraman和Lena的邊緣聚類分割的效果很好,圖像整體輪廓清晰,圖像中許多復(fù)雜細(xì)節(jié)均得到很好的保留.在噪聲方差σ=10的情況下,對Cameraman圖像,從圖1和圖2對比可以看出,鄰域塊聚類算法比孤立像素點聚類算法具有更好的聚類效果.
圖2 不同含噪圖像的聚類效果圖(C=5,σ=10)
鄰域像素塊聚類算法與傳統(tǒng)的孤立像素點聚類算法相比,在同一噪聲水平上,它具有更好的抗噪效果,能夠很好地保留圖像的邊界邊緣特征.鄰域像素塊聚類算法避免了傳統(tǒng)塊匹配算法容易產(chǎn)生的邊緣模糊問題,以塊樣本為主的處理方式,不僅提取了聚類像素塊中心點的像素特征,而且也提取了該像素點與周圍鄰域像素點的共同特征.在聚類時,像素點的局部特征信息和邊緣信息等結(jié)構(gòu)特征均能夠被考慮進(jìn)去,從而進(jìn)行單獨劃分成類.因此鄰域像素塊聚類算法在圖像的整體統(tǒng)一性和細(xì)節(jié)整齊度上均具有較好的聚類效果.
主成分分析是一種常用的數(shù)據(jù)降維算法,它通過線性變換將原數(shù)據(jù)投影到重新構(gòu)建的坐標(biāo)軸上,獲取最大的數(shù)據(jù)方差,提取數(shù)據(jù)的主成分,從而實現(xiàn)數(shù)據(jù)降維的特征提取.由信號方差理論可知,在一幅含噪聲圖片上,信號主要集中在某幾個主成分上且方差較大,而噪聲則均勻的分布在每一個成分上且方差較小,根據(jù)這一特性,主成分分析方法可以很好的將信號與噪聲分離開來,從而達(dá)到圖像去噪的目的[16-19].
主成分分析算法的主要思想是:將線性空間中的樣本在某一方向進(jìn)行投影,得到該樣本在投影方向的分布.這種分布可以從最大可分性入手分析,使得到投影之后樣本方差最大,這種方式可以將數(shù)據(jù)從原空間尋找其樣本方差最大的投影方向?qū)⑵浞蛛x,通過對信號的協(xié)方差矩陣進(jìn)行特征值分解從而求得最優(yōu)的投影方向.
然而在實際中,大多數(shù)的圖像并非是純粹的信號集,而是含有噪聲的數(shù)據(jù)集.假設(shè)含噪聲圖像數(shù)據(jù)集其中X為無噪聲的數(shù)據(jù)集,N為噪聲,且X與N不相關(guān).得到含噪數(shù)據(jù)集的解.
也就是
而不含噪聲情況下的數(shù)據(jù)集的特征值分解結(jié)果為:
由(2)和(4)可知,兩者的特征向量是相同的.因此可以直接使用含噪數(shù)據(jù)集的協(xié)方差矩陣特征向量來對數(shù)據(jù)集進(jìn)行PCA處理映射.
基于主成分分析的去噪算法流程如下:
STEP1:(中心化)對于樣本集Ω′=[X1,X2,…,Xl]T中的每一個樣本減去該樣本集的均值,即得到中心化的樣本集
STEP5:(去除噪聲)借助線性最小均方誤差估計方法對Φ進(jìn)行噪聲分離,即對Φ=[Y1,Y2,…,Yl]的每個樣本 Yk計算
其中
借助主成分分析方法,可以有效地將圖像中的噪聲去除.在主成分分析方法進(jìn)行圖像去噪時,大多數(shù)的圖像去噪算法構(gòu)建圖像數(shù)據(jù)集的過程中,往往采用圖像塊匹配方法,這類方法以去噪圖像的樣本塊為中心,選取適當(dāng)大小的像素塊,在該像素塊內(nèi)設(shè)置滑動窗口,滑動獲取像素塊內(nèi)所有的子塊與中心塊組成樣本數(shù)據(jù)集.這種方法簡單方便,對于圖像紋理較為明顯的區(qū)域,這種方法往往造成圖像邊緣紋理失真、模糊,信息損失嚴(yán)重等問題.
針對上述圖像塊匹配方法的缺陷,本文根據(jù)圖像的聚類結(jié)果,借助鄰域像素塊聚類算法得到的聚類類別進(jìn)行像素塊匹配.選取以中心塊XC為主,大小為R×R的像素塊,在其中搜索與中心塊屬于同一聚類類別的子塊,組合成樣本數(shù)據(jù)集.鄰域像素塊聚類算法將特征相同的像素塊聚為一類,因此這種方式處理得到的樣本在一定程度上具有相同的特征.圖3給出了傳統(tǒng)塊匹配算法與自適應(yīng)的聚類塊匹配算法匹配模式示意圖的對比,在聚類像素塊匹配方法中,借助聚類匹配可以將同一特征的像素塊送入同一數(shù)據(jù)集中,由此提高了塊匹配的準(zhǔn)確度.
圖3 傳統(tǒng)塊匹配與聚類像素塊匹配示意圖
聚類像素塊匹配算法可以提高樣本數(shù)據(jù)集的匹配精確度,在匹配過程中,理論上,選取匹配窗口(即像素塊)在較小的范圍內(nèi)比較合適,但在較小的范圍內(nèi)圖像的紋理變化往往不是很大,此時如果選取一個較小的窗口,可能會導(dǎo)致某些聚類類別的像素塊出現(xiàn)窗口內(nèi)與其類型相同的塊數(shù)量稀少,樣本數(shù)量無法保證,進(jìn)而影響圖像的去噪效果.當(dāng)匹配窗口在較大的范圍時,該范圍可以容納更多數(shù)量較少的類,但這樣又會反過來影響選取樣本的質(zhì)量.針對上述矛盾,為了在合適的范圍選取合適大小的匹配窗口,本文進(jìn)一步改進(jìn)像素塊匹配算法,通過每次采樣匹配窗口內(nèi)的樣本數(shù)量,實現(xiàn)自適應(yīng)的確定匹配窗口的尺寸.這種自適應(yīng)選取方式既保證了大部分塊的選取是在一個較小的范圍,又能保證對某些局部相同類別較少的聚類類別在一個較大的匹配窗口選取.
在自適應(yīng)像素塊匹配算法中,首先確定窗口半徑上限RH和窗口半徑下限RL,計算該匹配窗口內(nèi)與中心塊屬于同一聚類類別的塊數(shù)量m,假設(shè)該窗口共包含M個塊,使用線性尺寸確定函數(shù)來確定窗口的半徑R:
當(dāng)m趨近于M時,即窗口內(nèi)該種類數(shù)量較多時,窗口收縮,趨向于半徑下限RL,反之當(dāng)m趨近于0時,即窗口內(nèi)該種類數(shù)量較少,則窗口傾向于維持較大的半徑RH.圖4給出了自適應(yīng)窗口在不同位置下的半徑選擇示意圖,在相同種類較少時,窗口趨向于擴(kuò)張,反之則窗口傾向于收縮.
圖4 自適應(yīng)窗口尺寸示意圖
針對自適應(yīng)聚類像素塊匹配獲得的數(shù)據(jù)集Ω,進(jìn)一步對數(shù)據(jù)集Ω進(jìn)行均方誤差篩選,選出滿足ek<T+σ2的目標(biāo)樣本塊集,其中ek=(Xi-XC)2,σ為當(dāng)前圖像噪聲水平的方差,T為選定閾值,由此得到了待處理的PCA樣本集Ωk′.
基于上述鄰域像素塊聚類算法、主成分分析方法和自適應(yīng)像素塊匹配算法的分析,本文提出了基于自適應(yīng)塊聚類匹配的PCA圖像降噪算法.圖5給出了基于自適應(yīng)塊聚類匹配的PCA圖像降噪算法的整個流程.
圖5 算法流程圖
如圖5所示,基于自適應(yīng)塊聚類匹配的PCA圖像降噪算法的詳細(xì)步驟為:
STEP1:(圖像聚類)對含噪圖像nI進(jìn)行鄰域像素塊聚類算法處理,得到該圖像的聚類圖像eI.
STEP2:(自適應(yīng)像素塊匹配)結(jié)合聚類圖像eI,對含噪圖像nI進(jìn)行自適應(yīng)的像素塊匹配,通過大小為R的自適應(yīng)匹配窗口遍歷圖像,獲得匹配數(shù)據(jù)集Ω′.
STEP3:(PCA實現(xiàn)信噪分離)對于匹配結(jié)果數(shù)據(jù)集Ω′進(jìn)行PCA域變換處理,將數(shù)據(jù)集通過中心化、求協(xié)方差ΩC、特征值分解等過程,獲得數(shù)據(jù)的協(xié)方差矩陣特征向量V,進(jìn)而獲取信噪分離后的數(shù)據(jù)集Φ.
STEP4:(噪聲去除)數(shù)據(jù)集Φ=ΦX+ΦN,使用線性最小均方誤差估計去除噪聲,來獲得信號集ΦX.
STEP5:(圖像重構(gòu))對于信號集ΦX,將其重映射回到原像空間,得到去噪后的像素塊,進(jìn)而得到去噪后的圖像dI.
我們將從3個方面對實驗結(jié)果進(jìn)行分析比較:1)不同圖像在不同噪聲情況下的峰值信噪比(PSNR)和結(jié)構(gòu)相似度(SSIM);2)自適應(yīng)的像素塊匹配算法與非自適應(yīng)的像素塊匹配算法對比;3)本文圖像降噪算法和其他典型的圖像降噪算法對比.
本文采用Python3.7對基于自適應(yīng)塊聚類匹配的PCA圖像降噪算法進(jìn)行編程實現(xiàn),對8張尺寸為256*256的灰度圖像進(jìn)行測試分析.
本次實驗算法涉及的實驗參數(shù)選擇如表1.
表1 參數(shù)選定
(1)峰值信噪比與結(jié)構(gòu)相似度的實驗結(jié)果
峰值信噪比和結(jié)構(gòu)相似度是常用的用來衡量兩幅圖像相似程度的指標(biāo),前者注重于每個像素點位置的對應(yīng)相似性,后者則看重結(jié)構(gòu)、亮度、對比度等層次的相似性,常常用來作為判別信號相似度的手段.
對8張圖像進(jìn)行自適應(yīng)塊聚類PCA圖像去噪處理,得到它們在噪聲方差分別為5、10、20、40的情況下的降噪結(jié)果,表2是去噪圖像的PSNR,表3是去噪圖像的SSIM.
表2 實驗結(jié)果-PSNR
表3 實驗結(jié)果-SSIM
從表2和表3可以看出,本文的算法在圖像的PSNR和SSIM上具有明顯的提升.圖6和圖7給出了不同噪聲之下的降噪圖像,從圖像中可以看出,本文算法明顯的提升了圖像的質(zhì)量,無論是高頻的細(xì)節(jié)部分還是低頻的背景區(qū)域,去噪效果都較為出色.
圖6 去噪效果對比圖1
圖7 去噪效果對比圖2
(2)自適應(yīng)的像素塊匹配算法與非自適應(yīng)的像素塊匹配算法對比
本節(jié)對非自適應(yīng)固定匹配窗口的塊聚類PCA去噪算法和自適應(yīng)的匹配窗口的塊聚類PCA去噪算法進(jìn)行對比,采用PSNR作為依據(jù),來對比不同圖片和不同的噪聲水平下,兩種算法得到的實驗結(jié)果圖片PSNR值的區(qū)別如圖8所示(深色虛線為自適應(yīng)結(jié)果,淺色實線為非自適應(yīng)結(jié)果,紅綠藍(lán)三色對應(yīng)不同的噪聲方差值).由圖8可以看出幾乎所有的圖像結(jié)果都是深色虛線在淺色實線上方,相比非自適應(yīng)算法而言,自適應(yīng)算法得到的PSNR值大部分都要優(yōu)于常規(guī)固定窗口大小的算法.
圖8 自適應(yīng)非自適應(yīng)結(jié)果對比圖
圖9給出了噪聲方差為20情況下的局部對比效果圖.從圖9中可以看出,自適應(yīng)去噪算法的去噪效果相對非自適應(yīng)要更加良好,且對于較為光滑的低頻區(qū)域(如Lena的面部、Cameraman和House的天空部分),自適應(yīng)算法處理后的圖片更加光滑.而對于紋理較為復(fù)雜的高頻區(qū)域(如Lena的頭飾羽毛、Cameraman的相機(jī)部分等),自適應(yīng)算法的處理效果和非自適應(yīng)幾乎無異.
圖9 自適應(yīng)與非自適應(yīng)去噪效果局部對比圖
(3)與其他圖像降噪算法對比
將本文方法與局部像素塊匹配PCA算法LPG-PCA[8]、字典訓(xùn)練去噪算法K-SVD[10]、非局部均值去噪算法NL-Mean[20]等傳統(tǒng)算法以及兩種小波去噪算法CNLM[21-22]、BLS-GSM[23]進(jìn)行對比.將不同圖像在不同噪聲下的PSNR進(jìn)行對比.表4給出了各個算法的PSNR對比結(jié)果.從表4可以看出,本文提出的算法在Lena、house和peppers圖像上均具有良好的效果.在噪聲方差較小時,本文算法處理效果均優(yōu)于其他算法,甚至高于其他算法,當(dāng)噪聲方差較大時,本文算法的降噪結(jié)果相對較弱.本文的圖像降噪算法前期會對圖像進(jìn)行聚類,根據(jù)聚類結(jié)果對圖像進(jìn)行降噪.當(dāng)圖像的噪聲較小時,圖像的聚類效果更為精確,因而圖像降噪效果更好.當(dāng)圖像的噪聲較大時,對圖像進(jìn)行聚類會產(chǎn)生一定的誤差,進(jìn)而影響圖像的降噪效果.
表4 各算法PSNR對比結(jié)果
在圖像降噪中,傳統(tǒng)的局部塊匹配算法具有搜索盲目且冗余的問題,本文采用鄰域像素塊聚類算法來代替?zhèn)鹘y(tǒng)的像素聚類或局部塊匹配算法來實現(xiàn)樣本集的獲取問題.通過自適應(yīng)的方法對匹配窗口的大小進(jìn)行調(diào)整,并結(jié)合主成分分析方法實現(xiàn)了圖像的降噪處理.這種基于鄰域像素塊聚類算法對圖像塊進(jìn)行篩選和數(shù)據(jù)集的處理,可以有效改善圖像邊緣處理效果差、紋理不清晰等問題.實驗結(jié)果也表明,本方法能夠顯著的提高圖像的PSNR和SSIM值.未來我們將考慮采用其他分離篩選算法對數(shù)據(jù)集進(jìn)行篩選,針對圖像的非線性特征,我們將使用核主成分分析方法對圖像進(jìn)行降噪.