吳云飛,柏受軍*,江 明,徐印赟
(1.安徽工程大學(xué) 高端裝備先進感知與智能控制教育部重點實驗室,安徽 蕪湖 241000;2.安徽工程大學(xué) 電氣工程學(xué)院,安徽 蕪湖 241000)
在機器視覺系統(tǒng)中,對目標圖像進行預(yù)處理是必不可少的關(guān)鍵步驟。其中對圖像中目標區(qū)域邊緣信息的有效獲取是圖像識別過程中至關(guān)重要的一環(huán),即邊緣檢測。顧名思義,邊緣檢測技術(shù)是運用于圖像視覺識別領(lǐng)域中的一個至關(guān)重要的技術(shù)。在視覺系統(tǒng)的目標識別步驟中,有效準確地提取出目標工件或者目標物體的邊緣信息,是直接影響下一步目標識別的重要前提和條件。目前,邊緣檢測算法種類繁多,如何選擇合適的算法進行邊緣檢測以及對其做出合適的改進是機器視覺中應(yīng)用邊緣檢測的關(guān)鍵。
針對傳統(tǒng)邊緣檢測算法的各種缺陷,近年來國內(nèi)外學(xué)者都想方設(shè)法對邊緣檢測技術(shù)進行創(chuàng)新,同時,如何有效保護圖像的邊緣信息也一直是研究熱點。為了增加邊緣檢測的準確率,文獻[1-4]將數(shù)學(xué)形態(tài)開閉運算與混合濾波器、二進小波變換算法、自適應(yīng)中值濾波、雙邊濾波相結(jié)合;文獻[5-8]在Canny算法的基礎(chǔ)上結(jié)合多尺度增強、幾何特征、同態(tài)濾波、Zernike矩等算法提高了算法的保邊性,提高了缺陷檢測的精度。上述幾種方法雖然增加了邊緣檢測的準確率,但是增加了算法的復(fù)雜性,并且或多或少地受到被檢測目標的影響。
為了提高邊緣檢測算法的濾波性能,文獻[9]提出將MMTF與邊緣檢測算法相結(jié)合;文獻[10-11]提出新的混合濾波方法來代替Canny邊緣檢測算法中的高斯濾波;文獻[12-13]將Canny算法與Hough變換相結(jié)合,以此來提高邊緣檢測算法性能;文獻[14-15]將邊緣檢測與實際應(yīng)用場景相結(jié)合并改進;但上述幾種方法雖然能在一定程度上提高邊緣檢測的準確率,但是對于低對比度背景圖片,準確率以及算法的自適應(yīng)性有所下降;文獻[16-18]針對低對比度背景圖像做出改進,用于邊緣、缺陷檢測和特征提取,因此,文章針對低對比度背景圖像提出一種新的邊緣檢測算法,為邊緣檢測方面提供了一定的新思路。
綜上所述,在傳統(tǒng)的幾種邊緣檢測算法中,Canny算法被應(yīng)用得最多,其被廣泛應(yīng)用于視覺系統(tǒng)中。但是,傳統(tǒng)Canny算法自身也存在著缺陷,實際使用中會在濾波時對需要的重要邊緣部分造成邊緣模糊,最終導(dǎo)致邊緣部分信息丟失,造成提取效果不佳,更不用說在低對比度背景下的工件邊緣檢測效果了。如何在低對比度背景下對工件進行邊緣檢測時,既能有效去除噪聲,又可以有效保護邊緣信息,使邊緣不模糊,不丟失重要的邊緣信息,這對邊緣檢測來說是急需解決的一個問題。
Canny邊緣檢測算法早在1986年就被提出,是目前為止邊緣檢測算法中應(yīng)用最廣泛、最經(jīng)典的邊緣檢測算法之一。Canny邊緣檢測算法屬于先平滑后求導(dǎo)的方法,算法需要滿足兩個條件:第一,要能有效地抑制噪聲;第二,要能盡量精確地檢測并確定邊緣的位置信息。然后,對信噪比與定位乘積進行測度,得到最優(yōu)化逼近算法,這就是Canny邊緣檢測算法的基本原理。
(1)信噪比。邊緣檢測中要求非邊緣點誤判為邊緣點或邊緣點誤判為非邊緣點的概率要盡可能低。信噪比(SNR)的數(shù)學(xué)表達式為
(1)
式中,h(x)為邊界濾波器的脈沖響應(yīng);G(-x)為邊緣函數(shù);σ為高斯噪聲的標準差。信噪比(SNR)越大,正確率越高,提取的邊緣質(zhì)量越高。
(2)定位精度。邊緣檢測中要求檢出的邊緣點與實際邊緣點距離最小。定位精度的數(shù)學(xué)表達式為
(2)
式中,G′(-x)和h′(x)分別為G(-x)和h(x)的1階導(dǎo)數(shù)。定位精度值L越大,定位精度越高。
傳統(tǒng)的Canny邊緣檢測算法的步驟如圖1所示。Canny算法是先平滑后求導(dǎo)的邊緣檢測算法。傳統(tǒng)的Canny邊緣檢測算法的基本步驟:首先,通過高斯函數(shù)對圖像進行濾波處理以去除噪聲;其次,計算被檢測像素點的梯度幅值和方向,然后利用梯度的方向抑制非極大值,從而確定邊緣。Canny算法去噪能力強,但在處理時會造成一些邊緣信息也被平滑模糊掉,會造成邊緣缺失導(dǎo)致邊緣不連續(xù)。
(1)高斯濾波。高斯濾波是建立在高斯函數(shù)基礎(chǔ)上的線性濾波算法,基本思想是將被檢測的中心像素賦予鄰域像素的平均值,所以濾波處理后的圖像整體會有一個平滑效果,圖像會變得模糊。
下面是一維和二維高斯分布函數(shù)的公式:
一維高斯分布函數(shù)公式:
(3)
二維高斯分布函數(shù)公式:
(4)
式中,σ為高斯噪聲的標準差,它控制著平滑程度。σ越小,圖像平滑程度越??;反之,σ越大,圖像平滑程度越大。
(2)計算梯度幅值和方向。用式(5)~(6)分別計算圖像上的各像素點的梯度幅值和梯度方向。
(5)
(6)
其中,P[i,j]為任一像素點[i,j]沿x方向的偏導(dǎo)數(shù),Q[i,j]為[i,j]沿y方向的偏導(dǎo)數(shù)。
(3)非極大值抑制。對圖像的像素梯度幅值進行非極大值抑制。具體方法是,若沿某像素梯度方向相鄰的兩個像素存在比該像素梯度幅值大的情況,則排除被判斷點,反之保留該點。
(4)雙閾值。與其他邊緣檢測算法不同的是Canny算法設(shè)有雙閾值即高閾值和低閾值,當被檢測像素點梯度幅值大于高閾值時,識別為邊緣點并保留。反之,當被檢測像素點梯度幅值小于低閾值時,識別為非邊緣點并刪除。當幅值處于雙閾值之間時,則計算該像素點的鄰域內(nèi)是否有邊緣點,若有則保留,無則刪除。傳統(tǒng)Canny邊緣檢測中的高低閾值需要人為的根據(jù)經(jīng)驗進行設(shè)置,自適應(yīng)性較差且經(jīng)驗性較強。
實際上,傳統(tǒng)的Canny算法實際應(yīng)用時在濾波的同時無法分辨邊緣信息,會對圖像整體進行平滑處理,從而導(dǎo)致目標邊緣也被平滑掉,最終導(dǎo)致邊緣提取效果不佳。
傳統(tǒng)Canny算法采用高斯濾波去降噪,但高斯濾波在去噪的同時將造成邊緣模糊,丟失大量細節(jié)信息,并且在去除噪聲方面效果不佳。特別是在處理低對比度背景下的工件圖片時會無法辨別工件的邊緣,從而將工件的邊緣和背景一起平滑掉。針對以上問題,本文提出用一種選擇性濾波與均值濾波相結(jié)合的混合濾波算法,該算法代替?zhèn)鹘y(tǒng)Canny算法中的高斯濾波算法來對圖片進行平滑處理。新的混合濾波算法有選擇性地對圖像的邊緣區(qū)域和非邊緣區(qū)域進行濾波運算,能在大量降低噪聲的同時保留邊緣的信息,最后進行邊緣提取。
針對傳統(tǒng)的Canny算法的缺陷,即高斯濾波在去除高斯噪聲時會使圖像整體模糊,使圖像丟失很多邊緣信息,并且高斯濾波在去除圖像中的椒鹽噪聲時效果不佳,所以提出用改進的高斯濾波與中值濾波相結(jié)合的混合濾波來代替高斯濾波,這樣不僅能有效去除高斯噪聲和椒鹽噪聲,而且能在去除噪聲的同時保護邊緣信息。
(1)改進的高斯濾波。高斯濾波與常見的線性濾波算法一樣,原理都是計算出被檢測的某一個目標像素點周邊的鄰域中其他相關(guān)像素的位置,分配權(quán)重,然后得到結(jié)果值。但是,由于高斯模糊的權(quán)重和像素與到中心點的距離成高斯分布,所以在應(yīng)用這種計算方法時,無法辨別邊緣像素,這樣就會導(dǎo)致目標圖像在濾波處理完之后一些重要的邊緣信息丟失。針對這一問題,參考高低閾值原理,在高斯模糊的基礎(chǔ)上設(shè)置一個閾值;當鄰域像素和中心點像素的值差距小于閾值時,則對原本高斯模糊算法設(shè)置的權(quán)重不做任何改變;但當鄰域像素和中心點像素的值的差距大于閾值時,就將其權(quán)重設(shè)為定值;最后在權(quán)重項目中與系數(shù)相乘,從而實現(xiàn)有選擇性的高斯濾波效果。
以上算法原理對于本身比較平滑無明顯像素值變化的區(qū)域,即對于不含有明顯的邊緣信息的區(qū)域而言,能達到和傳統(tǒng)的高斯濾波算法一樣的有效去除高斯噪聲的效果;而對于含有邊緣像素的區(qū)域,為其鄰域像素的權(quán)重人為分配一個合適值,從而實現(xiàn)對圖像有效去除噪聲的同時又能保留邊緣信息。
(2)中值濾波。圖像的中值濾波是一種非線性圖像處理方法。與高斯濾波不同,中值濾波是通過鄰域內(nèi)像素的值決定中心像素的值。原理是對目標中心點的像素值用鄰域內(nèi)的各像素值計算得出的中值來代替。舉一個示例如圖2所示,在一個3×3的矩陣里有9個像素點,計算得出這9個點的中值,然后將這個矩陣的中心點賦值為這9個像素值的中值。
改進的高斯濾波可以有效去除高斯噪聲,中值濾波可以有效去除椒鹽噪聲,將改進的高斯濾波作為輸入,中值濾波作為輸出,結(jié)合成混合濾波,進而實現(xiàn)對目標圖像中高斯椒鹽噪聲的有效去除,流程如圖3所示。
在對圖像進行平滑處理后,需要使用卷積模板算法對圖像的某個像素點實現(xiàn)卷積操作,確定梯度幅值。傳統(tǒng)的Canny的卷積為2×2的模板,分為兩種:一個沿著水平方向,一個沿著垂直方向。傳統(tǒng)Canny卷積的模板如式(7)所示:
(7)
不同于Canny的卷積,Sobel算法的卷積為3×3的模板,一般也分為水平與垂直兩種方向,本文引用改進的Sobel算法卷積模板來計算圖像在0°、90°、45°和135°這4個方向的梯度幅值。Sobel算法卷積的模板公式如下:
(8)
梯度幅值:
(9)
梯度方向:
(10)
式中,g0°[i,j]、g90°[i,j]、g45°[i,j]、g135°[i,j]分別為點g[i,j]在0°、90°、45°和135°這4個方向的偏導(dǎo)數(shù);M[i,j]為梯度幅值;θ為梯度方向。
改進的Sobel算法卷積模板相比較Canny算法而言,不僅尺度增加,方向也由原來的水平垂直增加到了4個方向,對4個方向進行梯度計算,能夠更全面地檢測邊緣信息,所以使用改進Sobel算法卷積計算梯度幅值的精度和準確率都更好。
傳統(tǒng)的Canny算法采用雙閾值的方法來分辨邊緣信息,雙閾值的大小需要人為地選取設(shè)定,這不僅需要一定的經(jīng)驗,而且意味著算法的自適應(yīng)性很低,于是本文使用Otsu自適應(yīng)閾值算法來克服傳統(tǒng)算法的這一缺點[19-21]。Otsu自適應(yīng)閾值算法可以通過被檢測目標圖像的前景和背景各個部分不同的分界值來計算對應(yīng)的前景和背景的類內(nèi)方差,類內(nèi)方差取極大值所對應(yīng)的分界值就是Otsu計算得出的自適應(yīng)閾值。計算公式如式(11)~(17)所示:
(11)
(12)
A+B=M×N,
(13)
ω0+ω1=1,
(14)
μ=ω0×μ0+ω1×μ1,
(15)
g=ω0(μ0-μ)2+ω1(μ1-μ)2,
(16)
將式(15)代入式(16),得到等價公式:
g=ω0ω1(μ0-μ1)2,
(17)
由式(17)可得類間方差g最大的閾值T,T為前景背景的分割閾值;式(11)~(17)中,ω0為前景中像素點的數(shù)量占整幅圖像的比例,μ0為其像素點的平均灰度;同理,ω1為背景部分像素點的比例,μ1為其平均灰度;μ為圖像的總平均灰度;g為類間方差;M×N為圖像大小尺寸;A為圖像中灰度值小于閾值T的像素個數(shù);B為灰度值大于閾值T的像素個數(shù)。
本文提出的針對低對比度背景下帶劃痕工件的邊緣檢測算法步驟如圖4所示。與圖1傳統(tǒng)的邊緣檢測算法步驟相比較,改進后的邊緣檢測算法在圖像去噪濾波方面、梯度方面以及雙閾值選取的算法自適應(yīng)性上均有所增強。
本文邊緣檢測實驗是在VS 2010環(huán)境下,配置開源計算機視覺函數(shù)庫Open CV 3.3.0進行測試。
(1)濾波器去噪效果對比。為了對比傳統(tǒng)的濾波方法與改進的濾波方法對低對比度背景下的工件圖片的濾波效果,設(shè)計了以下實驗:
①目標工件圖片背景對比度。工件邊緣兩側(cè)區(qū)域RGB值對比如圖5所示。由圖5可知,目標圖片背景部分與工件部分的RGB值差距很小,即色域相似度很高,對比度很低,且工件表面有非常明顯的劃痕。對于這種低對比度背景下的帶劃痕的工件圖片,傳統(tǒng)方法難以準確地進行邊緣檢測。
②不添加噪聲工件圖片處理結(jié)果對比。首先對不含噪聲的目標工件圖片進行濾波效果實驗對比,結(jié)果如圖6所示,實驗對象是無添加噪聲的低對比度背景下的有劃痕工件圖片,方框內(nèi)是工件上明顯的劃痕。由圖6b、6c可以看出,用不同標準差的高斯濾波器對目標圖片進行濾波處理時,當標準差σ太小時,劃痕還是明顯存在,就算增大標準差的值至犧牲工件的邊緣細節(jié)來對圖片進行平滑濾波,也無法有效地去除劃痕;而用本文提出的算法來對目標圖片進行處理時(見圖6d),可以很好地解決這個問題。本文算法不僅能有效地保留邊緣部分的細節(jié)信息,還能對非邊緣部分進行有效地平滑處理,從而在保留圖片細節(jié)的同時,還能有效地去除工件表面的劃痕帶來的干擾。
③添加噪聲工件圖片處理結(jié)果對比。添加了高斯椒鹽噪聲的不同工件圖片,通過不同標準差大小的高斯濾波處理效果與本文提出的混合濾波效果對比如圖7所示。由圖7可以看出,高斯濾波會對目標圖片進行整體平滑處理,導(dǎo)致目標圖片在濾波后整體變得模糊,喪失了大量邊緣信息,而本文提出的混合濾波在對高斯椒鹽噪聲濾波處理后,不僅能有效地去除噪聲,還能有效地保護邊緣不被平滑處理掉,效果較高斯濾波而言更好。由圖7實驗圖片對比可知,在對添加了高斯椒鹽噪聲的工件圖片進行濾波處理時,高斯濾波在標準差σ較小的情況下濾波效果不是很好,雖然能保留圖像細節(jié),但是去除噪聲的效果不夠理想(見圖7b、7f),在σ較大的情況下濾波效果稍好,但是模糊掉了圖像邊緣細節(jié)(見圖7c、7g);混合濾波相比較傳統(tǒng)的高斯濾波,在有效去除高斯椒鹽噪聲的同時能選擇性地平滑掉一些非邊緣部分,能更有效地去除噪聲且保護好邊緣信息(見圖7d、7h)。
④濾波處理圖像質(zhì)量保真結(jié)果對比。為了進一步說明本文提出的混合濾波器的去噪保真效果,本文通過比較psnr(峰值信噪比)以及ssim(結(jié)構(gòu)相似度)指標來比較濾波去噪圖像質(zhì)量。ssim取值范圍為[0,1],在[0,1]范圍內(nèi),值越大,表示圖像失真越小,質(zhì)量越高;反之,值越小,則表示圖像質(zhì)量失真越大,圖像質(zhì)量越差。psnr值越大表示圖像失真越小。不添加噪聲圖片psnr、ssim值對比如表1所示,添加噪聲圖片psnr、ssim值對比如表2所示。由表1、2中數(shù)據(jù)可知,本文提出的濾波算法在對目標圖片處理時,psnr以及ssim的值都是最大,說明本文提出的混合濾波在有效去除噪聲的同時也很好地保證了圖像質(zhì)量。

