李 蘭,奚舒舒,張才寶,馬鴻洋
(1.青島理工大學 信息與控制工程學院,山東 青島 266000;2.青島理工大學 理學院,山東 青島 266000)
隨著現(xiàn)代工業(yè)的進步與發(fā)展,各類工件在機械制造業(yè)中的使用頻率也越來越高。在機械工件的生產(chǎn)過程中,由于刀具種類或者操作的影響,在工件表面會形成各種不同的缺陷,嚴重影響工件質量和機械設備性能,所以表面缺陷檢測是控制工件質量的重要環(huán)節(jié)[1,2]。
傳統(tǒng)的人工缺陷檢測存在采樣率和準確率低、勞動強度高的缺點。隨著機器視覺和目標檢測技術的進步,基于傳統(tǒng)的機器學習技術被廣泛應用于缺陷檢測并逐漸取代了傳統(tǒng)的人工檢測[3]。如Jeon等[4]利用Gabor濾波器將基于直方圖和梯度的紋理特征輸入到支持向量機中,對工件表面進行了刮痕檢測。雖然基于傳統(tǒng)機器視覺的檢測方法在很多方面取得了較好的結果,但是需要特定的預處理方法來利用專業(yè)知識提取具有代表性的特征。
為了適應現(xiàn)代工業(yè)的進步,越來越多的研究者開始研究基于深度學習的缺陷檢測方法。前期的深度學習方法主要是以R-CNN[5]為基礎,隨后相繼出現(xiàn)Fast-RCNN[6]、Faster-RCNN[7]、Mask-RCNN[8]等網(wǎng)絡模型,但上述這些兩階段網(wǎng)絡存在模型過于龐大的情況。為了解決該問題,2016年LIU Wei等人[9]提出了SSD多尺度特征圖的目標檢測網(wǎng)絡,在YOLO[10,11]的基礎上進一步提高了檢測精度;2017年,F(xiàn)U C Y等人[12]以SSD模型為基礎提出了DSSD(deconvolutional single shot detector)模型,進一步提高了檢測速度和效率,為實際檢測[13]提供了新的方法。
針對工件表面缺陷檢測問題,LI Yi-ting等[11]采用MobileNet-SSD框架檢測了密封面的缺口、凹陷、磨損等缺陷;趙君愛等人[15]提出了一種基于像元搜索算法的微小缺陷檢測方法,但該方法檢測速度較慢,并且不適合數(shù)據(jù)集龐大的缺陷檢測。
為了更精確、高效地檢測工件表面缺陷,筆者提出一種基于DSSD網(wǎng)絡模型的工件表面缺陷檢測方法,該方法首先利用掃描電子顯微鏡(scanning electron microscope,SEM)采集不同零件、不同部位的缺陷圖像,并制作數(shù)據(jù)集;然后通過優(yōu)化數(shù)據(jù)集和訓練改進后的DSSD網(wǎng)絡模型來完成工件表面缺陷檢測。
SSD(single shot multibox detector)模型主要由基礎網(wǎng)絡VGG16和后續(xù)卷積層兩部分組成。該模型主要運用回歸思想并加入了特征金字塔[16,17]的檢測方式;通過綜合不同卷積層的特征圖,然后直接預測邊界框的種類和位置,所以該目標檢測模型準確率較高,檢測速度較快,可實現(xiàn)實時檢測。
SSD模型雖然檢測速度較快,但是在檢測目標較小時,檢測效果較差。為了解決SSD模型的不足,DSSD模型在SSD模型的基礎上進行了改進。
DSSD模型結構圖如圖1所示。
圖1 DSSD模型結構圖
圖1中,DSSD模型將SSD模型的基礎網(wǎng)絡VGG16替換為分類性能較好的Residual101網(wǎng)絡,其中,Residual101的Conv3_x卷積層與其后的一系列逐漸變小的卷積層(5層),共同構成DSSD模型的特征層;特征層和其后的5層反卷積網(wǎng)絡層構成反卷積模塊;DSSD模型在反卷積層上還加入了一個新的預測模塊。
1.2.1 反卷積模塊
為了得到更多的檢測信息,DSSD模型引入了訓練好的反卷積層組成了反卷積模塊,反卷積模塊結構圖如圖2所示。
圖2 反卷積模塊結構圖
圖2中,每個卷積層之后添加歸一化層,激活函數(shù)采用ReLu6;高低層的特征信息利用基于元素點積的形式,在反卷積模塊中得到了融合。
1.2.2 預測模塊
DSSD模型在特征層和反卷積層又加入預測模塊,進一步提高了模型的精確度。
預測模塊結構圖如圖3所示。
圖3 預測模塊結構圖
圖3中,DSSD在SSD模型的預測模塊基礎上加入了一個殘差單元的網(wǎng)絡結構,有效地提高了工件的檢測精度。
DSSD模型的反卷積模塊雖然提高了信息的利用率,提高了檢測速度,但是在網(wǎng)絡層增加的同時,算法的計算復雜度也相應增加,因此降低了模型對實驗數(shù)據(jù)集的檢測速度。
本次實驗采用優(yōu)化后的DSSD模型[18],在保證檢測精度的同時降低了計算量。該實驗DSSD模型如圖4所示。
圖4 該實驗DSSD模型
在圖4中,對DSSD的反卷積模塊進行了優(yōu)化,將反卷積網(wǎng)絡層由原本的5層改為3層,從而縮減了計算量;使每個特征層都參與融合操作,融合后得到的3幅不同大小的特征圖與另外3幅未融合特征圖一起,輸入到預測模塊中進行預測。
DSSD模型對目標位置和種類同時進行回歸訓練,總體目標損失函數(shù)為位置損失和置信度損失的加權和如下式所示:
(1)
式中:α—平衡置信損失和位置損失;c—分類置信度;l—預測框的偏移量;g—目標實際位置的校準框;N—與該類別的校準框匹配的默認框數(shù)量。
位置損失函數(shù)定義如下式所示:
(2)
其中:
(3)
置信損失函數(shù)的定義如下式所示:
(4)
由于目前工件缺陷的公開數(shù)據(jù)集較少,本次實驗采用自制數(shù)據(jù)集;圖像采集工作與青島理工大學機械學院合作完成。
采集環(huán)境如圖5所示。
圖5 采集環(huán)境
首先利用掃描電子顯微鏡對不同工件、不同角度進行掃描,然后針對碎屑、剝落、梨溝3類缺陷,共采集圖像4 810幅。
為了使數(shù)據(jù)集和檢測結果更具有代表性,針對自制數(shù)據(jù)集不夠大的問題,筆者將采集的缺陷圖像按表進行數(shù)據(jù)擴充。
數(shù)據(jù)擴充實現(xiàn)方法如表1所示。
表1 數(shù)據(jù)擴充實現(xiàn)方法
本文將數(shù)據(jù)擴充后的數(shù)據(jù)集80%作為訓練集,20%作為測試集;然后利用Labellmg軟件進行標注,壓縮為300 300的圖像,作為訓練模型的輸入。
DSSD網(wǎng)絡模型在訓練過程中會產(chǎn)生一系列邊界框集合,通過設置閾值(本次實驗設置為0.6)并利用非極大值抑制算法[19]消除舍棄的低于閾值的檢測框;訓練過程中會產(chǎn)生損失量,損失量的多少利用損失函數(shù)來計算。
損失函數(shù)訓練圖像如圖6所示。
圖6 損失函數(shù)訓練圖像
在模型訓練過程中,當損失函數(shù)值的變化率小于閾值時,將學習率降低到原來的0.1倍。因此,筆者設置前2104次迭代學習率為10-3,后2104次迭代使用學習率10-4;經(jīng)過3.8104次迭代后,損失值趨于穩(wěn)定,DSSD模型達到收斂。
為了證明方法的有效性,本次實驗選取了數(shù)據(jù)集中部分圖像,檢測結果圖如圖7所示。
圖7 檢測結果圖
從檢測圖中可以看出,3種缺陷都能被檢測到,且正確率較高。由此可見,本文所有的DSSD模型在該數(shù)據(jù)集上的檢測效果較好,具有良好的穩(wěn)定性。
任選一種缺陷為例(本次實驗以碎屑為例),利用4種模型對數(shù)據(jù)集中的缺陷進行檢測,檢測結果對比圖如圖8所示。
圖8 檢測結果對比圖
從圖8的檢測圖可知,本文所用DSSD模型的檢測精度比較高,并且檢測框所在的區(qū)域相比于缺陷區(qū)域較為吻合。
本次實驗利用精確度、平均準確率和平均準確率均值3種常用參數(shù)來評估模型的性能。其中,精確度(Precision)是指在被判斷為準確的圖像中,真正判斷準確的缺陷類型的比例,其計算公式如下式所示:
(5)
平均準確率(average precision)是指精確度的平均值,反映了每種缺陷的平均檢測精度,其計算公式如下式所示:
(6)
平均準確率均值(mean average precision)表示了3種類別缺陷的平均準確度,反映了該模型對整個數(shù)據(jù)集的檢測效果,其計算公式如下式所示:
(7)
本文利用訓練好的網(wǎng)絡對測試集進行檢測,每種缺陷樣本都有30張不同的圖像。
經(jīng)過訓練的檢測網(wǎng)絡對3種缺陷樣本的檢測精確度結果如表2所示。
表2 3種缺陷檢測精確度表
從表2檢測結果可以看出,在3種缺陷中,碎屑的檢測精確度最高,成功檢測數(shù)量和遺漏數(shù)明顯低于其他兩種;剝落和梨溝兩類缺陷都仍存在少數(shù)遺漏和錯檢的情況。從總體來看,DSSD模型對這3種缺陷的檢測精度較高,達到84.4%。
在相同的迭代步數(shù)下,本文將DSSD模型與Faster-RCNN、SSD和YOLO 3種模型進行值比較,4種模型的值檢測結果如圖9所示。
圖9表明:DSSD模型的值高于Faster R-CNN、SSD和YOLO模型;該結果也進一步驗證了筆者所用的模型在工件表面缺陷檢測中具有更好的效果。
同樣,在相同訓練步數(shù)和相同訓練集的前提下,將本文所用模型與Faster-RCNN、SSD和YOLO模型在和平均檢測時間上進行了對比,缺陷檢測方法對比實驗表如表3所示。
表3 缺陷檢測方法對比試驗表
從表3可以看出:本文所用模型的是79.12%,F(xiàn)aster R-CNN模型的是67.07%,YOLO模型的是72.44%,SSD模型的是67.62%;該結果表明,本文所用的方法其平均準確率均值比基于Faster R-CNN模型、YOLO模型和SSD模型的平均準確率均值都高;
從檢測速度分析,本文模型的平均檢測時間是0.132 s,低于其他3種檢測算法,表明本文方法要比Faster R-CNN模型、SSD模型和YOLO模型更節(jié)約時間。
為了提高機械工件缺陷的檢測效率,從而提高工件利用率,本文首先利用掃描電子顯微鏡得到機械工件表面的掃描圖像,通過數(shù)據(jù)增強擴充了數(shù)據(jù),提高了算法的魯棒性;然后針對3種高頻缺陷(碎屑、剝落和梨溝)提出了基于DSSD網(wǎng)絡模型的工件表面缺陷檢測方法。
通過實驗證明,本文提出的方法在工件缺陷檢測上平均精度達到79.12%,高于相同條件下的Faster R-CNN、YOLO和SSD方法。
該方法利用深度卷積特征,有效避免了傳統(tǒng)目標檢測模型對手工特征的依賴問題;通過簡化DSSD模型的反卷積模塊,在保證特征信息被檢測的同時縮減了計算量,從而提高了檢測精度和速度。然而,該訓練網(wǎng)絡并不是非常完善,進一步提高精確度是筆者后期需要研究的方向。