(1.內(nèi)蒙古科技大學(xué) 機械工程學(xué)院,內(nèi)蒙古 包頭 014010; 2.內(nèi)蒙古科技大學(xué) 工程訓(xùn)練中心,內(nèi)蒙古 包頭 014010;3.內(nèi)蒙古物通天下網(wǎng)絡(luò)科技有限責(zé)任公司,內(nèi)蒙古 包頭 014010)
隨著機器視覺和圖像處理的日漸成熟,邊緣檢測技術(shù)的應(yīng)用范圍越來越廣泛,其在列車軸承表面缺陷方面的應(yīng)用也取得了一定的效果,但是由于受到噪聲的干擾,提高抗噪性和準(zhǔn)確保留邊緣特征成為目前需要解決的主要問題。傳統(tǒng)的邊緣檢測算法對噪聲比較敏感,進行檢測時通常會加強噪聲,其中Canny算法的邊緣檢測效果相對較好。而數(shù)學(xué)形態(tài)學(xué)方法在近些年也開始用于邊緣檢測,它是一種非線性的濾波,相比于傳統(tǒng)的濾波算法,經(jīng)過數(shù)學(xué)形態(tài)學(xué)處理后得到的圖像有比較好的抗噪性和連續(xù)性,但是也存在著一些問題,即無法令處理后的圖像同時在噪聲平滑和邊緣準(zhǔn)確定位方面都達(dá)到最優(yōu)。趙芳[1]等人將多尺度形態(tài)學(xué)和雙邊濾波結(jié)合的去噪方法引入Canny算法中,檢測效果有了一定的提高,但是也增加了算法運行的時間,這影響了視覺檢測系統(tǒng)的工作效率。孫汝萍[2]通過小波分解的方法將圖像分解為高、低頻,分別進行邊緣檢測處理,再將圖像融合為完整邊緣,這也增加了算法的復(fù)雜性。朱地博[3]等人采用兩個互不相同的結(jié)構(gòu)元素對圖像邊緣進行檢測,得到的邊緣特征不夠清晰,這說明只用數(shù)學(xué)形態(tài)學(xué)進行邊緣檢測顯然很難得到準(zhǔn)確的邊緣特征。除此之外,還有一些關(guān)于米粒、軌道圖像、布匹瑕疵圖像的邊緣檢測算法研究[4-6],但是用于處理列車軸承表面缺陷圖像并不完全合適?;谶@種情況,筆者提出一種改進的邊緣檢測算法,其結(jié)合了形態(tài)學(xué)處理的抗噪性好和Canny算法準(zhǔn)確保留邊緣特征的優(yōu)點,用于列車軸承表面缺陷(麻點、壓痕、腐蝕)的邊緣檢測,效果有了明顯的提高,這對于軸承缺陷視覺檢測系統(tǒng)的研究有重要意義。
數(shù)學(xué)形態(tài)學(xué)作為邊緣檢測中提取圖像分量的一種工具,可以根據(jù)需要提取分量的特征,分別采用適當(dāng)形狀和尺度的結(jié)構(gòu)元素對圖像分量進行提取,具體實現(xiàn)的方法是通過腐蝕和膨脹操作進行圖像處理,并在此兩種算法的基礎(chǔ)上推導(dǎo)出形態(tài)學(xué)的開、閉運算和其他形態(tài)學(xué)算法[7]。
對于平面A2上的元素集合B,使用結(jié)構(gòu)元素C對集合B進行形態(tài)學(xué)處理,得到4種基本運算。
① 形態(tài)學(xué)腐蝕:
BΘC={s|(C)s?B}
(1)
② 形態(tài)學(xué)膨脹:
(2)
③ 形態(tài)學(xué)開運算:
B·C=(BΘC)⊕C
(3)
④ 形態(tài)學(xué)閉運算:
B·C=(B⊕C)ΘC
(4)
形態(tài)學(xué)邊緣檢測算法實際上相當(dāng)于使用一個結(jié)構(gòu)元素對原圖像進行腐蝕,再用原圖像減去腐蝕后的圖像,恰好刪除了腐蝕后的內(nèi)部點,留下了邊界元素。取D(B)為經(jīng)過形態(tài)學(xué)處理后的邊緣圖像,可定義為
D(B)=B-(BΘC)
(5)
形態(tài)學(xué)處理依賴于結(jié)構(gòu)元素的選取,不僅與結(jié)構(gòu)元素的形狀有關(guān),還與結(jié)構(gòu)元素的尺寸及原點位置密切相關(guān)[8]。形態(tài)學(xué)用于邊緣檢測處理時對噪聲不敏感,其本質(zhì)是結(jié)構(gòu)元素和集合的相互作用,如果在傳統(tǒng)的邊緣檢測算法中引入數(shù)學(xué)形態(tài)學(xué),可在一定程度上抑制噪聲,同時保留邊緣細(xì)節(jié)信息。
在目前的圖像邊緣檢測處理中,抑制噪聲和準(zhǔn)確保留邊緣特征很難同時實現(xiàn),有一些邊緣檢測算法通過平滑濾波,在去除噪聲的同時,也增加了邊緣定位的不確定性;而提高邊緣檢測算法對邊緣敏感性的同時,卻也增加了對噪聲的敏感性,Canny算法是在抑制噪聲干擾和保留邊緣特征之間最好的折中方案[8]。
圖1分別給出了5種傳統(tǒng)的邊緣檢測算法對麻點缺陷邊緣檢測后的圖像。
圖1 傳統(tǒng)的邊緣檢測算法處理后的圖像
實驗表明,Canny算法相比于其他傳統(tǒng)算法,具有準(zhǔn)確保留邊緣特征的優(yōu)點,雖然具備一定的抗噪性,但是仍然存在對噪聲敏感的問題,所以應(yīng)該加入其他算法將其改進。
本文結(jié)合形態(tài)學(xué)對噪聲不敏感、Canny算法準(zhǔn)確保留邊緣特征的優(yōu)點,提出了一種改進的邊緣檢測算法,其核心思想是將二值化后的圖像首先進行形態(tài)學(xué)3菱形閉運算處理,然后對其進行Canny邊緣檢測,最終實現(xiàn)對軸承缺陷的邊緣提取。
由于結(jié)構(gòu)元素的選取在形態(tài)學(xué)處理中占有極其重要的地位,所以對多種不同的結(jié)構(gòu)元素分別進行對比實驗,最終選取[0 1 0;1 1 1;0 1 0]作為本文算法形態(tài)學(xué)處理中的結(jié)構(gòu)元素,實驗證明,該結(jié)構(gòu)元素對于軸承3種主要缺陷(麻點、壓痕和腐蝕)的處理效果最好。實驗中用到的結(jié)構(gòu)元素分別為
[1 1 1;1 1 1;1 1 1]
(3×3)
[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1]
(5×5)
[0 1;1 0]
(0110)
[1 0;0 1]
(1001)
[0 1 0;1 1 1;0 1 0]
(3菱形)
[0 0 1 0 0;0 1 1 1 0;1 1 1 1 1;0 1 1 1 0;0 0 1 0 0]
(5菱形)
以麻點圖像的形態(tài)學(xué)閉運算處理為例,圖2分別給出了麻點缺陷原圖、二值化后的圖像以及此六種結(jié)構(gòu)元素閉運算處理后的圖像。
圖2 不同結(jié)構(gòu)元素閉運算處理后的圖像
由圖2可以看出,相比于二值化后的圖像,經(jīng)過此六種形態(tài)學(xué)結(jié)構(gòu)元素閉運算處理后的圖像均有一定的抗噪效果,所以形態(tài)學(xué)圖像處理可在一定程度上抑制噪聲。對此六種結(jié)構(gòu)元素處理后的圖像進行比較后發(fā)現(xiàn),3×3、5×5、5菱形這3種結(jié)構(gòu)元素對圖像的抗噪效果最好,但是對圖像原有特征的改變比較大,出現(xiàn)特征邊緣不準(zhǔn)確的問題;而0110和1001這兩種結(jié)構(gòu)元素對圖像的抗噪效果較差,并且處理后的特征有方向性,不具有普遍性;只有3菱形結(jié)構(gòu)元素處理后的圖像具有一定的抗噪性,而且保留了邊緣的細(xì)節(jié)信息。
形態(tài)學(xué)基本運算包括腐蝕、膨脹、開運算和閉運算,各有其作用和優(yōu)勢,用于軸承缺陷邊緣檢測的效果不同,實驗表明,形態(tài)學(xué)閉運算的處理效果最好。
以麻點圖像的形態(tài)學(xué)3菱形結(jié)構(gòu)元素處理為例,圖3分別給出了腐蝕、膨脹、開運算和閉運算處理后的圖像。
圖3 3菱形不同基本運算處理后的圖像
由圖3可以看出,相比于閉運算處理后的圖像,腐蝕、膨脹和開運算處理的抗噪效果差,而且腐蝕處理后將噪聲點擴大了,膨脹處理后將特征縮小了,所以這3種處理效果都不是很理想,最終選擇閉運算作為本文算法中形態(tài)學(xué)處理的基本運算。
綜上所述,選擇形態(tài)學(xué)3菱形閉運算作為邊緣檢測的前處理,結(jié)合Canny算法作為本文算法進行軸承表面缺陷的邊緣檢測。
用本文算法在Matlab R2018a環(huán)境下對軸承表面的3種主要缺陷(麻點、壓痕和腐蝕)進行處理,并與形態(tài)學(xué)邊緣檢測和Canny算法邊緣檢測進行比較分析,實驗結(jié)果如圖4~圖6所示。
實驗結(jié)果表明了本文算法的可行性和有效性,相比于形態(tài)學(xué)邊緣檢測和Canny算法邊緣檢測處理后的圖像,本文算法不僅加強了抑制噪聲的能力,還準(zhǔn)確地保留了圖像的邊緣特征,同時為接下來的表面缺陷分類識別處理提供了極大便利。
圖4 麻點圖像及邊緣檢測后的圖像
圖5 壓痕圖像及邊緣檢測后的圖像
圖6 腐蝕圖像及邊緣檢測后的圖像