李冬偉,丁力,梁棟
(江蘇理工學院 機械工程學院,江蘇 常州 213001)
紐扣電池是一種常用的電路元件,因其體積偏小且具有較好的經濟適用性被廣泛應用于微型電子產品中。在生產加工過程中,因工藝限制或操作失誤,紐扣電池表面難免會出現劃痕、凹坑等缺陷[1-2]。這些損傷除了會降低產品質量外,還有可能造成安全隱患。因此企業必須對紐扣電池的表面進行缺陷檢測[3]。經調研,目前普遍的檢測方式為人工檢測,即依靠肉眼過濾出不合格產品。這種方法不僅受質檢員主觀因素的影響較大,也可能對其視力造成永久性損害。因此,提出一種檢測準確率和速度滿足需求的紐扣電池表面缺陷檢測方法具有重要的意義。
為解決上述問題,學者們將傳統機器視覺圖像處理技術引入至缺陷檢測領域,其優勢在于圖像區域處理速度快和匹配檢測精度高。例如,KONG Q M等[4]根據螺栓的尺寸和形狀特征,提出基于改進模板匹配算法的外螺紋表面缺陷檢測方法,檢測準確率為96.15%。但該方法對硬件要求較高且易受光照條件、螺栓邊緣提取程度等因素影響,檢測速率不高。隨著人工智能技術和計算機視覺算法的普及,目標檢測算法逐漸取代了傳統機器視覺在缺陷檢測領域的地位。當前,深度學習目標檢測算法[5]主要分為兩類,一類是以SSD[6]、YOLO[7]為代表的one-stage算法;另一類則是以Mask R-CNN[8]、Faster R-CNN[9]為主的two-stage算法。在檢測準確度相同的情況下,由于one-stage算法具有檢測速度快、硬件依賴度低等優勢,因此被廣泛應用于檢測行業。近年來,得益于算法通用性強和背景誤檢率低的優點,YOLO及其改進算法受到市場的青睞。例如,南虎等[10]制作高質量的原子圖像數據集,使用YOLOv3實現了原子峰的位置檢測,檢測速率相比于高斯擬合等方法有了顯著提升。王宸等[11]提出一種改進YOLOv3的輪轂焊縫缺陷檢測方法,利用數據增強法擴充數據集,檢測準確率達到了99.29%,檢測速率滿足企業生產線的節拍要求。JU M等[12]為進一步提高網絡的檢測性能,擴展YOLOv3的特征圖層至4層,提高了小目標的檢測能力。在YOLO系列算法中,優秀聚類算法不僅可以提高模型訓練速度,而且能夠提高缺陷檢測準確率和模型泛化性。例如,XU Y M等[13]改進YOLOv3模型,采用K-means++聚類算法選取初始聚類中心,使缺陷平均檢測準確率提高了3.02%。NING Z等[14]提出一種改進YOLOv3的帶鋼表面缺陷檢測算法,其使用K-means++聚類算法進行聚類分析,使缺陷檢測準確率達到了89.5%。
受上述分析啟發,本文提出了一種改進YOLOv3的紐扣電池表面缺陷檢測方法,即先聯合HALCON軟件和圖像采集系統完成圖像預處理和數據集預處理;然后引入K-means++聚類算法,優化YOLOv3網絡結構;最后訓練模型并進行檢測實驗。
為避免因圖像質量問題影響缺陷檢測準確率,本文設計了基于HALCON的圖像預處理方案,具體的預處理流程如圖1所示,其中包括圖像采集、圖像灰度化、圖像濾波、Blob分析及結果輸出。

圖1 圖像預處理流程
由于缺陷位置不固定,并且在不同光源角度下的成像效果差異較大,故僅在同一光源角度下連續拍攝圖片無法完成圖像采集任務。為此,本文搭建了如圖2所示的圖像采集系統,該系統由計算機、光電傳感器、傳輸裝置、支架、MV-CE050-30 UC型CMOS傳感器工業面陣相機、MVL-HF1228 M-6 MPE型變焦鏡頭、24 V電源適配器和白色同軸光源構成。為確保能夠采集到可用的圖像,本文通過可編程邏輯控制器和光電傳感器提供拍攝信號。當紐扣電池樣本被傳輸至指定位置時,工業相機間隔50 mm拍攝3張圖片,完成圖像采集工作。

