沈陽理工大學 黃海新 金 鑫
隨著制造業(yè)的高速發(fā)展,缺陷檢測在制造型企業(yè)中的重要性變得來越高。然而大多數(shù)生產(chǎn)廠商還使用人工或基于機器視覺的方法進行缺陷檢測。人工檢測的效率和可靠性通常很低。采用機器視覺算法對產(chǎn)品進行質(zhì)量檢測是一種比較成熟的方案。但缺陷種類過多時,此類算法存在人工設(shè)計特征效率低、泛化性差、處理步驟繁瑣等缺陷。近年來的研究表明,深度學習方法已廣泛應用于目標檢測領(lǐng)域,但對小目標檢測的研究較少。為了提高小目標及小樣本的檢測精度,本文提出了一種基于YOLOv4的改進方法。此方法不但可以滿足檢測的速度和精度,而且在小樣本的情況下成功的檢測出納米級尺度上的制造缺陷。
近年來,基于深度學習的方法在目標檢測領(lǐng)域取得了重大突破。 因此將深度學習算法應用于產(chǎn)品質(zhì)量檢測,成為一個主流的研究方向。鑒于YOLO算法不但擁有極高的檢測速度,而且有著不遜于R-CNN系類算法的精度,因此成為本研究的首選研究算法。
本研究使用的數(shù)據(jù)集來自國內(nèi)某高端制造企業(yè)。樣本圖像為其生產(chǎn)線中的工業(yè)攝像頭拍攝的CMOS濾光片支架。尺寸大小為6.5×6.5mm。圖像樣本中共有五類缺陷。由于目標物體尺寸小、經(jīng)網(wǎng)絡(luò)提取后的特征不明顯,因此小目標物體檢測存在漏檢率高,檢測精度低等缺陷。此外廠商提供的數(shù)據(jù)集中只包含112張圖像。針對上述問題,本文在YOLOv4的基礎(chǔ)上做了如下的改進:
(1)在數(shù)據(jù)預處理階段,通過數(shù)據(jù)增強的方法將數(shù)據(jù)集擴充至原數(shù)據(jù)集數(shù)量的8倍,然后使用mosaic數(shù)據(jù)增強方法進行進一步增強。
(2)使用先驗框增強方法,將經(jīng)過優(yōu)化得到的先驗框用于檢測,進而提高檢測精度。
由實驗表明,經(jīng)過改進版YOLOv4算法可以滿足廠商要求的檢測的速度和精度。
YOLOv4的網(wǎng)絡(luò)由主干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)和頭部網(wǎng)絡(luò)這三部分組成。其中,主干網(wǎng)絡(luò)為CSP-DarkNet53,CSP網(wǎng)絡(luò)是可以增強神經(jīng)網(wǎng)絡(luò)學習能力的新型主干網(wǎng)絡(luò),同時能夠在輕量化的同時保持準確性、降低計算瓶頸、降低內(nèi)存成本。Darknet53是YOLOv3所是使用的主干網(wǎng)絡(luò),結(jié)合CSP網(wǎng)絡(luò)的思想形成CSPDarkNet53網(wǎng)絡(luò)。頸部網(wǎng)絡(luò)為SPP和PAN網(wǎng)絡(luò)。SPP網(wǎng)絡(luò)是將CSPDarkNet53卷積后得到的特征歸到同一大小。PAN網(wǎng)絡(luò)有著反復提取特征的結(jié)構(gòu),提高了檢測小目標物體的精度。頭部網(wǎng)絡(luò)負責最后的預測任務(wù)。
在生產(chǎn)過程中,由于短時間內(nèi)很難搜集到大量帶有缺陷的樣本,因此使用數(shù)據(jù)增強的方法對原有數(shù)據(jù)集進行預處理變得尤為重要。實驗中采用的數(shù)據(jù)增強的方法主要有如下幾點:
(1)幾何變換
即對圖像進行幾何變換,包括翻轉(zhuǎn),旋轉(zhuǎn),裁剪,變形,縮放等各類操作。結(jié)合本實驗數(shù)據(jù)集,這里主要應用了鏡像和旋轉(zhuǎn)的方式進行數(shù)據(jù)增強,通過這兩種方法的結(jié)合,將數(shù)據(jù)集擴充到原有數(shù)據(jù)集數(shù)量的8倍。
(2)mosaic數(shù)據(jù)增強
mosaic數(shù)據(jù)增強是在原有CutMix數(shù)據(jù)增強方法的基礎(chǔ)上提出的新的數(shù)據(jù)增強方法,理論上和CutMix類似。CutMix數(shù)據(jù)增強方式是利用兩張圖片進行拼接,但是mosaic利用了四張圖片。其優(yōu)點是豐富檢測物體的背景,且在BN計算的時候一下子會計算四張圖片的數(shù)據(jù),使得mini-batch大小不需要很大,那么一個GPU就可以達到比較好的效果。mosaic數(shù)據(jù)增強效果如圖7所示。
通常數(shù)據(jù)集中待檢測物體大小不一,造成目標大小差異的主要原因有兩個:一是目標物體本身大小不一,二是拍攝距離不同。對于本數(shù)據(jù)集,由于鏡頭到物體的距離是固定的。因此在該情況下,可以使用聚類算法預先統(tǒng)計數(shù)據(jù)集中所有缺陷樣本的大小來獲取先驗框。使用聚類后得到的先驗框進行檢測,增強了預測尺度的適應性。
圖1 average IOU與聚類中心k的關(guān)系曲線
進行聚類時,選取聚類中心個數(shù)為1-9,分別運行K-means++算法對數(shù)據(jù)集中的缺陷樣本進行分析,得到average IOU與聚類中心k的關(guān)系如圖1所示。從圖中可以看出隨著k的逐漸增大,average IOU變化越來越平穩(wěn)。我們選取聚類中心為9,在此基礎(chǔ)上得到的先驗框大小為(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中特征圖與其對應先驗框大小
本研究基于國內(nèi)某廠的實際生產(chǎn)項目。要求開發(fā)基于深度學習的方法對流水線上的工業(yè)產(chǎn)品進行實時的缺陷檢測。本次實驗的數(shù)據(jù)集為生產(chǎn)廠商提供的56組帶有缺陷的芯片支架圖像。每組共兩張圖像,是由兩個工業(yè)攝像頭同時對同一缺陷產(chǎn)品采集的圖像。如圖2所示。
圖2 數(shù)據(jù)樣本
在數(shù)據(jù)集中缺陷類型共分成5類,缺陷類型如表2所示,其中各缺陷如圖3所示。
設(shè)置學習率設(shè)置為0.001,衰減系數(shù)設(shè)置為0.0005,并且選擇steps模式更新學習率,在訓練迭代次數(shù)達到8000和9000次時,將學習率分別降低至初始學習率的10%和1%。我們將原始的YOLOv4算法和經(jīng)過改進的YOLOv4算法分別迭代10000次進性訓練。經(jīng)過10000次迭代之后,損失值和mAP基本趨于穩(wěn)定。最后的損失值下降到1.7左右,mAP大約在82%左右,各評價參數(shù)如表3所示。
表2 缺陷類型
表3 各評價參數(shù)
將改進的YOLOv4算法和原YOLOv4算法進行對比發(fā)現(xiàn):對小樣本問題,如何如何進性數(shù)據(jù)增強是至關(guān)重要的。而對于小目標檢測問題,我們使用了K-means算法分析數(shù)據(jù)集中的缺陷樣本,再用經(jīng)過增強過的先驗框進性預測。由實驗數(shù)據(jù)可知,經(jīng)過改進的YOLOv4算法無論是precision還是recall都比YOLOv4算法有所提高,同時在IOU=0.5時的mAP和average IoU也有所提高。基于實驗結(jié)果,本文提出的改進版YOLOv4算法對于小目標物體檢測問題有實質(zhì)性的意義。
結(jié)束語:本文針對小目標及小樣本檢測問題提出了改進版的YOLOv4目標檢測算法。根據(jù)實驗數(shù)據(jù)集特點,使用了數(shù)據(jù)增強及先驗框增強的方法,實驗結(jié)果顯示在檢測精度的各項指標方面都有一定的提升。因此本文提出的先驗框增強和數(shù)據(jù)增強方法對于其他小目標物體檢測及小樣本問題有實質(zhì)性的指導意義。此外,本方法可應用與高端制造行業(yè),如半導體行業(yè)、智能制造行業(yè)、軍工制造行業(yè)等。未來,提升檢測精度、降低模型復雜度仍然是主要研究方向。