高梓銘,張鵬飛,劉衛(wèi)華,劉佳琳
(1. 電子信息現(xiàn)場(chǎng)勘驗(yàn)應(yīng)用技術(shù)公安部重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710121;2.陜西省無(wú)線通信與信息處理技術(shù)國(guó)際合作研究中心,陜西 西安 710121;3.西安郵電大學(xué) 圖像與信息處理研究所,陜西 西安 710121;4.西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安 710121; 5.中國(guó)人民共和國(guó)陜西省西安市公安廳 科信處, 陜西 西安 710002)
圖像在采集、傳輸、存儲(chǔ)和顯示的各個(gè)環(huán)節(jié)受到外界因素干擾時(shí),不可避免會(huì)產(chǎn)生噪聲。為了滿足視覺(jué)對(duì)圖像清晰度的要求和后續(xù)圖像處理等問(wèn)題,需要對(duì)圖像去除噪聲。通常情況下,噪聲在統(tǒng)計(jì)學(xué)上被近似為加性高斯白噪聲,去噪要滿足[1]:(1)平滑區(qū)域盡可能光滑,噪聲被完全去除;(2)邊緣部分盡量保留,不能被模糊或加強(qiáng);(3)紋理細(xì)節(jié)不能丟失,不能被平滑。(4)不能引入人為特征,如階梯現(xiàn)象和振鈴現(xiàn)象。
目前,去噪方法主要為時(shí)域去噪和頻域去噪。時(shí)域去噪包括均值濾波、中值濾波、高斯濾波、基于偏微分方程(partial differential equation, PDE)[2-3]的濾波去噪;頻域?yàn)V波主要起源于以小波[4]為基礎(chǔ)的多分辨濾波。時(shí)域?yàn)V波中多數(shù)能獲得較高的峰值信噪比(peak signal to noise ratio, PSNR),但邊緣和紋理等細(xì)節(jié)容易被模糊;基于變分PDE的去噪算法[5]利用梯度算子進(jìn)行各向異性擴(kuò)散,并進(jìn)行迭代,從而達(dá)到去除噪聲和保留細(xì)節(jié)的目的,但易引入人造階梯特征;基于小波變換的去噪算法能夠較好的保留紋理細(xì)節(jié),但計(jì)算復(fù)雜度較高。
雙邊(bilateral filter, BF)濾波去噪算法[6]具有計(jì)算簡(jiǎn)單且容易實(shí)現(xiàn)的特點(diǎn),能夠有效去除噪聲。該算法在空間域用歐式距離度量當(dāng)前像素與其鄰域像素的亮度相似性,從而確定鄰域像素的權(quán)重系數(shù)。相對(duì)于高斯濾波和均值濾波,雙邊濾波可以在平坦區(qū)域和邊緣區(qū)域進(jìn)行不同程度的濾波,對(duì)邊緣有一定的保護(hù)作用[7]。但雙邊濾波算法是基于相鄰像素的,結(jié)構(gòu)保持的效果沒(méi)有明顯得到提高。非局部均值(non-local means, NLM)濾波去噪算法[8],基于鄰域圖像塊的相似保持結(jié)構(gòu)的相似性,被廣泛應(yīng)用在圖像去噪算法中。由于NLM算法利用局部圖像塊信息,比單個(gè)像素能夠更好地表達(dá)圖像的結(jié)構(gòu)信息,故其性能優(yōu)于雙邊濾波方法。但是NLM算法的計(jì)算復(fù)雜度較高,不適合工程應(yīng)用。目前,NLM的加速算法可以分為3類(lèi):(1)快速算子,例如,F(xiàn)FT[9],卷積[10];(2)數(shù)據(jù)驅(qū)動(dòng)的對(duì)像素鄰域空間的降維算法,例如,SVD[11]和PCA[12];(3)預(yù)處理算法,例如,在去噪前預(yù)先去除一些不相似的像素,其中包括基于均值和梯度的預(yù)分類(lèi)[13],基于均值和方差的預(yù)分類(lèi)[14-15],基于矩的預(yù)分類(lèi)[16]或者基于聚類(lèi)的預(yù)分類(lèi)[17];半局部均值算法[18](semi local means, SLM),將搜索窗的大小限定為M×M,而不是整幅圖像,在一定程度上降低了計(jì)算量;在SLM的基礎(chǔ)上采用二維直方圖和積分圖加速塊的搜索算法[19]。
針對(duì)NLM濾波去噪算法的計(jì)算復(fù)雜度高的問(wèn)題,本文提出聯(lián)合BF濾波和NLM濾波的圖像去噪算法(combining non-local means filter and bilateral filter,CNLMBF),利用NLM的性能優(yōu)勢(shì)結(jié)合BF濾波的計(jì)算優(yōu)勢(shì),以期保證NLM去噪性能的同時(shí)又能降低算法復(fù)雜度。
令V(i)和U(i)分別表示噪聲圖像和干凈圖像,i表示像素的索引值,N(i)是高斯白噪聲,則去噪模型為
V(i)=U(i)+N(i)。
(1)
NLM濾波算法的去噪像素i的輸出NL(V)(i)為整幅圖像V(i)各像素的加權(quán)平均,定義為
(2)
其中,V(j)表示以像素j為中心的鄰域,權(quán)重ω(i,j)可表示為
(3)
表征像素i與像素j的相似程度。h是衰減因子,與噪聲水平相關(guān),h越大,指數(shù)函數(shù)衰減得越慢,去噪的效果越平滑;相反,h越小,指數(shù)函數(shù)衰減得越快,去噪效果越尖銳。式(3)中,像素i的鄰域圖像塊定義為Ni,此鄰域塊的向量表示為V(Ni),兩像素i和j的相似性用兩向量V(Ni)和V(Nj)的相似性來(lái)度量,相似程度用歐幾里得(Euclidean)距離度量。
BF濾波算法中度量?jī)上袼氐南嗨菩杂闷浠叶染嚯x和空間距離來(lái)度量,可表示為
(4)
(5)
其中,D(i,j)為像素i,j的空間歐式距離,度量空間位置的相似性,|V(j)-V(i)|為像素i,j的灰度距離,度量像素灰度差異的相似性,這里歐式距離的計(jì)算是兩像素點(diǎn)的距離。
當(dāng)紋理信息或結(jié)構(gòu)信息在整幅圖像多個(gè)區(qū)域表現(xiàn)較明顯時(shí),NLM濾波算法可以取得很好的效果,但是該算法需要搜索整幅圖像中的相似性結(jié)構(gòu)信息,計(jì)算量大,很難做到實(shí)時(shí)處理。
設(shè)某圖像的大小為N×N,搜索窗的大小為M×M,相似窗的大小為S×S,在NLM算法中,對(duì)于每個(gè)待去噪像素z(i)(其空間坐標(biāo)為i(xi,yi),需要計(jì)算N2×M2個(gè)歐式距離。歐式距離的計(jì)算表達(dá)式[8]為
(6)
其中#i表示以像素i為中心的大小為S×S的正方形窗(patch)。在歐式距離的計(jì)算中,需要計(jì)算兩個(gè)向量,即大小為S×S的正方形窗排成一列構(gòu)成的向量的距離,包含(3S2-1)次加法,2S2次乘法。因此,NLM濾波算法的計(jì)算復(fù)雜度為O(N2M2S2)。
BF濾波算法根據(jù)像素之間空間距離和灰度距離尋找像素之間的相似性,相應(yīng)的參數(shù)設(shè)置如NLM算法,包含3次加法、2次乘法。根據(jù)式(4)和式(5),BF濾波算法的計(jì)算復(fù)雜度為O(N2M2)。
一般相似窗選擇7×7,則SLM的計(jì)算復(fù)雜度將是雙邊濾波的49倍,以1幅256×256的圖像為例,NLM濾波算法的計(jì)算復(fù)雜度是BF濾波算法的65536倍。
構(gòu)造1幅邊界過(guò)度劇烈的階躍黑白圖像,如圖1(a)所示,圖像大小為256×256,黑、白區(qū)域各占一半,黑色部分像素值為0,白色部分像素值為100,對(duì)該圖像加入標(biāo)準(zhǔn)差為10的高斯白噪聲,得到圖1(b)。
圖1 階躍黑白圖像及加噪圖像
選擇邊界中點(diǎn)處1的像素,坐標(biāo)位置(129,129),觀察其在搜索窗內(nèi)各像素的相似程度,即觀察其濾波的系數(shù)大小,系數(shù)大說(shuō)明與像素1相似程度大,否則,相似程度小。搜索窗以像素1為中心、大小為41×41。利用式(3)和式(5)分別畫(huà)出BF濾波和NLM濾波的系數(shù)三維圖,如圖2所示。
圖2 邊界點(diǎn)的濾波系數(shù)
從圖2(a)中可以看出,BF濾波的大系數(shù)分布在像素1的右側(cè),并且隨距離的增加而變小,即在像素1右側(cè),與其距離越近相似程度越大;相反,在像素1的左側(cè),其結(jié)構(gòu)相似程度與1相差很大,故濾波的系數(shù)較小。實(shí)際上,由于像素1在黑、白像素的分界處,并且屬于白像素處,與其結(jié)構(gòu)最相似的像素應(yīng)該分布在像素1上下兩側(cè)并且在黑白分界線上,其余不夠相似的像素都會(huì)給去噪帶來(lái)不好的結(jié)果。故BF濾波在此邊界處的性能不夠好。而圖2(b)中NLM濾波在邊界處的系數(shù)分布與實(shí)際分析完全相符,即,與像素1相似程度最大的像素全部在黑白分界線上,其余的像素相似程度很小。
平滑區(qū)域像素2的坐標(biāo)位置為(129,139),搜索窗以像素2為中心、大小為41×41,利用式(3)和式(5)分別畫(huà)出BF濾波和NLM濾波的系數(shù)三維圖,如圖3所示。
從圖3中可以看出,BF濾波對(duì)中心像素的權(quán)重較大,距離越遠(yuǎn)權(quán)重越小,而NLM濾波對(duì)其搜索區(qū)域的像素權(quán)重幾乎相同,對(duì)中心像素的關(guān)注度不夠,因此,BF濾波對(duì)于平滑像素的去噪效果會(huì)更好。
圖3 平滑區(qū)域的濾波系數(shù)
通過(guò)對(duì)BF濾波算法和NLM濾波算法的分析,提出聯(lián)合BF和NLM的濾波去噪算法。先對(duì)圖像做預(yù)處理,即檢測(cè)出圖像中存在的邊界,用SLM去噪,其余的平滑像素用BF濾波去噪,算法流程如圖4 所示。
圖4 算法流程
為驗(yàn)證算法的有效性,選用邊界明顯的棋盤(pán)圖像和標(biāo)準(zhǔn)測(cè)試圖像(Cameraman、House、Barbara、Lena及Boat),圖像均為灰度圖像,大小為256×256,噪聲圖像中加入高斯白噪聲的標(biāo)準(zhǔn)差記為σ,其中棋盤(pán)圖像用matlab函數(shù)checkerboard生成。
分別比較中值濾波(mean filter,MF)、高斯濾波(gaussian filter,GF)、半局部均值濾波(semi local mean filter,SLM)、BF濾波與CNLMBF的去噪效果與運(yùn)行時(shí)間。MF濾波掩模大小為3×3;GF濾波掩模大小為3×3;高斯函數(shù)的標(biāo)準(zhǔn)差為0.5;SLM濾波搜索窗大小為15×15,相似窗的大小為3×3,尺度因子h=0.7×σ;BF濾波窗大小為11×11,空間域的標(biāo)準(zhǔn)偏差為3,灰度域的標(biāo)準(zhǔn)偏差為(σ/255)/0.3。
測(cè)試圖像在5種去噪算法的峰值信噪比(PSNR)的對(duì)比結(jié)果如表1所示,將表1中各噪聲水平下的平均去噪效果以二維曲線表示,如圖5所示。從圖5可以看出,BF、SLM和CNLMBF去噪效果較穩(wěn)定,GF去噪效果最差,MF去噪效果與噪聲近似成線性關(guān)系。
記錄BF、SLM和CNLMBF算法的運(yùn)行時(shí)間,如表2所示,并計(jì)算各噪聲水平下所有測(cè)試圖像的平均運(yùn)行時(shí)間,如圖6所示。
從圖5和圖6中可以看出,CNLMBF與BF的計(jì)算時(shí)間相當(dāng),但去噪性能優(yōu)于BF。CNLMBF的去噪性能略遜于SLM,但是計(jì)算速度卻是SLM的近50倍。因此,CNLMBF在保證去噪性能的同時(shí),提高了計(jì)算速度,降低了計(jì)算復(fù)雜度。
表1 5種去噪算法的峰值信噪比對(duì)比
(續(xù)表1)
表2 運(yùn)行時(shí)間對(duì)比
(續(xù)表2)
圖5 5種去噪算法平均去噪效果對(duì)比
圖6 平均運(yùn)行時(shí)間比較
通過(guò)分析非局部均值濾波和雙邊濾波的優(yōu)缺點(diǎn)及在邊界和平滑區(qū)域去噪的性能,利用SLM濾波對(duì)圖像邊界去噪,BF濾波進(jìn)行平滑部分去噪。實(shí)驗(yàn)結(jié)果表明,該算法改善了非局部均值去噪算法計(jì)算復(fù)雜度高的問(wèn)題,提高了運(yùn)算速度。