圖2 圖像采集系統
為了使用更少的數據信息體現樣本的特征,同時提高圖像預處理和缺陷檢測的速度,需要對圖像進行灰度化處理。常用的圖像灰度化方法有3種,分別是平均值法、最大值法和加權平均值法[15]。本文在這里選用加權平均值法對圖像進行灰度化處理,即
Igrey(i,j)=0.299R(i,j)+0.587G(i,j)+0.114B(i,j)
(1)
式中:Igrey(i,j)為灰度圖像中像素點的灰度值;R(i,j)為彩色圖像中像素點紅色量;G(i,j)為彩色圖像中像素點綠色量;B(i,j)為彩色圖像中像素點藍色量。
受拍攝環境和圖像采集系統自身傳感元件的影響,圖像在采集過程中會夾雜噪聲,導致圖片成像質量不高,因此在圖像灰度化處理后必須進行濾波消噪[16]??紤]到圖像中缺陷尺寸較小,同時為了盡可能保留其總體灰度特征,本文在這里選用尺寸為3×3的高斯濾波器。如圖3所示,經過高斯濾波處理,缺陷區域得到了增強。

圖3 高斯濾波處理結果對比
高斯濾波雖然去除了硬件對圖片成像的影響,但圖像背景和無關區域亦會對缺陷檢測造成干擾。為提高缺陷檢測的準確率,本文在這里采用機器視覺中常用的Blob分析[17]提取紐扣電池的特征,剔除圖像中的干擾項和無關項,其處理結果如圖4所示。

圖4 Blob分析處理結果
實現紐扣電池表面缺陷檢測的基礎是進行數據集預處理。首先,收集盡可能多的紐扣電池表面缺陷圖像;然后,針對圖像收集情況批量進行數據增強處理;最后,標注圖像中的缺陷參數,生成標簽文件。
為了使檢測結果更加準確,本文所用的紐扣電池皆來源于某紐扣電池生產企業。經第1節所述的圖像預處理環節后共收集到2 100張紐扣電池表面缺陷圖像,分辨率為416×416。該企業生產的紐扣電池主要包含兩種類型的缺陷,分別是劃痕和凹坑,圖像樣本如圖5所示。

圖5 表面缺陷圖像樣本
由于檢測模型需要進行大量圖像訓練來降低偏差,避免出現過擬合現象,因此需要對圖像進行增強處理以獲取充足的數據。針對收集到的圖像依次隨機進行水平翻轉和豎直翻轉變換,并將變換后的圖像加入訓練集,變換后的圖像如圖6所示。經上述數據增強處理后共獲取4 200張數據集圖像,將其以7∶2∶1的比例劃分為訓練集、測試集和驗證集,其中每張圖像至少包含一種缺陷。

圖6 數據增強處理
模型訓練前需要標注圖像中的缺陷類型,本文使用開源標注軟件LabelImg對數據集圖像進行標注。缺陷標注分為兩類,分別是劃痕類缺陷,標簽為scratch;凹坑類缺陷,標簽為fossette。標注流程如圖7所示。首先在LabelImg中框選出缺陷區域,獲取對應的坐標位置信息;然后注明對應標簽;最后生成后綴為xml的標簽文件,使文件名稱和圖像名稱保持一致。通過標注軟件LabelImg生成的標簽文件中,包含圖像所屬路徑、圖像像素尺寸、缺陷標簽類型以及缺陷邊界框的位置信息。

