沈陽理工大學 黃海新 金 鑫
隨著制造業的高速發展,缺陷檢測在制造型企業中的重要性變得來越高。然而大多數生產廠商還使用人工或基于機器視覺的方法進行缺陷檢測。人工檢測的效率和可靠性通常很低。采用機器視覺算法對產品進行質量檢測是一種比較成熟的方案。但缺陷種類過多時,此類算法存在人工設計特征效率低、泛化性差、處理步驟繁瑣等缺陷。近年來的研究表明,深度學習方法已廣泛應用于目標檢測領域,但對小目標檢測的研究較少。為了提高小目標及小樣本的檢測精度,本文提出了一種基于YOLOv4的改進方法。此方法不但可以滿足檢測的速度和精度,而且在小樣本的情況下成功的檢測出納米級尺度上的制造缺陷。
近年來,基于深度學習的方法在目標檢測領域取得了重大突破。 因此將深度學習算法應用于產品質量檢測,成為一個主流的研究方向。鑒于YOLO算法不但擁有極高的檢測速度,而且有著不遜于R-CNN系類算法的精度,因此成為本研究的首選研究算法。
本研究使用的數據集來自國內某高端制造企業。樣本圖像為其生產線中的工業攝像頭拍攝的CMOS濾光片支架。尺寸大小為6.5×6.5mm。圖像樣本中共有五類缺陷。由于目標物體尺寸小、經網絡提取后的特征不明顯,因此小目標物體檢測存在漏檢率高,檢測精度低等缺陷。此外廠商提供的數據集中只包含112張圖像。針對上述問題,本文在YOLOv4的基礎上做了如下的改進:
(1)在數據預處理階段,通過數據增強的方法將數據集擴充至原數據集數量的8倍,然后使用mosaic數據增強方法進行進一步增強。
(2)使用先驗框增強方法,將經過優化得到的先驗框用于檢測,進而提高檢測精度。
由實驗表明,經過改進版YOLOv4算法可以滿足廠商要求的檢測的速度和精度。
YOLOv4的網絡由主干網絡、頸部網絡和頭部網絡這三部分組成。其中,主干網絡為CSP-DarkNet53,CSP網絡是可以增強神經網絡學習能力的新型主干網絡,同時能夠在輕量化的同時保持準確性、降低計算瓶頸、降低內存成本。Darknet53是YOLOv3所是使用的主干網絡,結合CSP網絡的思想形成CSPDarkNet53網絡。頸部網絡為SPP和PAN網絡。SPP網絡是將CSPDarkNet53卷積后得到的特征歸到同一大小。PAN網絡有著反復提取特征的結構,提高了檢測小目標物體的精度。頭部網絡負責最后的預測任務。
在生產過程中,由于短時間內很難搜集到大量帶有缺陷的樣本,因此使用數據增強的方法對原有數據集進行預處理變得尤為重要。實驗中采用的數據增強的方法主要有如下幾點:
(1)幾何變換
即對圖像進行幾何變換,包括翻轉,旋轉,裁剪,變形,縮放等各類操作。結合本實驗數據集,這里主要應用了鏡像和旋轉的方式進行數據增強,通過這兩種方法的結合,將數據集擴充到原有數據集數量的8倍。
(2)mosaic數據增強
mosaic數據增強是在原有CutMix數據增強方法的基礎上提出的新的數據增強方法,理論上和CutMix類似。CutMix數據增強方式是利用兩張圖片進行拼接,但是mosaic利用了四張圖片。其優點是豐富檢測物體的背景,且在BN計算的時候一下子會計算四張圖片的數據,使得mini-batch大小不需要很大,那么一個GPU就可以達到比較好的效果。mosaic數據增強效果如圖7所示。
通常數據集中待檢測物體大小不一,造成目標大小差異的主要原因有兩個:一是目標物體本身大小不一,二是拍攝距離不同。對于本數據集,由于鏡頭到物體的距離是固定的。因此在該情況下,可以使用聚類算法預先統計數據集中所有缺陷樣本的大小來獲取先驗框。使用聚類后得到的先驗框進行檢測,增強了預測尺度的適應性。

圖1 average IOU與聚類中心k的關系曲線
進行聚類時,選取聚類中心個數為1-9,分別運行K-means++算法對數據集中的缺陷樣本進行分析,得到average IOU與聚類中心k的關系如圖1所示。從圖中可以看出隨著k的逐漸增大,average IOU變化越來越平穩。我們選取聚類中心為9,在此基礎上得到的先驗框大小為(8,8)、(9,12)、(15,9)、(9,25)、(16,16)、(31,11)、(8,54)、(59,10)、(13,52)。
然后我們將這9中尺度的先驗框每三個作為一組,平均分配到52×52、26×26、13×13這三個尺度的特征圖上,具體如表1所示。

表1 YOLO Head中特征圖與其對應先驗框大小
本研究基于國內某廠的實際生產項目。要求開發基于深度學習的方法對流水線上的工業產品進行實時的缺陷檢測。本次實驗的數據集為生產廠商提供的56組帶有缺陷的芯片支架圖像。每組共兩張圖像,是由兩個工業攝像頭同時對同一缺陷產品采集的圖像。如圖2所示。

圖2 數據樣本
在數據集中缺陷類型共分成5類,缺陷類型如表2所示,其中各缺陷如圖3所示。
設置學習率設置為0.001,衰減系數設置為0.0005,并且選擇steps模式更新學習率,在訓練迭代次數達到8000和9000次時,將學習率分別降低至初始學習率的10%和1%。我們將原始的YOLOv4算法和經過改進的YOLOv4算法分別迭代10000次進性訓練。經過10000次迭代之后,損失值和mAP基本趨于穩定。最后的損失值下降到1.7左右,mAP大約在82%左右,各評價參數如表3所示。

表2 缺陷類型

表3 各評價參數
將改進的YOLOv4算法和原YOLOv4算法進行對比發現:對小樣本問題,如何如何進性數據增強是至關重要的。而對于小目標檢測問題,我們使用了K-means算法分析數據集中的缺陷樣本,再用經過增強過的先驗框進性預測。由實驗數據可知,經過改進的YOLOv4算法無論是precision還是recall都比YOLOv4算法有所提高,同時在IOU=0.5時的mAP和average IoU也有所提高。基于實驗結果,本文提出的改進版YOLOv4算法對于小目標物體檢測問題有實質性的意義。
結束語:本文針對小目標及小樣本檢測問題提出了改進版的YOLOv4目標檢測算法。根據實驗數據集特點,使用了數據增強及先驗框增強的方法,實驗結果顯示在檢測精度的各項指標方面都有一定的提升。因此本文提出的先驗框增強和數據增強方法對于其他小目標物體檢測及小樣本問題有實質性的指導意義。此外,本方法可應用與高端制造行業,如半導體行業、智能制造行業、軍工制造行業等。未來,提升檢測精度、降低模型復雜度仍然是主要研究方向。