顧愛華,李玟函,王正乾,殷作好,葉凱寧,陳玉
摘? 要:針對金屬表面缺陷檢測中存在的圖像失真、構(gòu)造分類器精確度不高及系統(tǒng)計(jì)算量大的問題,現(xiàn)提出一種高質(zhì)量的基于支持向量機(jī)的金屬表面缺陷檢測方法。采用形態(tài)學(xué)方法對圖像進(jìn)行預(yù)處理,通過融合GLCM與HOG特征提取到的結(jié)果建立較為完備的缺陷模型,便于后期構(gòu)造高精度分類器。最后,利用OTSU算法進(jìn)行閾值分割,通過計(jì)算連通分量個(gè)數(shù)等方法進(jìn)行缺陷分析。相較于一般的缺陷檢測方法,該檢測方法準(zhǔn)確率達(dá)到96.67%,提高了缺陷檢測的效率。
關(guān)鍵詞:缺陷檢測;圖像處理;SVM分類器
中圖分類號:TP391? ? ?文獻(xiàn)標(biāo)識碼:A
A Metal Surface Defect Detection Method based on Support Vector Machine
GU Aihua, LI Wenhan, WANG Zhengqian, YIN Zuohao, YE Kaining, CHEN Yu
(College of Information Engineering, Yancheng Teachers University, Yancheng 224002, China)
guaihua1978@163.com; liwenhan1127@163.com; 2794965946@qq.com;
2693704323@qq.com; 2506331929@qq.com; 7042799@qq.com
Abstract: Aiming at the problems of image distortion in metal surface defect detection, inaccuracy of construction classifier and large amount of system calculation, this paper proposes a high-quality metal surface defect detection method based on support vector machine. Morphological methods are used to preprocess the image, and a relatively complete defect model is established by fusing the results extracted from GLCM (Gray-level Co-occurrence Matrix) and HOG (Histogram of Oriented Gradient) features, which is convenient for constructing a high-precision classifier in the later stage. Finally, OTSU algorithm is used to perform threshold segmentation, and defect analysis is performed by calculating the number of connected components. Compared with general defect detection methods, the proposed detection method improves the efficiency of defect detection and its accuracy rate is as high as 96.67%.
Keywords: defect detection; image processing; SVM (Support Vector Machine) classifier
1? ?引言(Introduction)
在工業(yè)實(shí)際生產(chǎn)中,金屬板質(zhì)量檢測的精確度和速度至關(guān)重要,傳統(tǒng)的人工檢測方法不僅消耗工廠大量的物力、財(cái)力,且檢測結(jié)果帶有強(qiáng)烈的主觀性,并不可靠?,F(xiàn)有的金屬表面缺陷檢測系統(tǒng)在圖像處理時(shí)會使圖像扭曲,造成不同程度的失真,對后期圖像分割和缺陷識別產(chǎn)生較大影響。為解決上述問題,本文提出了一種基于支持向量機(jī)(Support Vector Machine,SVM)的金屬表面缺陷檢測方法。首先,在缺陷圖像預(yù)處理時(shí)采用形態(tài)學(xué)的方法去除基線漂移,改善光照不均,通過融合灰度共生矩陣(GLCM)和方向梯度直方圖(HOG)兩種特征提取的結(jié)果,作為支持向量機(jī)(SVM)分類器訓(xùn)練模型;利用大津法進(jìn)行圖像分割,再通過腐蝕膨脹的方法去除引入雜點(diǎn),最終使捕獲到的缺陷分析準(zhǔn)確率得到提高。
2? ?SVM模型構(gòu)建(SVM model construction)
2.1? ?缺陷圖像預(yù)處理
圖像預(yù)處理是所有數(shù)字圖像處理中的第一個(gè)步驟,也是關(guān)鍵的一步。該步驟處理圖像的好壞直接影響接下來的圖像分割及特征提取的準(zhǔn)確率。傳統(tǒng)的降噪方法包括中值濾波、高斯濾波等算法,但都無法在特定的需求下達(dá)到滿意的效果。在特定的缺陷紋理分析中常用的是Gabor濾波器[1],但考慮到光源的照度不均,采集到的缺陷圖像會有不同程度的曝光,因此本文利用數(shù)學(xué)形態(tài)學(xué)的方法去除圖像中的灰度基線來改善圖像受光不均的問題,同時(shí)濾除金屬表面的各種微小噪聲點(diǎn)。
數(shù)學(xué)形態(tài)學(xué)提供了一種有效的非線性信號處理方法,可以很好地保持信號的幾何信息。本文采用直線型結(jié)構(gòu)元素的數(shù)學(xué)形態(tài)學(xué)濾波器,直線型結(jié)構(gòu)元素的寬度大于心電特征波形的寬度,使得這些特征波形都被濾除,只剩下基線漂移信號,再用原信號減去獲得的基線干擾信號,就可獲得濾除了基線漂移干擾后的心電信號。本文取寬度M=120(特征波形最大寬度×采樣頻率)的處理斑點(diǎn)效果和常用的Gabor濾波處理斑點(diǎn)效果進(jìn)行對比,如圖1至圖3所示。采用數(shù)學(xué)形態(tài)學(xué)的方法另一方面還可以在保持圖像邊緣的情況下實(shí)現(xiàn)圖像的去噪[2],提高后期SVM訓(xùn)練的準(zhǔn)確性。
還有一種是在已知缺陷種類的基礎(chǔ)上,通過觀察法,利用不同缺陷的特性如灰度值、缺陷面積等信息,直接進(jìn)行簡單的缺陷分類。如本文要分辨的缺陷包括軋入氧化皮、斑點(diǎn)與劃痕,對這三者進(jìn)行最簡單的直接差異分析就可直接提取缺陷。以缺陷面積為例,軋入氧化皮面積與斑點(diǎn)和劃痕面積大小相比,面積最小呈現(xiàn)出來的是一個(gè)小斑點(diǎn),而其他兩類缺陷面積都較大?;谶@一點(diǎn)可以快速區(qū)分軋入氧化皮缺陷,算法設(shè)計(jì)為:提取二值化圖像的缺陷邊緣信息,得到邊緣長度,找到最長邊緣與閾值大小進(jìn)行比較,若比閾值大則是斑點(diǎn)或劃痕,若比閾值小則為軋入氧化皮。
該方法可行性看似較高,但閾值的確定較為困難且具有主觀性,對缺陷測試結(jié)果的準(zhǔn)確性有一定的干擾。因此,本文并不提倡該方法。
2.2? ?缺陷圖像特征提取
特征提取是從圖像中獲取所需的特定信息。圖像的特征包括自身的亮度、邊緣、紋理等。提取缺陷特征的方法有兩種,一種是利用特定的簡單缺陷特征直接對缺陷進(jìn)行分類;另一種是利用HOG、LBP、Haar等一般特征提取的算法。一般紋理缺陷的特征提取大都采用HOG算法、LBP算法及GLCM算法[3]。HOG特征能夠描述圖像的邊緣梯度信息,對于發(fā)生幾何和光學(xué)變化具有一定程度的不變性[4]。LBP特征和GLCM特征都是常用的缺陷紋理提取算法,但LBP特征是基于結(jié)構(gòu)的方法,而GLCM特征是基于統(tǒng)計(jì)數(shù)據(jù)的方法。若只采用其中任意一種方法進(jìn)行缺陷特征提取,雖然可以提取到相應(yīng)的特征信息,但是效果并不是很好,容易漏掉某些信息。本文采取GLCM和HOG特征提取融合的方法,用兩種方法進(jìn)行缺陷特征信息提取,以此來保證缺陷信息的完整性,提高后期SVM模型的分類準(zhǔn)確性[5]。
灰度共生矩陣(GLCM)法,就是通過計(jì)算灰度圖像得到它的共生矩陣,然后通過計(jì)算該共生矩陣得到矩陣的部分特征值,代表圖像的某些紋理特征?;叶裙采仃嚹芊从硤D像灰度關(guān)于方向、相鄰間隔、變化幅度等綜合信息,它是分析圖像的局部模式和排列規(guī)則的基礎(chǔ)。算法實(shí)現(xiàn)步驟如下:
(1)灰度級壓縮
為減小灰度共生矩陣的計(jì)算量,在計(jì)算灰度共生矩陣時(shí),首先將圖像灰度級壓縮為16 個(gè)灰度級。進(jìn)行灰度級壓縮時(shí),先將圖片進(jìn)行直方圖均衡化處理,增加灰度值的動(dòng)態(tài)范圍,從而增加影像的整體對比度。
(2)計(jì)算特征值的參數(shù)選擇(表1)
如表1求出四個(gè)方向矩陣的特征值后,可以通過計(jì)算四個(gè)特征值的平均值作為最終特征值共生矩陣。
(3)紋理特征值的計(jì)算與紋理特征影像生成
首先,計(jì)算單個(gè)窗口的灰度共生矩陣。接著,計(jì)算單個(gè)窗口的灰度共生矩陣特征值。求出單個(gè)窗口的灰度共生矩陣特征值后,再對這些特征值進(jìn)行均值計(jì)算和方差計(jì)算。最后,滑動(dòng)窗口。當(dāng)一個(gè)窗口完成特征值計(jì)算后滑動(dòng)到下一個(gè)像素,再一次開始計(jì)算該窗口的共生矩陣的特征值。當(dāng)這一幅圖像上的所有像素點(diǎn)都被遍歷一遍后,此時(shí)的圖像就變成了包含缺陷紋理特征信息的特征矩陣。
方向梯度直方圖(HOG)特征是利用圖像的局部梯度直方圖構(gòu)成缺陷的特征,通常用在計(jì)算機(jī)視覺和數(shù)字圖像處理中,其基本步驟如下:
(1)檢測圖像梯度
圖像梯度包括橫向梯度和縱向梯度。計(jì)算圖像所有像素不同方向上的梯度的常用方法為利用[-1,0,1]梯度算子對原圖像做卷積運(yùn)算,得到x方向的梯度分量;然后用[1,0,-1]T梯度算子對原圖像做卷積運(yùn)算,得到y(tǒng)方向的梯度分量;最后再計(jì)算像素點(diǎn)的梯度方向[6]。
(1)
(2)
(3)
(2)為每個(gè)細(xì)胞單元構(gòu)建梯度方向直方圖
首先將圖像分成若干個(gè)單元格即cell,將cell的梯度方向需求分成若干個(gè)方向塊即bins;然后對每個(gè)單元格內(nèi)的像素投影到直方圖中加權(quán)計(jì)算,即可得到每個(gè)細(xì)胞單元的梯度直方圖。
(3)把細(xì)胞單元組合成塊,塊內(nèi)歸一化梯度直方圖
因?yàn)閳D像的前景、背景在不均勻的光照范圍下對比度的數(shù)值跨度非常大,所以就需要對梯度強(qiáng)度做歸一化處理。歸一化處理能夠進(jìn)一步對光照、陰影及邊緣進(jìn)行壓縮,把對比度值的范圍投影到合適的范圍內(nèi)。
(4)獲取HOG特征
最后一步就是將檢測窗口中所有重疊的塊進(jìn)行HOG特征的收集,并將它們結(jié)合成最終的特征向量供分類使用。
針對金屬表面缺陷的結(jié)構(gòu)特征和局部紋理特征,提取其HOG特征和GLCM特征并將二者進(jìn)行融合。
2.3? ?構(gòu)造SVM分類器
本文的樣本數(shù)量在800 個(gè)左右。由于樣本數(shù)量較少,選用支持向量機(jī)(SVM)算法得到的效果比其他分類學(xué)習(xí)的效果要好得多,故本文選擇利用SVM算法進(jìn)行監(jiān)督學(xué)習(xí),構(gòu)造分類器[7]。構(gòu)造SVM分類器就是先給一部分?jǐn)?shù)據(jù)打上類別標(biāo)簽,讓SVM模型使用這些打了類別標(biāo)簽的數(shù)據(jù)進(jìn)行訓(xùn)練,然后給訓(xùn)練好的SVM模型新的無類別標(biāo)簽的數(shù)據(jù),SVM模型就可以自動(dòng)對這些新的數(shù)據(jù)進(jìn)行分類。其原理是在多種不同類型的樣本之間尋找一個(gè)超平面作為樣本之間的分割面,從而達(dá)到精準(zhǔn)分類。
用融合后的特征作為樣本訓(xùn)練SVM分類器,用訓(xùn)練后的模型識別測試圖像。當(dāng)圖像對比度較低,同時(shí)形態(tài)學(xué)與處理時(shí)的結(jié)構(gòu)元素選取相對于缺陷的寬度而言較小,此時(shí)不能正確地增強(qiáng)缺陷區(qū)域,其分類可能會出現(xiàn)誤差。通過計(jì)算測試圖像的分類結(jié)果,本文提出的分類器對于測試圖像總體分類準(zhǔn)確性達(dá)到96.67%以上。采用單一的HOG特征作為訓(xùn)練樣本,或使用簡單缺陷特征提取作為SVM分類器的訓(xùn)練樣本,與經(jīng)過GLCM和HOG特征提取做出的SVM分類器分類效果對比如表2所示。
由表2可知,單一使用HOG特征作為SVM訓(xùn)練樣本準(zhǔn)確率偏低,而結(jié)合了GLCM特征以后的SVM分類器準(zhǔn)確率提高了19.47%,相比于利用簡單缺陷特征制作的分類器準(zhǔn)確率提高了3.37%。
3? ?缺陷分析與檢測(Defect analysis and detection)
3.1? ?閾值分割
圖像分割是圖像處理中不可避免的步驟之一,是進(jìn)一步進(jìn)行圖像分析的基礎(chǔ)。圖像分割的目的是對圖像進(jìn)行標(biāo)記,以分割的每一小塊為單元,對同一單元內(nèi)的像素賦予相同標(biāo)記,不同單元內(nèi)的像素標(biāo)記不同,為后期圖像分析提供了方便。
測試圖像分割是利用圖像預(yù)處理后的圖像進(jìn)行分割。在圖像預(yù)處理中,本文對比了Gabor濾波和數(shù)學(xué)形態(tài)學(xué)方法的預(yù)處理效果。在閾值分割中,使用形態(tài)學(xué)預(yù)處理的大津法(OTSU)分割結(jié)果比基于Gabor濾波預(yù)處理的分割結(jié)果也要好得多。形態(tài)學(xué)預(yù)處理后得出的分割結(jié)果更準(zhǔn)確,更加接近原始圖像的缺陷區(qū)域,如圖4和圖5所示,原始圖像如圖1所示。
大津法圖像分割是按照圖像的灰度特性,將圖像分成背景和目標(biāo)兩部分。背景和目標(biāo)之間類間方差越大,說明分割錯(cuò)分概率越小。為了滿足小錯(cuò)分概率要求,在進(jìn)行大津法分割之前,要先對預(yù)處理后的圖像利用形態(tài)學(xué)的方法進(jìn)行波谷檢測,以保證大津法閾值分割的結(jié)果更加準(zhǔn)確。而對于不同的缺陷類型,其波谷檢測方法也不同。
由觀察可知,軋入氧化皮缺陷和斑點(diǎn)缺陷所在的位置是圖像中較暗的狹小區(qū)域,于是可直接利用數(shù)學(xué)形態(tài)法對預(yù)處理后的圖像進(jìn)行波谷提取。而劃痕缺陷區(qū)域較亮,可以看作波峰,因此要先進(jìn)行圖像的灰度反轉(zhuǎn),將較亮的波峰變成較暗的波谷,然后再進(jìn)行波谷提取。之后就可利用大津法進(jìn)行圖像分割,將閾值從0開始一直逐次增大到255,按閾值將圖像分為背景(0)與前景(1)。對于每個(gè)閾值T(0≤T≤255),計(jì)算背景和前景像素點(diǎn)的灰度均值u0、u1和各占總像素點(diǎn)的比例w0、w1。計(jì)算全部像素點(diǎn)的灰度均值如下:
(4)
計(jì)算此時(shí)二值圖的類間方差為:
(5)
選擇使類間方差最大的閾值T(0≤T≤255),此時(shí)的閾值即為所求的最佳閾值。軋入氧化皮缺陷的原始圖像和分割處理后的結(jié)果如圖6和圖7所示。
大津法分割圖像雖然很好地保存了圖像的缺陷信息,但會引入一些雜點(diǎn)。因此還需對分割后的圖像進(jìn)行先腐蝕再膨脹的開運(yùn)算操作,從而去除大津法分割帶來的噪聲點(diǎn)。軋入氧化皮缺陷分割后含有雜點(diǎn)和去除雜點(diǎn)的效果如圖8和圖9所示。
3.2? ?缺陷分析
對于軋入氧化皮缺陷和斑點(diǎn)缺陷,利用圖像分割的結(jié)果作為存在缺陷的目標(biāo)區(qū)域,構(gòu)造檢測缺陷區(qū)域的函數(shù),計(jì)算缺陷中心點(diǎn)坐標(biāo)作為軋入氧化皮缺陷的位置信息,如圖10所示;繪制缺陷區(qū)域邊緣曲線的函數(shù)作為斑點(diǎn)缺陷的位置信息,如圖11所示。通過計(jì)算軋入氧化皮缺陷和斑點(diǎn)缺陷圖像分割后的提取連通分量個(gè)數(shù),作為對應(yīng)缺陷的個(gè)數(shù)信息。
對于劃痕缺陷,為避免有的劃痕較寬,則先利用細(xì)化操作降低檢測誤差,細(xì)化前和經(jīng)過5 次細(xì)化操作的效果如圖12和圖13所示,再利用霍夫變換確定劃痕缺陷的位置信息。
利用霍夫變換直線檢測算法提取直線成分[8]。其大體思路如下:
對過點(diǎn)的直線建立坐標(biāo)系,該直線在坐標(biāo)系下的表達(dá)式為:
(6)
如果檢測出參數(shù)a、b均相等的直線系,那么則相當(dāng)于檢測出了直線。當(dāng)出現(xiàn)斜率a無窮大時(shí),可以放在極坐標(biāo)系中,過點(diǎn)的表達(dá)式則變?yōu)椋?/p>
(7)
如果檢測出參數(shù)均相等的直線系,那么則相當(dāng)于檢測出了直線。極坐標(biāo)系下適用所有斜率的直線。因?yàn)閯澓鄄灰欢ㄊ侵本€,有可能略帶彎曲或者被分為多段短線(圖14)。為解決彎曲和多段的問題,以橫線為例,先剔除那些過短的線;再計(jì)算所有檢測直線與y軸的夾角,若夾角大于某個(gè)閾值則是橫線;計(jì)算每根線中點(diǎn)的坐標(biāo),將直線按中點(diǎn)y坐標(biāo)由小到大的順序排序,將檢測到的第一根線作為直線累計(jì)初始狀態(tài),對所有直線進(jìn)行遍歷。接著判斷相鄰兩直線的y坐標(biāo)之差是否小于某閾值,若小于,則認(rèn)為該直線與之前的累計(jì)直線屬于同一根劃痕,并繼續(xù)進(jìn)行累加;若y坐標(biāo)之差大于某閾值,則認(rèn)為該直線與下一個(gè)直線分屬于不同的劃痕,則計(jì)算前面類間直線端點(diǎn)坐標(biāo)的最大值與最小值作為劃痕的端點(diǎn),求其長度并畫圖(圖15),同時(shí)將累計(jì)的直線清零,重復(fù)上述操作。
4? ?結(jié)論(Conclusion)
本文提出了金屬表面缺陷檢測算法,本算法在小樣本的情況下,通過去除基線漂移改善光照不均,以及融合灰度共生矩陣和方法梯度直方圖兩種特征,提高了圖像特征檢測的精確度,從而保證了支持向量機(jī)分類器的準(zhǔn)確性。在圖像預(yù)處理階段,本算法依據(jù)現(xiàn)實(shí)存在的光照不均情況采用數(shù)學(xué)形態(tài)學(xué)的方法,通過去除基線漂移改善由照度不均引起的背景中的亮度變化,同時(shí)也可以濾除金屬表面的各種微小噪聲點(diǎn)。在圖像分割時(shí),采用了GLCM和HOG特征提取的方法,將二者融合后的特征信息作為接下來的SVM訓(xùn)練模型,經(jīng)實(shí)驗(yàn)發(fā)現(xiàn)二者融合訓(xùn)練出來的分類器比只經(jīng)過HOG特征訓(xùn)練的分類器精確度提高了19.47%。為了進(jìn)一步提高缺陷檢測的準(zhǔn)確性,在圖像閾值分割階段,本算法在OTSU算法分割后的圖像上再利用形態(tài)學(xué)腐蝕膨脹的方法去除噪聲點(diǎn),為接下來的缺陷分析提供良好的分析環(huán)境。最終檢測到的缺陷位置、大小等信息結(jié)果更為準(zhǔn)確,誤差較小,因此本文提出的算法在工業(yè)缺陷分析與檢測中具有實(shí)際的應(yīng)用價(jià)值。
參考文獻(xiàn)(References)
[1] LIU I Y, CHEUNG C F, SENIN N, et al, On-machine surface defect detection using light scattering and deep learning[J]. Journal of the Optical Society of America, 2020, 37(9):53-59.
[2] LIU M, CHI F C, FENG X, et al. Diamond machining of freeform-patterned surfaces on precision rollers[J]. International Journal of Advanced Manufacturing Technology, 2019, 103(3):4423-4431.
[3] COHN R, HOLM E. Unsupervised machine learning via transfer learning and k-means clustering to classify materials image data[J]. Integrating Materials and Manufacturing Innovation, 2021, 10(1):1-14.
[4] 占善華.一種新的特征融合人臉分類方法[J].電子世界,2020(20):100-101,104.
[5] 趙若晴,王慧琴,王可,等.基于HOG和GLCM混合特征的青銅器金文圖像識別[J/OL].激光與光電子學(xué)進(jìn)展,2020,57(12):1-13.[2021-05-13]. https://kns.cnki.net/kcms/detail/31.1690.TN.20191106.1202.040.html.
[6] 劉吉偉.面向水下魚監(jiān)控的視覺跟蹤技術(shù)[D].大連:大連工業(yè)大學(xué),2019.
[7] 尚暉.基于改進(jìn)SVM的互聯(lián)網(wǎng)用戶分類[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2021,30(04):266-270.
[8] 馮凱,王琦,于水源.基于合并短線段的直線檢測方法[J].軟件導(dǎo)刊,2021,20(04):220-225.
作者簡介:
顧愛華(1978-),男,博士,高級實(shí)驗(yàn)師.研究領(lǐng)域:機(jī)器學(xué)習(xí),軟件工程與復(fù)雜網(wǎng)絡(luò).
李玟函(1997-),女,本科生.研究領(lǐng)域:數(shù)字媒體技術(shù).
王正乾(2001-),男,本科生.研究領(lǐng)域:機(jī)器學(xué)習(xí),軟件工程.
殷作好(2000-),男,本科生.研究領(lǐng)域:機(jī)器學(xué)習(xí),軟件工程.
葉凱寧(2000-),男,本科生.研究領(lǐng)域:機(jī)器學(xué)習(xí),軟件工程.
陳? 玉(1977-),男,博士,副教授.研究領(lǐng)域:深度學(xué)習(xí),數(shù)字圖像處理.