圖7 缺陷區域標注
YOLOv3是一種根據YOLOv2[18]改進而成的端到端的目標檢測算法,被廣泛運用于視頻識別、圖像辨識和實時檢測領域。但其在缺陷檢測方面依然存在檢測準確率不足的問題,故本文以原始YOLOv3為基礎,加入K-Means++聚類算法[19],優化其網絡結構,增強了算法的缺陷檢測能力。
原始YOLOv3采用經典的K-means聚類算法對數據集圖像進行維度聚類分析進而獲取先驗框(anchor box)。雖然此算法能夠取得一定的聚類效果,但其局限性在于K-means聚類算法會隨機選取初始聚類中心,導致聚類效果差異較大。因此,選擇合理的初始聚類中心顯得十分重要。
針對K-means聚類算法[20]隨機選取初始聚類中心的弊病,本文采用K-means++聚類算法進行優化。K-means++聚類算法可以使不同的聚類中心分布在距離相差較遠的位置,能夠降低簇間的相似度,提高算法的聚類準確率和收斂速度。該算法首先會篩選出一個樣本作為初始聚類中心O1,接著計算每個樣本到當前聚類中心間的最短距離,依次計算每個樣本成為聚類中心的概率,然后按照概率選取聚類中心,概率計算公式如下:
(2)
式中:p為概率;D(x)為每個樣本到當前聚類中心的最短距離。重復計算剩余樣本成為下一個聚類中心的概率,直至選出所有的聚類中心。再針對聚類中心以外的樣本,將它們劃分至距離最短的聚類中心所對應的簇中。最后針對每個簇,重復計算其聚類中心坐標,直至聚類中心位置不再變化,最終篩選出K個初始聚類中心。
K-means++聚類算法能夠從樣本中發現顯著的規律和集群,以相似度為標準將特征相似或相同的樣本劃分至同一類別。該方法極大地減小了K值對聚類效果的影響,有效解決了K-means聚類算法缺陷帶來的問題。
原始YOLOv3主要依靠3種不同尺度的特征圖層實現目標檢測,但紐扣電池表面缺陷的尺寸較小,而YOLOv3在檢測中對小目標缺陷不敏感。因此,需要針對YOLOv3的網絡結構進行改進,提高其檢測準確率。
本文的改進方法是將Darknet-53主干網絡中第2個殘差塊的淺層輸出與2次采集后的網絡深層輸出融合,再經過卷積層(conv)構成一個新的特征圖層。新的特征圖層不僅繼承了Darknet-53輸出的深層特征,也充分利用了網絡淺層特征,模型的特征提取能力得到加強。不同尺度的特征圖層將圖像劃分為不同數量的網格,新的特征圖層尺寸是數據集圖像尺寸的1/4。它將圖像劃分至104×104個網格,網格尺寸僅為4×4,網格尺寸越小意味著對小目標缺陷越敏感。改進后的網絡結構如圖8所示,含有n個殘差單元的殘差塊用res×n[21]表示,每個殘差單元包含一個快捷鏈路與兩個DBL結構。DBL結構由批歸一化層(BN)、卷積層(conv)和激活函數(leaky relu)構成。conv是指卷積核為1×1的卷積層。Concat是指張量拼接環節,用于擴充張量維度。維數D表示特征圖層中每個網格包含的信息數量,其公式如下:
D=E×(F+G+H)
(3)
式中:E為網格先驗框的數量;F為邊框坐標信息;G為邊框置信度;H為檢測對象的類別數量。圖8中虛線框內即為新增的特征圖層。

圖8 改進后的網絡結構
優化后的網絡結構將擁有4個特征圖層,每個特征圖層依然擁有3個先驗框,使先驗框總數增加至12個。圖像中先驗框數量的增加能夠增大檢測密度,降低缺陷誤檢和漏檢的概率。疊加的特征圖層可以更好地劃分缺陷的尺寸層次,強化網絡對不同尺寸缺陷的綜合檢測能力。
實驗硬件環境為Intel(R) Core(TM) i7-10870 H CPU @ 2.20 GHz CPU,內存16 GB;GPU為NVIDIA GeForce RTX 2070,顯存8 GB。軟件環境為Windows10操作系統,Anaconda環境管理器。運行環境為Python3.6,TensorFlow1.14和Keras2.1.5。編譯環境為PyCharm,利用CUDA10.0和CUDNN7.6.5加速GPU運算。
本文選擇缺陷檢測中常用的性能評價標準對本次實驗進行分析,模型性能評價標準包括準確率P(precision)、召回率R(recall)、表面缺陷精度均值AP(average precision)、表面缺陷平均精度均值mAP(mean average precision)和檢測速度F。P、R、AP和mAP計算公式如下:
(4)
(5)

