余 波,吳 靜,周琦賓
(1.西南科技大學 信息工程學院,綿陽 621010;2.西南科技大學 四川省特殊環(huán)境機器人技術(shù)重點實驗室,綿陽 621010)
獲取圖像中感興趣區(qū)域的邊緣信息是圖像目標識別過程中至關(guān)重要的一個步驟,隨著圖像處理技術(shù)的發(fā)展,國內(nèi)外學者已經(jīng)提出了一系列邊緣檢測方法。常見的邊緣檢測算子有Robert、Sobel、Prewitt等[1],基本原理是計算局部區(qū)域窗口的梯度,對目標檢測圖像中的噪聲敏感性強,檢測效果不佳;John Canny[2]首次提出基于最優(yōu)化思想的Canny算子,能夠準確定位邊緣信息;劉麗霞等[3]利用具有邊緣保持特性的引導(dǎo)濾波器來代替高斯濾波,同時采用大律法自適應(yīng)選取高、低閾值。
上述方法在面對目標圖像椒鹽噪聲過重時,檢測出來的邊緣不夠平滑,還伴隨著一些偽邊緣的產(chǎn)生,造成局部特征信息丟失,對感興趣區(qū)域識別精度不高,因此解決圖像目標檢測中的椒鹽噪聲問題十分重要。為了更好地減少椒鹽噪聲和偽邊緣的出現(xiàn),改善邊緣連接平滑程度,本文提出一種基于改進Canny算子的邊緣檢測算法。首先,利用一種混合濾波器來替代原始算法中的高斯濾波器,然后分別通過四個方向來計算圖像的梯度幅值,最后使用最大類間方差法(Otus算法)實現(xiàn)自動選取閾值,提高算法的自適應(yīng)性。
經(jīng)典的Canny算子是利用高斯濾波器來實現(xiàn)圖像的平滑濾波,這種無差別濾波方式會造成邊緣信息模糊甚至丟失,為了減小在圖像邊緣檢測中的椒鹽噪聲干擾,提出了一種基于新穎濾波器和均值濾波器結(jié)合的混合濾波方法。其中新穎濾波器的原理是用一個N×N維的元素矩陣A與原圖像f(x,y)運算得到子圖像f1(i,j),記下此時的中心像素點為E(i,j),生成的子圖像再和單位矩陣I的列向量進行運算生成子圖像f2(i,j);同樣的,將此子圖像與單位矩陣I的列向量進行運算,去掉一個像素最大值和像素最小值后得到子圖像f3(i,j),用此時的子圖像f3(i,j)與E(i,j)進行比較,篩選出合適的中心像素點,以此來達到濾波消除椒鹽噪聲的目的,此濾波器的數(shù)學模型如下:
其余的圖像矩陣可以根據(jù)式(2)計算得到,于是子圖像f2(i,j)、f3(i,j)為:
均值濾波器是一種鄰域空間處理算法,基本改進原理是由鄰域內(nèi)像素平均值來代替?zhèn)€像素點的值,選擇一個m×m的模板S,將S與其在原圖像f(x,y)形成的覆蓋矩陣進行運算得到子圖像f1(i,j),然后用該子圖像與單位矩陣I的列向量進行運算得到子圖像f2(i,j),用子圖像f2(i,j)再與單位矩陣I的列向量做一次運算,去掉像素中的最大值和最小值,用此時計算出的平均值來代替原來圖像的中心像素點,根據(jù)式(1)、式(2)可以構(gòu)建出數(shù)學模型如下:
由此得到的新圖像f2(i,j)如下:
與傳統(tǒng)的高斯濾波相比,混合濾波器在進行圖像平滑操作的同時保護了圖像邊緣信息,去除大部分椒鹽噪聲,因此提高了圖像邊緣檢測的精度。如圖1所示,在含有10%椒鹽噪聲的圖像濾波實驗中,高斯濾波的處理效果不佳,得到的圖像比較模糊;而混合濾波器能夠消除大量的椒鹽噪聲,圖像邊緣細節(jié)信息保留完整并且輪廓比較清晰。圖2則是在原始圖像上加入了σ=0.1的高斯噪聲,從實驗結(jié)果可以看出,混合濾波器在處理含有高斯噪聲的圖像上也有一定的優(yōu)勢。
圖1 10%椒鹽噪聲濾波對比
圖2 σ=0.1高斯噪聲濾波對比
經(jīng)典Canny算法采用鄰域一階偏導(dǎo)的有限差分法來計算幅度梯度值[4],此方法能夠較好的定位圖像邊緣,但對噪聲較為敏感。為了進一步減少噪聲的干擾,計算圖像鄰域梯度幅值時,以x,y方向為基礎(chǔ),拓展45°方向和135°方向的梯度幅值,各方向梯度分量的數(shù)學表達式如下:
四個方向的梯度模板如圖3所示。
圖3 方向矩陣圖
梯度幅值為:
梯度方向為:
Canny算法中閾值設(shè)定是較為關(guān)鍵的一步,合適的閾值能同時減少毛邊產(chǎn)生和對噪聲抑制,有利于后續(xù)圖像邊緣點的連接,經(jīng)典Canny算法中閾值選取是通過實驗人工設(shè)定,這種人工選取的方式大大降低了算法的自適應(yīng)性。因此,本文采用Otus算法實現(xiàn)邊緣連接時自適應(yīng)選取高、低閾值。
Otus算法[5],也稱最大類間方差法,特點是能夠依據(jù)圖像的灰度直方圖信息自動完成閾值選取。現(xiàn)有大小為M×M的目標圖像,灰度值范圍為[0,L-1],將圖像中灰度值小于t的像素點歸為一類C0,即[0,t]∈C0,其余像素點歸為一類C1,即,[t+1,L-1]∈C1,則數(shù)學模型表示如下:
其中i為圖像的灰度值范圍,Pi為灰度值i出現(xiàn)的概率,P0(t)、P1(t)分別表示類別C0、C1出現(xiàn)的概率,u0(t)、u1(t)分別表示類別C0、C1的平均灰度。根據(jù)上述結(jié)果,可以得到圖像的類間方差表達式如下:
經(jīng)過反復(fù)迭代,當類間方差最大時的分割閾值即為最優(yōu)閾值,此時低閾值Tl=Th/2,而高閾值Th為:
本次實驗的平臺為Windows10下的Matlab2016,選取多景圖像并加入10%的椒鹽噪聲干擾,通過對比濾波器的濾波性能以及圖像邊緣檢測的連續(xù)性和平滑性,共兩組實驗來評估本文算法的有效性。
實驗1的結(jié)果圖如圖4所示,經(jīng)過σ=0.8的高斯濾波后的圖像中仍存在大量的椒鹽噪聲,圖像邊緣信息比較模糊,濾波效果并不好;而經(jīng)過本文中混合濾波器處理的圖像極大程度上抑制了椒鹽噪聲,圖像整體邊緣提取非常完整、平滑。
圖4 邊緣檢測實驗1結(jié)果圖
此外,引入圖像質(zhì)量評價指標信噪比(SNR)[6]與峰值信噪比(PSNR)[7],進一步對本文中的混合濾波器性能進行評估,其中SNR與PSNR的值越大,表明檢測圖像的質(zhì)量越高,從而反映出濾波器對噪聲的處理能力更強。從表1可以看出,本文中的混合濾波器(Hybrid filter)的性能是優(yōu)于高斯濾波器的。實驗2通過引入其他幾種邊緣檢測算法做為對比,驗證本文算法(Proposed method)在整體圖像邊緣檢測的性能,檢測結(jié)果如圖5所示。從實驗結(jié)果看出,針對不同背景下含有椒鹽噪聲的圖像各類算法處理結(jié)果存在較大差異,其中傳統(tǒng)Canny算法抑制了一部分椒鹽噪聲,但是邊緣檢測的效果不佳,出現(xiàn)很多偽邊緣;LOG算法處理后的圖像仍存在大量噪聲點且目標邊緣模糊;Roberts算法處理后的圖像邊緣細節(jié)丟失比較嚴重,提取精度不高;文獻[8]中的方法能夠濾除大部分噪聲,目標邊緣清晰,但邊緣存在間斷,沒有完整體現(xiàn)整個檢測目標的輪廓信息;經(jīng)本文方法處理的圖像不僅對噪聲的抑制效果好,還保留了邊緣的完整性和清晰度。
圖5 算法檢測結(jié)果對比圖
表1 濾波效果評價表
圖6是通過分析不同算法的邊緣點信息來進一步證明本文方法的實用性。其中E/F數(shù)值越小表明檢測出的圖像邊緣更加平滑;E/T值越小表明邊緣的連接程度更好。從圖中可以看出本文算法的邊緣平滑性和連接程度都優(yōu)于其他積累算法。
圖6 邊緣連接參數(shù)圖
對比傳統(tǒng)Canny算法、Log算法、Robert算法等僅適合檢測椒鹽噪聲較少的圖像,改進后的Canny算子對存在較多椒鹽噪聲的圖像檢測效果有明顯改良,解決了邊緣提取精度低、效果差等問題。經(jīng)實驗結(jié)果表明,本文提出的方法能夠去除絕大部分圖像中存在的椒鹽噪聲,且目標邊緣提取效果好,保留了邊緣的細節(jié)特征,具有完整性、平滑性。由于圖像中存在的噪聲多種多樣,不僅僅局限于椒鹽噪聲,研究一種能夠濾除其他噪聲的邊緣提取算法是今后研究的方向。