張?jiān)聢A,曾慶化,劉建業(yè),李一能,劉 昇
(1.南京航空航天大學(xué)導(dǎo)航研究中心,南京211106;2.中航工業(yè)洛陽電光設(shè)備研究所,洛陽471009)
隨著計(jì)算機(jī)科學(xué)的發(fā)展,圖像處理技術(shù)近年來取得了豐碩的研究成果,在工業(yè)、軍事、醫(yī)學(xué)等領(lǐng)域得到了廣泛應(yīng)用[1]。邊緣作為圖像最基本的特征,能在保留物體形狀信息的前提下,大大減少圖像所要處理的信息。因此,邊緣檢測(cè)是圖像處理領(lǐng)域最重要的關(guān)鍵技術(shù)之一,對(duì)于特征提取、描述及目標(biāo)識(shí)別等后續(xù)研究都有著極大的影響。然而,由于圖像邊緣一般位于像素灰度值變化劇烈的位置,其與噪聲信號(hào)一樣具有高頻特性,在檢測(cè)中很容易產(chǎn)生偽邊緣或漏檢,不利于后續(xù)的提取和識(shí)別。所以,對(duì)圖像邊緣檢測(cè)的研究具有非常重要的意義。
在眾多圖像邊緣檢測(cè)方法中,Canny算法由于其優(yōu)良的邊緣檢測(cè)特性——高準(zhǔn)確度和高信噪比,得到了廣泛應(yīng)用。但是,經(jīng)典的Canny算法存在容易受噪聲干擾且雙閾值選取適應(yīng)性不強(qiáng)的缺點(diǎn),因而國內(nèi)外的學(xué)者提出了很多改進(jìn)方法。文獻(xiàn)[2]主要通過調(diào)整鄰域來降低噪聲,但同時(shí)造成了弱邊緣的漏檢。文獻(xiàn)[3]~文獻(xiàn)[6]通過結(jié)合更多的圖像信息來優(yōu)化(如文獻(xiàn)[3]基于多幅圖像信息,文獻(xiàn)[4]基于彩色圖像色調(diào)信息,文獻(xiàn)[5]基于局部圖像塊結(jié)構(gòu)信息,文獻(xiàn)[6]基于邊緣長(zhǎng)度和方向信息等),雖然這些改進(jìn)方法增強(qiáng)了邊緣的可靠性,但同時(shí)增加了計(jì)算負(fù)擔(dān)。文獻(xiàn)[7]針對(duì)特定圖像——紅外圖像,研究了減少噪聲的方案。文獻(xiàn)[8]以非線性濾波器計(jì)算水平、垂直方向的梯度,區(qū)別噪聲和邊緣。文獻(xiàn)[9]結(jié)合模糊神經(jīng)網(wǎng)絡(luò)和自適應(yīng)中值濾波,實(shí)現(xiàn)了椒鹽噪聲干擾下的邊緣檢測(cè)。文獻(xiàn)[10]結(jié)合優(yōu)化模型,實(shí)現(xiàn)了一種生活場(chǎng)景中的邊緣檢測(cè)。文獻(xiàn)[11]利用遺傳算法,改進(jìn)了閾值選取方法。文獻(xiàn)[12]則基于遺傳編碼,實(shí)現(xiàn)了弱邊緣的提取。雖然結(jié)合機(jī)器學(xué)習(xí)等算法,通過大量樣本的訓(xùn)練,使檢測(cè)器可以實(shí)現(xiàn)一個(gè)較好的效果,但該類方法對(duì)樣本數(shù)量要求較高。
本文在分析經(jīng)典Canny算法原理的基礎(chǔ)上,針對(duì)其無法抵抗椒鹽噪聲干擾及雙閾值選取問題進(jìn)行了改進(jìn),提出了一種改進(jìn)圖像邊緣檢測(cè)方法。實(shí)驗(yàn)結(jié)果表明,該方法與經(jīng)典Canny及其改進(jìn)算法相比,有更好的抗噪性能和更好的檢測(cè)效果。
Canny算法是一種基于圖像梯度的邊緣檢測(cè)算法,其按照以下3個(gè)基本準(zhǔn)則進(jìn)行邊緣檢測(cè):較高的信噪比、較高的定位精度和單邊響應(yīng)準(zhǔn)則[13]。檢測(cè)步驟如下:
1)使用Gauss濾波器對(duì)圖像進(jìn)行平滑處理,設(shè)原圖像為I(x,y),則平滑后的圖像H(x,y)可以表示為
2)基于平滑后的圖像計(jì)算梯度幅值和方向,計(jì)算公式如下
3)根據(jù)梯度方向進(jìn)行非極大值抑制。檢測(cè)每一個(gè)像素點(diǎn)的梯度是否是周圍具有相同梯度方向的像素點(diǎn)中最大的,是則保留,否則抑制。
4)雙閾值判定邊緣像素。該步驟需要設(shè)置高低兩個(gè)閾值:TH和TL。 當(dāng)邊緣像素點(diǎn)的灰度梯度高于TH時(shí),認(rèn)為其是強(qiáng)邊緣;低于TL時(shí),認(rèn)為其非邊緣;介于兩者之間時(shí),若該點(diǎn)與強(qiáng)邊緣相連,則認(rèn)為其是邊緣點(diǎn)。
與傳統(tǒng)微分算子相比,Canny算子在被應(yīng)用于檢測(cè)圖像邊緣時(shí)具有運(yùn)算速度快和檢測(cè)精度高的優(yōu)點(diǎn),因而在實(shí)踐中被廣泛采用。然而該算法存在兩個(gè)主要問題:在第一步中運(yùn)用Gauss濾波器對(duì)圖像進(jìn)行平滑處理,雖然可以在一定程度上減少噪聲影響,但很難濾除椒鹽噪聲的干擾;第三步中Canny算法的雙閾值都是固定的,高低閾值依賴人工經(jīng)驗(yàn)進(jìn)行設(shè)置,目前還沒有較好的判別高低閾值的理論方法。
針對(duì)上述分析,本文以Canny算法框架為基礎(chǔ),主要在以下兩方面進(jìn)行了改進(jìn):
1)采用改進(jìn)AMF替代Gauss濾波對(duì)圖像進(jìn)行降噪處理;
2)結(jié)合Otsu和MEM提出改進(jìn)雙閾值選取方法,完成雙閾值選取。
椒鹽噪聲在圖像上表現(xiàn)為同時(shí)產(chǎn)生高灰度噪聲和低灰度噪聲,具有比較高的隨機(jī)性,一般采用非線性濾波方法來處理。在噪聲密度較小的情況下,中值濾波即可去除椒鹽噪聲。為處理噪聲密度較大的圖像,文獻(xiàn)[14]提出了AMF,即在中值濾波基礎(chǔ)上,根據(jù)噪聲密度調(diào)節(jié)濾波窗口的大小,其處理過程如下:
1)首先采用3×3的初始窗口Sxy進(jìn)行計(jì)算,計(jì)算窗口Sxy中的灰度中值Zmed、最大值Zmax和最小值Zmin。
2)如果窗口Sxy中的灰度中值Zmed不在Zmax和Zmin之間,就自動(dòng)增加窗口Sxy的大小,重復(fù)以上的過程直到設(shè)置的窗口最大值Smax或灰度中值Zmed在Zmax和Zmin之間。
3)依次用窗口Sxy中的每一點(diǎn)灰度值Zxy與灰度最大值Zmax和灰度最小值Zmin進(jìn)行判斷,如果介于其間,輸出原值,反之輸出Zmed。
分析步驟3可知,AMF一方面容易將極值點(diǎn)誤判為噪聲點(diǎn)并進(jìn)行濾波處理;另一方面,在判斷為噪聲點(diǎn)后,以窗口內(nèi)初始灰度中值替換輸出也容易造成過度平滑,在濾波的同時(shí)損失圖像細(xì)節(jié),不利于后續(xù)的邊緣提取。因而,本文在其基礎(chǔ)上針對(duì)極值點(diǎn)進(jìn)行判斷,并將中值替換修改為窗口內(nèi)除去極值點(diǎn)的均值替換,如式(4)、式(5)所示。
式(4)中,Δ=Zxy-Zmed,τ=k(Zmax-Zmin),k=0.5。 其含義是當(dāng)像素灰度值Zxy等于極值時(shí),只有同時(shí)滿足其與灰度中值的差大于閾值τ時(shí)才認(rèn)為其為噪聲點(diǎn),從而降低極值點(diǎn)被誤判為噪聲點(diǎn)的概率。τ中的k值可根據(jù)實(shí)際情況進(jìn)行調(diào)整,一般設(shè)為0.5即可。式(5)中,S′xy為窗口內(nèi)除去噪聲點(diǎn)后的像素灰度值之和。其含義是若某點(diǎn)像素被判斷為噪聲點(diǎn),則該點(diǎn)輸出窗口內(nèi)除去噪聲點(diǎn)后的像素灰度平均值。
改進(jìn)AMF通過極值點(diǎn)判斷保留了大部分的非噪聲極值點(diǎn),通過噪聲點(diǎn)輸出值剔除噪聲影響,避免了過度平滑,因而其可以在濾除椒鹽噪聲的基礎(chǔ)上盡可能地保留圖像中的細(xì)節(jié)信息。
在雙閾值選取這一步驟上,傳統(tǒng)方法憑借人工經(jīng)驗(yàn)選取高閾值,然后取其一半作為低閾值。此方法過度依賴經(jīng)驗(yàn),適應(yīng)性不強(qiáng)??紤]到不同閾值選取算法的特點(diǎn)(如:Otsu側(cè)重像素的分布密集程度,MEM側(cè)重像素的分布均勻程度),本文綜合兩者特點(diǎn),提出Otsu和MEM雙閾值選取算法,從而能夠較好地描述目標(biāo)與背景的差異。
Otsu和MEM均為單閾值動(dòng)態(tài)選取方法。Otsu以直方圖為基礎(chǔ),將圖像用閾值T分成背景和目標(biāo)兩類,并使這兩類類間方差最大,即目標(biāo)與背景分別像素密度最大[15]。MEM則基于信息熵的定義,求解閾值T使目標(biāo)和背景兩類的信息熵之和最大,即目標(biāo)與背景分別均勻程度最佳[16]。
針對(duì)自適應(yīng)的雙閾值選取方法,前人進(jìn)行了許多研究,其中雙重Otsu算法的應(yīng)用較廣泛。該方法首先以O(shè)tsu在圖像區(qū)域求解最佳閾值,并將其作為高閾值TH,然后在0~TH之間再利用Otsu求解最佳閾值作為低閾值TL。 作者在針對(duì)背景較復(fù)雜的圖像目標(biāo)輪廓提取的實(shí)際研究中發(fā)現(xiàn),用Otsu算法獲得的高閾值容易引入更多干擾邊緣,因此需要改進(jìn)高閾值的獲取手段。結(jié)合MEM算法側(cè)重均勻性的特點(diǎn),提出將MEM算法在圖像區(qū)域內(nèi)獲取的最佳閾值作為高閾值TH,然后在灰度梯度幅值0~TH之間的圖像范圍內(nèi)求取Otsu最佳閾值作為低閾值TL。 具體求解過程如下。
一幅大小為M×N、灰度級(jí)為L(zhǎng)的圖像,設(shè)圖像中灰度級(jí)為i的像素個(gè)數(shù)為Ni,則灰度級(jí)i的概率為
根據(jù)MEM的思想,高閾值TH的求解公式為
在灰度梯度幅值0~TH之間的圖像范圍內(nèi),運(yùn)用式(10)求解低閾值TL
為了評(píng)估本文所提出的改進(jìn)算法的檢測(cè)效果,本文在vs2010配合OpenCV2.4.9的實(shí)驗(yàn)環(huán)境下完成了測(cè)試。
為了客觀評(píng)價(jià)濾波算法的降噪效果,本文以均方誤差(Mean Square Error,MSE)和峰值信噪比(Peak Signal?to?Noise Ratio,PSNR)2 項(xiàng)指標(biāo)評(píng)價(jià)濾波算法的降噪性能。MSE和PSNR的計(jì)算公式如下
式中,m×n表示圖像大小,I′(x,y)表示原無噪聲圖像,IQ(x,y)表示降噪后的圖像,R表示圖像的灰度量級(jí)。
圖1為Gauss濾波、中值濾波、AMF和改進(jìn)AMF 4種濾波算法對(duì)不同噪聲密度圖像處理后的MSE和PSNR統(tǒng)計(jì)曲線,分別對(duì)降噪情況和失真情況進(jìn)行了直觀的展示。MSE越小表明降噪效果越好,PSNR越高說明圖像失真越小。從圖1可知,Gauss濾波難以濾除椒鹽噪聲,中值濾波和AMF可以濾除椒鹽噪聲,但同時(shí)損失了較多圖像細(xì)節(jié)。本文改進(jìn)的AMF,不僅在高密度噪聲情況下可以取得略優(yōu)于AMF的濾波效果,同時(shí)在低密度噪聲情況下的降噪效果和圖像抗失真情況均顯著優(yōu)于AMF。因而在將其應(yīng)用于圖像邊緣檢測(cè)算法時(shí),既可以提高算法抗椒鹽噪聲干擾的能力,又能盡可能地保留圖像細(xì)節(jié)。
圖1 各濾波算法在不同噪聲密度情況下的降噪效果和失真情況對(duì)比Fig.1 Comparison of noise reduction and distortion of each filtering algorithm under different noise densities
為了驗(yàn)證改進(jìn)雙閾值選取方法的有效性,本文將其與經(jīng)典Canny算法及雙重Otsu改進(jìn)方法進(jìn)行了對(duì)比,如圖2所示。
圖2 雙閾值選取方法對(duì)比Fig.2 Comparison of dual threshold selection methods
從圖2可知,此類圖像背景復(fù)雜且占據(jù)較大比例。經(jīng)典Canny算法的雙閾值選取為經(jīng)驗(yàn)選擇,使背景中的大量邊緣被視為強(qiáng)邊緣,從而干擾了目標(biāo)邊緣的提取。雙重Otsu選取的高閾值偏低,使得邊緣檢測(cè)結(jié)果較Canny算法而言更為雜亂。本文提出的雙閾值選取方法既保留了目標(biāo)邊緣細(xì)節(jié),又減少了背景邊緣的干擾,因而適用性更好。
為了綜合評(píng)價(jià)本文提出算法的抗噪性能和邊緣檢測(cè)效果,本文將其與經(jīng)典Canny算法及結(jié)合中值濾波、自適應(yīng)中值濾波進(jìn)行改進(jìn)的改進(jìn)Canny算法進(jìn)行了對(duì)比。本文以準(zhǔn)確度(accuracy)指標(biāo)進(jìn)行評(píng)價(jià)[6],如式(13)所示。
式中,TP為正確檢測(cè)輪廓像素?cái)?shù),TN為正確檢測(cè)非輪廓像素?cái)?shù),F(xiàn)P為錯(cuò)誤檢測(cè)輪廓像素?cái)?shù),F(xiàn)N為錯(cuò)誤檢測(cè)非輪廓像素?cái)?shù)。
圖3所示為2組實(shí)驗(yàn)的測(cè)試結(jié)果。每組圖像從左到右依次為實(shí)驗(yàn)原圖(含10%椒鹽噪聲)、作為基準(zhǔn)的人工標(biāo)注邊緣(Label)、經(jīng)典Canny算法進(jìn)行邊緣檢測(cè)的結(jié)果、結(jié)合中值濾波改進(jìn)的Canny算法(MC)進(jìn)行邊緣檢測(cè)的結(jié)果、結(jié)合自適應(yīng)中值濾波改進(jìn)的Canny算法(AMFC)進(jìn)行邊緣檢測(cè)的結(jié)果,以及本文算法進(jìn)行邊緣檢測(cè)的結(jié)果。可以看出,經(jīng)典Canny算法在含椒鹽噪聲的情況下基本失效,結(jié)合中值濾波和自適應(yīng)中值濾波的改進(jìn)算法雖然在一定程度上克服了椒鹽噪聲干擾,但邊緣檢測(cè)準(zhǔn)確度均低于本文算法,如表1所示。MC由于中值濾波降噪效果較差,在檢測(cè)結(jié)果中保留了部分噪聲形成的邊緣。AMFC可以較好地抗椒鹽噪聲干擾,但由于雙閾值選取不合適,因而保留了很多背景雜亂的邊緣。本文以改進(jìn)AMF替代Gauss濾波對(duì)圖像降噪,從而增強(qiáng)了邊緣檢測(cè)算法的抗噪能力,以改進(jìn)雙閾值選取方法設(shè)置高低閾值,使邊緣檢測(cè)結(jié)果去除了背景干擾,保留了大部分主體目標(biāo)輪廓,準(zhǔn)確度達(dá)到96%以上。相比其他算法而言,本文算法最優(yōu)。
圖3 本文算法與經(jīng)典Canny算法及其改進(jìn)算法對(duì)比Fig.3 Comparison of the algorithm proposed with Canny and its improved algorithm
表1 本文算法與Canny算法及其改進(jìn)算法邊緣檢測(cè)的準(zhǔn)確度統(tǒng)計(jì)Table 1 Accuracy value of proposed algorithm and Canny and its improved algorithm for edge detection
本文在分析經(jīng)典Canny算法原理及其不足之處的基礎(chǔ)上,針對(duì)其無法抵抗椒鹽噪聲干擾和雙閾值選取適應(yīng)性差的問題進(jìn)行了改進(jìn)。首先利用改進(jìn)AMF替代Gauss濾波,使改進(jìn)算法在盡量保留圖像細(xì)節(jié)的同時(shí)可以較好地抗椒鹽噪聲干擾。然后在研究Otsu和MEM的基礎(chǔ)上,提出了本文改進(jìn)雙閾值選取方法,該方法可以較好地適應(yīng)背景復(fù)雜的圖像,以人工標(biāo)注邊緣為基準(zhǔn),邊緣檢測(cè)準(zhǔn)確度可以達(dá)到96%以上。綜合實(shí)驗(yàn)結(jié)果表明,本文算法與經(jīng)典Canny算法及結(jié)合中值濾波、AMF的改進(jìn)Canny算法相比,可以較好地抗椒鹽噪聲干擾并且在背景復(fù)雜的圖像中達(dá)到更好的檢測(cè)效果。
但是由于光照、拍攝角度等問題,圖像往往存在邊緣斷裂現(xiàn)象,即一個(gè)獨(dú)立物體的邊緣并不閉合,邊緣可能由多段細(xì)小邊緣組成。后續(xù)研究可以進(jìn)一步結(jié)合邊緣修復(fù)連接完善邊緣檢測(cè)效果,使邊緣檢測(cè)可以結(jié)合具體的應(yīng)用目標(biāo)得到更好的檢測(cè)效果。