(6)
(7)
式中:TP為真正例;FP為假正例;FN為假反例;AP(i)為第i類缺陷的精度均值;n為檢測類型數量。
模型訓練采用隨機梯度下降法,動量因子為0.9。圖像輸入尺寸為416×416,顏色通道數為1。為防止過擬合現象發生,權重衰減系數設定為0.000 5。初始學習率為0.001,最終學習率為0.000 001,學習率衰減策略為steps。采用K-means++聚類算法進行維度聚類分析獲取的聚類準確度(accuracy)為91.54%。為防止計算機因顯卡內存容量不足而崩潰,每批輸入4張圖像進行訓練(batch為4)。通過預訓練發現,模型的損失在迭代400次左右能實現收斂,因此將訓練迭代次數設置為2 500。模型的損失變化情況如圖9所示,在迭代1 000次前后達到極小值,直至訓練結束都保持穩定,達到了訓練模型的目的。

圖9 損失函數變化曲線
從模型訓練部分可以得出結論,該模型訓練結果收斂較快,其權重文件可以用于檢測實驗。驗證集部分檢測結果如圖10所示,表明模型能夠完成缺陷檢測任務。驗證集總體檢測效果如圖11所示,scratch類缺陷AP為95.15%,fossette類缺陷AP為95.40%,缺陷mAP為95.28%。從各項性能評價標準可以看出該模型在訓練階段和檢測階段均較為理想,能夠勝任紐扣電池表面缺陷檢測任務。

圖10 測試集檢測結果

圖11 缺陷類型P-R曲線
本文分別運用K-means和K-means++兩種聚類算法對數據驗證集進行聚類,使用Accuracy、mAP和FPS對算法進行評估,其結果如表1所示。采用K-means++進行實驗并得到的Accuracy和mAP分別為91.54%和95.28%,相比于使用K-means分別提高了6.37%和3.97%,表明K-means++聚類算法不僅能夠優化初始聚類中心的選取,也提高了缺陷檢測的準確率。

表1 聚類算法對比
為驗證本文方法的綜合檢測性能,在這里使用原始YOLOv3、SSD和Faster R-CNN方法對數據訓練集進行訓練。此次采用AP、mAP和FPS三項指標作為性能評估標準,表2羅列了上述各方法對數據驗證集的檢測結果。

表2 不同方法性能對比
對表2分析可知,原始YOLOv3對scratch類缺陷較為敏感,其檢測準確率為93.13%。SSD和Faster R-CNN對fossette類缺陷檢測效果較好,相較于原始YOLOv3分別提高了1.69%和5.19%。本文方法對紐扣電池表面各類缺陷的檢測準確率皆優于上述方法,在數據驗證集上的mAP值為95.28%,相比于原始YOLOv3、SSD和Faster R-CNN分別提高了3.97%、8.93%和2.07%。同時本文方法的FPS達到35幀/s,優于SSD和Faster R-CNN。雖然檢測速率比原始YOLOv3稍遜一籌,但本文方法勝在缺陷檢測準確率,這是圖像預處理、數據集預處理、K-means++聚類算法和網絡結構優化共同作用的效果。因此結合上述性能評價標準,本文方法的綜合性能優于原始YOLOv3、SSD和Faster R-CNN,具有一定的工程參考價值。
本文為解決紐扣電池表面缺陷易受外部因素干擾導致檢測準確率不足的問題,提出一種基于改進YOLOv3的紐扣電池表面缺陷檢測方法,首先搭建了圖像采集系統,設計了基于HALCON的圖像預處理方案;然后制作了實驗數據集;最后針對原始YOLOv3的不足,加入K-means++聚類算法優化聚類中心的選取,新增一個特征圖層強化缺陷檢測能力。以性能評價標準作為參考指標,本文方法在驗證集上檢測兩類缺陷的平均準確率達到95.28%,優于原始YOLOv3、SSD和Faster R-CNN等對比方法,進一步證明了其有效性。該模型在檢測過程中的實時性尚有提升空間,在后續研究中將著重于優化檢測流程和權重文件,提升檢測速率。