杜 偉,何毅斌,吳林慧,汪 強
武漢工程大學機電工程學院,湖北 武漢430205
在現代機械制造業(yè)中,通過計算機視覺對機械零件進行缺陷檢測的技術應用越來越廣泛。由于其相較于傳統人工檢測方法具有高效率和低錯誤率的優(yōu)勢被各大公司企業(yè)青睞,其中機械零件的邊緣提取是機械零件缺陷檢測技術的關鍵環(huán)節(jié)。圖像的邊緣體現了圖像的不連續(xù)性,包含了物體的特點和圖像的基本信息,是圖像最基本的特征[1]。邊緣是圖像亮度急劇變化的地方[2],圖像的邊緣檢測即提取目標與背景或者目標與目標之間的邊界信息[3]。
傳統的邊緣檢測算子如Sobel算子、Canny算子、Laplace算子、Roberts算子等等,其中應用最為廣泛的是Sobel算子和Canny算子[4],這些經典算法計算簡單、容易實現,且具有較好的實時性,但檢測出的邊緣連續(xù)性差、定位精度不高,且對噪聲比較敏感[5]。在現代的邊緣檢測算法中,有基于機器學習包括深度學習在內的邊緣檢測算法[6-8],這些算法可以提取到圖像更多的特征信息,從而具有檢測精度高、搜索能力強的優(yōu)點,但應用這些算法需要大量的訓練樣本進行模型訓練,效率不高,且檢測速度較慢。
高斯拉普拉斯(laplacian of gaussian,LOG)算子,是一種不依賴邊緣方向的二階微分算子,由于其具有各向同性(旋轉不變)的性質,因此它對任何模板方向的灰度變化有相同的響應,從而可以避免使用多個模板去計算圖像中任何點的最強響應,故該算子在圖像處理中經常被用來提取圖像的邊緣。LOG算子具有邊界定位精度高、抗干擾能力強、連續(xù)性好等優(yōu)點,但也存在對噪聲敏感的問題,因此許多學者對其進行研究改進,使其檢測性能更加優(yōu)越。文獻[9]用自適應均值濾波和小尺度高斯濾波代替原來的高斯濾波進行圖像的預處理;文獻[10]采用中值濾波對原始影像進行消噪,利用Otsu算法對濾波后影像進行自適應閾值分割得到目標圖像,最后采用LOG算子對目標影像進行邊緣信息提取。
數學形態(tài)學是以集合論、代數學等為基礎形成的圖像處理方法,在邊緣檢測算法中,由于該方法易于實現,且檢測得到的邊緣圖像噪聲少,因此在減少圖像噪聲方面有很多的應用[11]。文獻[12]提出一種將小波變換和多尺度形態(tài)學算法進行融合的邊緣檢測算法;文獻[13]通過對數學形態(tài)學和Canny算子的檢測結果以信息熵作為指標進行加權融合,提出一種融合融合Canny算子和形態(tài)學的齒輪圖像邊緣檢測算法。
本文算法結合了改進的LOG算子和新型多尺度多結構數學形態(tài)學邊緣檢測算法的優(yōu)點,通過對兩種改進算法的檢測結果進行融合,再通過小波逆變換重構融合圖像即為最終的邊緣檢測圖像。
LOG算子的基本步驟如下:
1)采用Gaussian濾波對輸入圖像進行平滑處理。
2)計算平滑處理后圖像的Laplacian二階導數。
3)找到步驟(2)所得圖像的零交叉即圖像邊緣所在位置。
步驟(1)中高斯濾波器函數為:
用該函數對原始圖像進行卷積操作,得到平滑后的結果為:
其中f(x,y)為原圖像,*為卷積運算符號,g(x,y)為平滑濾波后得到的圖像。再對圖像g(x,y)應用Laplacian算子,得到其二階導數圖像:
對圖像高斯平滑與Laplacian微分運算可合并成一個卷積算子:
式中▽2G(x,y)是LOG算子,用其對原始灰度圖像進行卷積運算后得到的零交叉點即為圖像的邊緣點。
然而在實際邊緣檢測中,LOG算子由于其利用二階導數的零交叉獲得邊緣,其對噪聲極為敏感,故其仍然存在抗噪性差的問題。為此,對LOG算子進行改進,提高其去噪能力的同時并保持其檢測邊緣的連續(xù)性。
1.2.1 中值濾波 中值濾波是一種非線性平滑濾波,它使用一個像素鄰域中的灰度級中值代替該像素的值,即:
其中Sxy表示大小為m×n的窗口,g(s,t)表示被處理圖像,f(x,y)表示中值濾波處理后的圖像。
中值濾波對脈沖噪聲有很好的濾除效果(如椒鹽噪聲),它還可以在去噪的同時保護圖像的邊緣,使其不被模糊。再加上其算法較簡單且易于實現的特點,一經提出便被廣泛應用。
1.2.2 雙邊濾波 雙邊濾波在高斯濾波的基礎上提出,高斯濾波只考慮像素的空間分布導致其在去噪的同時會模糊圖像的邊緣,而雙邊濾波會同時考慮空域信息和灰度相似性,達到保邊去噪的目的。
設(xc,yc)表示中心像素坐標,(xi,yi)表示鄰域中的像素點坐標。雙邊濾波的空間域權重為:
灰度域權重為:
其中g(x,y)為點(x,y)處的灰度指,σd為基于高斯函數的空間域標準差,σr為基于高斯函數的灰度域標準差。雙邊濾波權重函數為二者乘積,即:
公式(6)是根據像素距離選擇權重,距離越近賦予的權重越大。公式(7)則是根據像素的差異來賦予權重。若兩個像素的像素值比較接近,即使二者距離較遠,也會比差異大而距離近的像素點賦予的權重大。公式(8)將二者結合起來,使得相距近但差異大的像素點特性得以保留。這樣雙邊濾波器既可以擁有高斯濾波器的濾波能力又能保護圖像的邊緣信息。
1.2.3 混合濾波器 考慮到中值濾波對處理類似于椒鹽噪聲這種脈沖噪聲有著非常好的處理效果,而雙邊濾波對于處理像高斯噪聲這種正態(tài)噪聲有很好的效果,且二者對圖像邊緣細節(jié)都有一定的保護能力。改進的LOG算子將使用中值濾波器和雙邊濾波器組成混合濾波器代替?zhèn)鹘yLOG算子中的高斯濾波器。其混合濾波器具體操作方式為:將中值濾波器處理后輸出的圖像作為雙邊濾波器的輸入再次對圖像進行濾波處理,從而達到較好的去除多類噪聲的同時保護了圖像的邊緣信息。
數學形態(tài)學主要以圖像的形態(tài)特征為研究對象,通過設計一套運算、概念和算法來描述圖像的基本特征。其有4個基本的運算:膨脹、腐蝕、開運算和閉運算[14]。
膨脹是通過將物體所接觸的背景點融入到該物體中使邊界向外擴張的過程。而腐蝕則為膨脹的對偶操作,是消除一些邊界點使邊界收縮的過程。定義如下:
膨脹運算:
腐蝕運算:
其中A為原始圖像,B為結構元素。
類似膨脹和腐蝕運算,開運算和閉運算也互為對偶運算。開運算即先腐蝕后膨脹,使用開運算可以去處一些孤立的點、毛刺和小橋,消除小物體、平滑較大物體的邊界。閉運算即先膨脹后腐蝕,使用閉運算可以填充物體內的細小空洞,連接鄰近物體。其定義如下:
開運算:
閉運算:
設E表示提取到的圖像邊緣,則由形態(tài)學運算,可以得到形態(tài)學邊緣算子如下所示:
形態(tài)學膨脹邊緣檢測算子:
形態(tài)學腐蝕邊緣檢測算子:
形態(tài)學梯度算子:
這3種算子雖然可以提取圖像的邊緣,但對噪聲較為敏感,只適用于噪聲較小的圖像,不具備普遍適用性。
針對以上問題,為了能有效抑制噪聲的同時盡可能檢測更多的圖像邊緣信息,本文采用多尺度多結構元素邊緣檢測算法來檢測圖像邊緣。
多尺度結構元素定義為:
其中N為結構元素s膨脹的次數,且N∈Z。
為了減小算法復雜度,取N=2,并經過多次實驗對比分析,最終選取尺度不同的3×3十字形結構元素和5×5菱形結構元素,分別如下所示:
本文使用的多尺度多結構元素邊緣檢測算子如下:
其中的小尺度元素s1以更好的保持圖像的邊緣信息,大尺度元素s2去噪能力強,可以更好的去處圖像中的噪聲。故給出的多尺度多結構元素算法既能有效的去除噪聲,又具備保護圖像邊緣信息的優(yōu)勢。
為了綜合改進LOG算法和新形態(tài)學算法的優(yōu)勢,得到更好的去噪效果和更多的邊緣信息,現利用小波圖像融合的方法將兩種邊緣檢測算法的檢測結果進行融合,從而得到更好的邊緣圖像。具體的融合步驟如下:
1)用改進LOG算法檢測含噪圖像,得到邊緣圖像A。
2)用改進形態(tài)學算法檢測含噪圖像,得到邊緣圖像B。
3)應用小波融合函數對兩幅邊緣檢測結果圖像A和B進行圖像融合。具體融合過程為:首先采用sym4小波對兩幅邊緣圖像A和B進行二維小波分解,分解層數為4,得到兩幅邊緣圖像的低頻和高頻分量;其次對兩幅圖像的高頻和低頻分量采用均值法進行融合;最后通過小波逆變換方法重構融合圖像,即為最終的邊緣檢測圖像。
為了驗證本文提出融合算法的去噪能力和邊緣檢測效果,以MAΤLAB R2019a為實驗平臺,以不同的齒輪圖像為例,分別對傳統的LOG算子,單結構形態(tài)學算子、文獻[13]介紹的算子和本文融合算子檢測的結果進行對比,通過觀察每種算法的檢測結果來驗證每種算法的魯棒性。
在齒輪圖像中加入均值為0,方差為0.005的高斯噪聲,用上述每種算法檢測的結果如圖1所示。
由圖1可以看到,傳統LOG算法檢測含噪圖像的邊緣結果存在噪聲消除不干凈,邊緣不連續(xù)的問題;單結構形態(tài)學算法檢測去噪效果較好但丟失了許多的圖像邊緣信息;本文融合算法和文獻[13]所提算法由于均融合了兩種不同算法的檢測優(yōu)勢,因此均取得了不錯的邊緣檢測效果,提取的邊緣圖像不僅抗噪性好而且對齒輪邊緣的定位也很精確。
圖1 齒輪1加高斯噪聲檢測結果比較圖:(a)加高斯噪聲,(b)傳統LOG算法,(c)單結構形態(tài)學算法,(d)文獻[13]算法,(e)本文融合算法,(f)理想邊緣Fig.1 Comparison of detection results of adding Gaussian noisein gear 1:(a)adding Gaussian noise,(b)traditional LOG algorithm,(c)single structure morphology algorithm,(d)algorithm in literature[13],(e)fusion algorithm of ours,(f)perfect edge
為了更客觀有效地評價這幾種算法的檢測效果,分別給出5種算法的峰值信噪比(peak signalto-noise ratio,PSNR)和 信 噪 比(signal-to-noise ratio,SNR)[15]作為邊緣檢測效果的評價指標,其中PSNR和SNR越大代表邊緣檢測效果越好。計算得到的指標如表1所示。
表1 齒輪1加高斯噪聲后的PSNR和SNR值Τab.1 PSNR and SNR values of adding Gaussian noise in gear 1
由表1可知,從客觀上進行評價,本文算法的PSNR值和SNR值均高于其他算法。
為了驗證本文算法在不同噪聲存在時依然具有良好的去噪效果,向齒輪圖像中加入3%的椒鹽噪聲再次進行實驗,實驗結果如圖2所示,每種算法各項評價指標如表2所示。
圖2 齒輪2加椒鹽噪聲檢測結果比圖:(a)加椒鹽噪聲,(b)傳統LOG算法,(c)單結構形態(tài)學算法,(d)文獻[13]算法,(e)本文融合算法,(f)理想邊緣Fig.2 Comparison of detection results of adding salt and pepper noise in gear 2:(a)adding salt and pepper noise,(b)traditional LOG algorithm,(c)single structure morphology algorithm,(d)algorithm in literature[13],(e)fusion algorithm of ours,(f)perfect edge
加入3%椒鹽噪聲的齒輪圖像評價指標如表2所示。
表2 齒輪2加椒鹽噪聲后的PSNR、SNR值Τab.2 PSNRand SNRvalues of adding salt and pepper noise in gear 2
由圖2和表2可知,當齒輪圖像加入3%的椒鹽噪聲后,傳統LOG算法和單結構形態(tài)學算法得到的邊緣圖像均較差,文獻[13]算法去噪能力上較為不錯,但在齒輪最內側的細節(jié)上檢測并不好,出現內側兩圓的邊緣粘連現象。相比上述算法,本文算法得到的邊緣圖像幾乎不含噪聲且對邊緣細節(jié)的處理也較為出色。在客觀評價指標上,各項指標依然領先于其他算法。
向齒輪圖像中加入由高斯噪聲和椒鹽噪聲組合的混合噪聲進行實驗,得到的實驗結果如圖3所示,每種算法各項評價指標如表3所示。
由圖3和表3可知,本文邊緣檢測算法在檢測含有混合噪聲的齒輪圖像時依舊具有較強的魯棒性。
圖3 齒輪3加混合噪聲檢測結果比較圖:(a)加混合噪聲,(b)傳統LOG算法,(c)單結構形態(tài)學算法,(d)文獻[13]算法,(e)本文融合算法,(f)理想邊緣Fig.3 Comparison of detection results of adding mixed noise in gear 3:(a)adding mixed noise,(b)traditional LOG algorithm,(c)single structure morphology algorithm,(d)algorithm in literature[13],(e)fusion algorithm of ours,(f)perfect edge
表3 邊緣檢測算法在混合噪聲下PSNR、SNR值Τab.3 PSNR and SNR values of edge detection algorithm under mixed noise
針對在檢測含噪齒輪圖像的邊緣時,存在噪聲難以抑制和難以檢測更多齒輪邊緣信息的問題。本文首先對傳統的LOG算子和數學形態(tài)學算子進行改進,接著利用小波分解與融合的方法,將兩種算法融合在一起,提出了一種融合改進數學形態(tài)學和LOG算子的齒輪邊緣檢測算法,該算法結合了單獨使用改進LOG邊緣檢測算法和多尺度多結構數學形態(tài)學邊緣檢測算法的優(yōu)勢。實驗結果表明,對含有不同類型噪聲的齒輪圖像,本文的融合算法相比于融合前的單一邊緣檢測算法,均擁有更好的去噪效果和邊緣檢測能力。