表1 不添加噪聲圖片psnr、ssim值對比

表2 添加噪聲圖片psnr、ssim值對比
(2)邊緣檢測算法結(jié)果對比。為了驗證本文邊緣檢測算法的有效性,采用邊緣清晰度指標來比較各邊緣檢測算法的保邊性,圖像清晰度比較結(jié)果如圖8所示。從左到右的算法順序是Sobel、Laplace、Log、傳統(tǒng)Canny算法以及本文算法,由圖8可知,文章提出的改進邊緣檢測算法邊緣清晰度最高,保邊性最好。
由以上邊緣檢測算法的濾波效果實驗數(shù)據(jù)對比可知,本文的邊緣檢測算法相較于傳統(tǒng)的Canny算法而言,其濾波效果、圖片保邊性以及保真性更好,于是進一步對比邊緣檢測效果如圖9所示。由圖9圖像處理結(jié)果可知,針對工件與背景灰度變化小的目標圖片,傳統(tǒng)的Canny算法在處理帶噪聲圖片時,會失去較多細節(jié),并且邊緣連續(xù)性較差,實驗結(jié)果并不理想;Laplace、Log、Sobel算法在處理帶有噪聲的目標圖片時,對噪聲較敏感,雖然能有效保留邊緣,但是噪聲的干擾性太大,實驗結(jié)果也不理想;而本文改進的邊緣檢測算法相比較于Laplace、Log、Sobel能有效地去除噪聲,相比較于傳統(tǒng)的Canny算法能更多保留邊緣信息,得到的邊緣檢測結(jié)果邊緣更加連續(xù),偽邊緣和誤檢的邊緣都更少,有效的邊緣數(shù)量也更多,邊緣也更加連續(xù)。
通過實驗結(jié)果對比可知,在低對比度背景下處理表面有劃痕的工件圖片時,在消除噪聲和去劃痕影響方面,本文提出的混合濾波去除高斯噪聲和椒鹽噪聲的效果明顯優(yōu)于傳統(tǒng)的幾種算法,不僅能有效去除工件表面劃痕的影響還能有效去除高斯椒鹽噪聲;在圖像質(zhì)量保真方面,由表1中的psnr和ssim指標可以看出,本文濾波算法得到的去噪圖像質(zhì)量最好。在邊緣檢測方面,本文算法檢測到的有效邊緣更多,邊緣更加連續(xù),明顯優(yōu)于傳統(tǒng)的邊緣檢測算法。本文算法不僅能有效去除噪聲,還能有效保護邊緣信息的完整性和連續(xù)性。
本文針對幾種傳統(tǒng)邊緣檢測算法在低對比度背景下處理表面有劃痕的工件圖片時的不足,提出將高斯濾波進行改進,并將改進的高斯濾波與中值濾波相結(jié)合的混合濾波器算法來代替高斯濾波器,然后增加了梯度幅值的計算方向?qū)崿F(xiàn)梯度增強,最后用自適應(yīng)閾值的方法提高了算法的自適應(yīng)性。改進的邊緣檢測算法克服了傳統(tǒng)邊緣檢測算法提取邊緣的信息丟失問題,在低對比度背景下表面對有劃痕的工件圖片的圖像邊緣檢測中保留邊緣信息的效果較為明顯。相比較于傳統(tǒng)的Canny算法、Laplace、Log以及Sobel算法而言,本文改進的邊緣檢測算法在消除大量的高斯噪聲以及椒鹽噪聲的情況下,能更有效地保護圖像的邊緣特征信息。因此本文算法可以彌補傳統(tǒng)Canny等邊緣檢測算法的不足,提高了算法的精度和有效性,具有良好的應(yīng)用前景。