孫海明,韓國強
(1.湖北汽車工業(yè)學(xué)院 機械工程學(xué)院,湖北 十堰 442002;2.湖北中程科技產(chǎn)業(yè)技術(shù)研究院有限公司,湖北 十堰 442002)
圖像邊緣與椒鹽噪聲都具有高頻跳躍的性 質(zhì)[1],對噪聲圖像進行邊緣檢測時易引起邊緣線誤檢的情況,影響后續(xù)圖像處理[2]。Canny 算法[3]因其3個特性成為圖像邊緣檢測常用算法,但對圖像求解過程中會遇到椒鹽噪聲干擾,確定邊緣高低閾值存在一定難度[4]。徐武[5]等在濾波設(shè)計上進行改進,有效濾除了椒鹽噪聲并保護圖像邊緣細(xì)節(jié)信息;付文博[6]等結(jié)合CNN與Canny,設(shè)計出C-Canny算法,提高了閾值定位的準(zhǔn)確率;劉元峰[7]等側(cè)重研究目標(biāo)區(qū)域,然后基于改進的Canny算子進行噪聲消除,提高了目標(biāo)檢測的準(zhǔn)確率;李靜[8]等使用自適應(yīng)中值高斯濾波設(shè)計代替經(jīng)典Canny 算法中的高斯濾波器;李靖[9]等使用多尺度細(xì)節(jié)法增強邊緣,降低了高斯濾波的影響。上述改進算法具有降噪處理的步驟,但處理方法的魯棒性不高,降噪后容易導(dǎo)致圖像邊緣模糊,造成圖像弱邊緣漏檢。針對經(jīng)典Canny 算法及其相關(guān)研究在實際應(yīng)用中遇到的問題,提出使用自適應(yīng)中值-高斯濾波法(AMGF)代替高斯濾波法濾除圖像噪聲,并通過拉氏(Laplace)變換增強去噪后的圖像;使用Otsu 法計算得到圖像最優(yōu)閾值,運用精度更高的Scharr 算子代替Sobel 算子計算圖像梯度,以此提高邊緣點定位精度以保證后續(xù)邊緣連接的準(zhǔn)確性。
經(jīng)典Canny算法存在以下缺點:1)采用高斯濾波進行圖像去噪,利用二維高斯函數(shù)的分布方式平滑圖像,可以抑制服從正態(tài)分布的噪聲,但對椒鹽噪聲很敏感,且濾波模板大小的選取受人為影響,卷積核半徑小會導(dǎo)致噪聲去除效果差,卷積核半徑大會使圖像變得模糊,丟失圖像信息;2)采用Sobel卷積核進行梯度大小的計算,提取到的邊緣信息精度較差;3)根據(jù)人為經(jīng)驗選取高低閾值,不依靠圖像自身特性來進行最優(yōu)閾值的判定,無法得到圖像的確定信息,造成檢測誤差。針對上述缺陷進行改進:使用自適應(yīng)中值-高斯濾波并融合Laplace 變換,設(shè)計AMGF-L 方案;使用精度更高的Scharr 算子代替Sobel 算子進行圖像梯度計算;運用最大類間方差法(Otsu算法)自適應(yīng)選擇圖像的最優(yōu)閾值。改進邊緣檢測算法流程如圖1所示。
圖1 改進算法邊緣檢測流程圖
傳統(tǒng)中值濾波對圖像中少量椒鹽噪聲起到的作用較好,但當(dāng)圖像噪聲密度增大時很難在有效減少噪聲的同時保留圖像細(xì)節(jié)信息。自適應(yīng)中值濾波針對特定圖像條件,動態(tài)地改變中值濾波器的窗口寬度,保證去除噪聲同時保留圖像細(xì)節(jié)特征。算法步驟如下:1)設(shè)Sxy為濾波器的作用區(qū)域,濾波器窗口所覆蓋的區(qū)域中心點為圖像中第x行第y列個像素點;Sxy中最小灰度值、最大灰度值、中間灰度值分別為Zmin、Zmax、Zmed;Zxy表示圖像中第x行第y列像素點的灰度值;Sxy所允許的最大窗口尺寸為Smax。2)當(dāng)(Zmed-Zmin)大于0 且(Zmed-Zmax)小于0時轉(zhuǎn)至步驟3),否則增大窗口的尺寸,如果增大后的尺寸不大于Smax,則重新執(zhí)行步驟2),否則直接輸出Zmed。3)當(dāng)(Zxy-Zmin)大于0且(Zxy-Zmax)小于0時輸出Zxy,否則輸出Zmed[11]。
經(jīng)過自適應(yīng)中值濾波處理,椒鹽噪聲得到了有效控制,接著運用自適應(yīng)高斯濾波法去除高斯噪聲。利用二維高斯濾波函數(shù)生成高斯核:
式中:k為高斯核半徑;σ為標(biāo)準(zhǔn)差。高斯核系數(shù)權(quán)值與方差具有特定比例關(guān)系[12],在卷積窗口滑動中,根據(jù)方差大小求得高斯核標(biāo)準(zhǔn)差σ。圖像某區(qū)域內(nèi)方差計算公式為
式中:Si,j為中心點(i,j)的卷積窗口;D(i,j)為方差,D(i,j)越大,表示像素值在Si,j區(qū)域內(nèi)的離散程度越高,因此采用更小的σ生成的高斯核系數(shù)權(quán)重,可以有效減少對該區(qū)域的影響。據(jù)此得到:
由于D(i,j)是常量,R(i,j)是關(guān)于k與σ的函數(shù),即
當(dāng)R為1時,高斯核中參數(shù)權(quán)重大小與像素值權(quán)重最接近,此時該處σ由Sxy區(qū)域內(nèi)像素值的方差D求得。以此類推,反復(fù)迭代,形成自適應(yīng)高斯濾波,最后對圖像像素點全部卷積完成高斯濾波處理。
圖像經(jīng)濾波處理后造成圖像清晰度變低,邊緣信息不易體現(xiàn),使用Laplace 算子對圖像進行銳化處理,相比一階微分算子定位張力相對較強,銳化效果更佳。將銳化后的圖像與原圖像融合在一起,保留原圖信息并增強圖像梯度突變處的像素值,實現(xiàn)圖像邊緣的增強。常用Laplace算子模板為
Laplace算子的二階導(dǎo)數(shù)用來描述二維圖像的同性函數(shù),表示圖像的特征和性質(zhì):
邊緣增強公式為
式中:g為輸出;f為原始圖像;c為細(xì)節(jié)系數(shù)。根據(jù)c值大小判斷像素點是否被增強。
經(jīng)典Canny 算法采用Sobel算子進行圖像梯度定位,精度較差,容易丟失邊緣信息[13]。Sobel算子由2組3×3矩陣組成:
在X和Y方向上計算出梯度強度:
式中:Gx為像素點水平方向的梯矢量;Z為圖像;Gy為像素點垂直方向的梯矢量。計算圖像每個像素點的梯度大小G和梯度方向θ:
選取OpenCV庫中的Scharr算子[14]代替Sobel算子,以提高精度且同時保證運算效率。Scharr 算子濾波模板替換為
Otsu算法是自適應(yīng)的閾值選擇技術(shù),能夠根據(jù)灰度特性將圖片分為背景和前景[15]。為定義閾值T,將圖片中的像素點分為2類,即元素值不大于T(背景區(qū)域)和元素值大于T(前景區(qū)域)。假定背景區(qū)域占總像素數(shù)的比例為ω1,即
式中:Ssum為所有像素點總和;N1為背景區(qū)域所有像素點數(shù)。前景區(qū)域占總像素數(shù)的比例為
式中:N2為前景區(qū)域所有像素點數(shù)。依靠方差概念,類間方差g為
式中:μ1為背景區(qū)域平均像素值;μ2為前景區(qū)域平均像素值。優(yōu)化得到:
g取得最大值時,則認(rèn)為此時T值為最合適的閾值。
針對AMGF-L 方案進行實驗分析,在Visual Studio 2017 中實現(xiàn),配合OpenCV 視覺庫,為避免出現(xiàn)單一指標(biāo)的誤差使用10%椒鹽噪聲污染4 幅圖像進行算法性能評價,通過主觀分析和數(shù)據(jù)定量分析的方式進行比對。與采用掩碼大小為5 的高斯濾波以及AMGF 進行對比,如圖2~5 所示,發(fā)現(xiàn)AMGF-L可以去除圖像中的大部分噪聲,同時圖像輪廓信息更加清晰。使用峰值信噪比(peak signal-to noise ratio,PSNR)[16]和 信 噪 比(signal-to noise ratio,SNR)評價邊緣檢測算法的性能,SNR和PSNR數(shù)值越大,圖像失真越小。不同算法檢測結(jié)果的SNR與PSNR如表1所示。
表1 不同濾波算法SNR與PSNR表現(xiàn)dB
圖2 10%椒鹽噪聲濾波實驗對比
圖3 高斯濾波濾波實驗對比
圖4 AMGF濾波實驗對比
圖5 AMGF-L濾波實驗對比
選取數(shù)據(jù)集中4 種含有噪聲數(shù)據(jù)的圖像進行邊緣結(jié)果實驗仿真,對文中算法、經(jīng)典Canny算法、Sobel 算子、文獻[8]算法的邊緣檢測結(jié)果進行評價。經(jīng)典Canny 算法高低閾值設(shè)定100和50,高斯濾波器大小為5,4種圖像邊緣結(jié)果如圖6~9所示。
圖6 經(jīng)典Canny算法邊緣結(jié)果對比
圖7 Sobel算子邊緣結(jié)果對比
圖8 文獻[8]算法邊緣結(jié)果對比
圖9 文中算法邊緣結(jié)果對比
從邊緣結(jié)果來看,Sobel算子受噪聲影響,得到的圖像邊緣出現(xiàn)了邊緣連接線斷連且邊緣線較粗;經(jīng)典Canny 算法相對Sobel 算子,邊緣線定位更精確一些,依舊出現(xiàn)了邊緣線不完整的現(xiàn)象;文獻[8]算法較好地濾除了圖像中的噪聲,但濾波之后丟失了一些邊緣細(xì)節(jié)信息,導(dǎo)致圖像邊緣完整性有一定程度的缺失;相較于上述3 種方法,文中算法去除噪聲的能力較強,得到的邊緣線連續(xù)且完整,可以提取出圖像中較完整的邊緣細(xì)節(jié)信息。
為直觀體現(xiàn)算法性能的優(yōu)劣,引入文獻[10]中的評價指標(biāo),如表2所示,A代表邊緣算法檢測得到的像素總數(shù),B代表圖像中像素的4連通域,C代表像素的8連通域。C/A、C/B越小,圖像邊緣連續(xù)性越強,圖像邊緣檢測質(zhì)量越好。從表2 可看出,文中算法相較經(jīng)典Canny 算法、Sobel 算子、文獻[8]算法,C/A分別低0.07~0.24、0.11~0.22、0.06~0.11,C/B分別低0.06~0.14、0.07~0.16、0.06~0.11,表明文中算法具有一定的降噪保邊能力,邊緣檢測效果良好,可以檢測得到較完整的邊緣。
表2 各算法不同圖像的C/A、C/B
使用BSD500[17]數(shù)據(jù)集中500 張不同種類的圖片進行實驗,性能指標(biāo)為F1(F-measure),F(xiàn)1 越高代表對應(yīng)的算法性能越好,結(jié)果見表3。相比經(jīng)典Canny算法、Sobel算子及文獻[8]算法,在無噪聲條件下文中算法的F1 分別高4.2%、7.4%、2.8%;在10%噪聲條件下文中算法的F1 分別高24.8%、27.5%、8.5%。從表3中可以看出,在有噪聲影響的條件下,經(jīng)典Canny 算法F1下降幅度較明顯,文中算法F1下降幅度微小且遠高于經(jīng)典Canny 算法與Sobel 算子,好于文獻[8]算法,證明了文中算法在噪聲圖像下的優(yōu)越性。
表3 BSD500性能測試
經(jīng)典Canny 算法無法抑制椒鹽噪聲且抑制噪聲后無法保證圖像邊緣細(xì)節(jié)信息,為此提出使用AMGF-L方案替換高斯濾波,應(yīng)用Scharr算子代替Sobel 算子得到高精度梯度圖,保證自適應(yīng)閾值方法的有效實施,最終經(jīng)非極大值抑制技術(shù)連接邊界得到圖像邊緣。以實驗圖像為例,去噪后圖像的PSNR 相較其他算法提升了2.25~14.5 dB,邊緣評價指標(biāo)及F1 表現(xiàn)均優(yōu)于其他算法。結(jié)果表明,改進Canny算法可以去除椒鹽噪聲,并有效保留圖像邊緣細(xì)節(jié),為后續(xù)圖像處理時目標(biāo)區(qū)域定位識別等操作提供了準(zhǔn)確的邊緣輪廓信息。