冷浩 夏驕雄
摘? 要: 針對金屬表面缺陷檢測中不同缺陷之間存在相似性以及小目標缺陷的問題,提出一種基于改進YOLOv7的金屬表面缺陷檢測算法。首先通過構建更大的高效層聚合網絡(V-ELAN)模塊來有效增強網絡對不同缺陷間差異較小的學習能力。其次在Neck部分結合空間通道雙重注意力機制,提升對圖像中小目標特征提取能力,減少無用特征的干擾;采用Alpha IOU損失函數替換原來的CIOU損失函數,加速網絡收斂,提高網絡的魯棒性。最后引入深度可分離卷積,在降低網絡的參數量和計算量的同時盡可能減少精度損失。結果表明,改進后的YOLOv7網絡模型較原來YOLOv7網絡模型提升了3.6%,且mAP達到79.0%,模型大小減少了4.4%,檢測效果要優于原網絡模型和其他主流目標檢測網絡模型。
關鍵詞: 金屬表面缺陷檢測; YOLOv7; 小目標檢測; 注意力機制; 損失函數
中圖分類號:TP399? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2023)09-48-06
Metal surface defect detection method based on improved YOLOv7
Leng Hao1, Xia Jiaoxiong2
(1. School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China;
2. Committee of Shanghai Academy of Educational Sciences of the Communist Party of China)
Abstract: Aiming at the similarity between different defects and small object defects in metal surface defect detection, an improved YOLOv7-based metal surface defect detection algorithm is proposed. Firstly, a larger V-ELAN module is constructed to enhance the learning ability of the network for different defects. Secondly, in the Neck part, the dual attention mechanism of spatial channel is combined to improve the ability of feature extraction of small objects and reduce the interference of useless features. The Alpha IOU loss function is used to replace the CIOU loss function to accelerate the convergence of the network and improve the robustness of the network. Finally, the depth separable convolution is introduced to minimize the accuracy loss while reducing the number of parameters and computation of the network. The results show that the improved YOLOv7 network model is 3.6% higher than the original YOLOv7 network model, the mAP reaches 79.0%, the model size is reduced by 4.4%, and the detection effect is better than the original network model and other mainstream object detection network models.
Key words: metal surface defect detection; YOLOv7; small object detection; attention mechanisms; loss function
0 引言
在工業實際生產過程中,由于加工不當、設計偏差、環境惡劣以及其他因素導致產生的金屬表面缺陷(如折痕、壓痕、油斑、異物、沖孔等)往往是造成重大安全事故的元兇[1]。對金屬表面缺陷的檢測,傳統的檢測方法是人工檢測,但由于人的勞動強度大、生產效率低以及對人員的專業知識要求高等原因,導致檢測的效率大大折扣。因此,開發一種有效、準確的檢測方法勢在必行。
近年來,隨著深度學習的發展,越來越多的研究將深度學習用在缺陷檢測,并取得了不錯的效果。目前,主要有以Faster RCNN[2]為代表的兩階段目標檢測算法和以SSD[3]和YOLO[4]為代表的一階段目標檢測算法。Faster RCNN在精度上遠超其他算法,但由于需要在候選區域篩選,導致速度上存在不足,而兼顧速度和精度的YOLO算法則為金屬表面缺陷檢測提供了更好的方案。程等人[5]對YOLOv3算法進行改進,利用將第11層淺層特征與網絡深層特征進行融合的方式來對圖片中的小缺陷目標進行檢測,雖能更好地檢測出小目標缺陷,但卻忽略了不同缺陷之間存在相似性。方等人[6]提出一種更改損失函數和改進 k-means++聚類的YOLOv3算法進行了缺陷檢測,卻忽略了對小目標缺陷的改進。李等人[7]通過引入輕量型GhostNet網絡代替YOLOv5主干網絡中的殘差模塊,來減少網絡的計算量和網絡參數量,雖然速度得到了較大提升,但沒有考慮不同缺陷之間存在相似性以及小目標缺陷的問題。
針對前人研究的不足以及存在的問題,本文以YOLOv7為基礎,構建了V-ELAN模塊來增強網絡對不同缺陷間差異較小的學習能力,在neck部分結合空間通道雙重注意力機制(ShuffleAttention,SA),提升對圖像中小目標特征提取能力,并且采用alpha IOU損失函數替換原來的CIOU損失函數,加速網絡收斂,最后引入深度可分離卷積(Depthwise Separable Convolution)降低網絡的參數量和計算量。下面我們先簡要介紹YOLOv7模型的相關理論基礎,然后重點介紹V-ELAN模塊和關鍵創新,最后通過對比實驗和消融實驗證明本文算法的有效性。
1 相關工作
1.1 YOLOv7-x網絡結構
YOLO系列算法作為一階段目標檢測算法的代表,在速度和精度之間達到了非常好的平衡,YOLOv7[8]是當前YOLO系列中的最先進的算法,在速度和精度上都超過以往的YOLO系列,相比較于其他YOLO系列,YOLOv7通過采用更加高效的聚合網絡ELAN、更加有效的標簽分配方法、模型重參數化方法以及輔助頭訓練,在速度和精度上都遠超同類檢測器。YOLOv7網絡主要包括輸入端(Input)、主干網絡(Backbone)、頸部(Neck)、預測頭(Head)四個部分,Backbone部分主要由ELAN模塊、CBS模塊、MPConv模塊組成。CBS模塊由卷積層、BN層和SiLU激活函數組成,MPConv模塊有兩個分支,一個分支進行Max Pooling后再接一個卷積進行通道數調整,另外一個分支先接一個步長為2的3×3卷積進行寬高調整,后接一個卷積調整通道數,最后把兩個分支進行concat連接,來提高網絡的特征提取能力。ELAN模塊主要借鑒VoVNet[9]和CSPNet[10]的思想,通過控制最大最長梯度路徑,使網絡能夠學到更多的特征,具有更強的魯棒性。
Neck部分整體架構和YOLOv4、YOLOv5一樣,采用的是PAN結構,主要包括SPPCSPC模塊、MPConv模塊以及ELAN模塊。SPPCSPC模塊是在SPP模塊的基礎上進行改進,SPP層的作用是增大感受野,使算法可以適應不同分辨率的圖像。SPPCSPC模塊一條分支在經過多次卷積后進行多次并行的Max Pooling操作,這幾個不同尺度的Max Pooling有四種感受野,主要用來區分不同目標的物體,另外一條分支進行普通卷積處理,最后將這兩條分支合并,這樣不僅能夠減少計算量,同時也增大了感受野,避免由于對圖像操作所導致的圖像失真問題。Head部分還是基于錨框的,主要使用三個不同尺寸的檢測頭,分別檢測大、中、小物體。YOLOv7目前主要提供YOLOv7、YOLOv7-x、YOLOv7-W6、YOLOv7-E6、YOLOv7-D6幾個版本,本文選用YOLOv7-x作為基線改進,具體結構如圖1所示。
YOLOv7損失函數整體上和YOLOv5差不多,主要包括置信度損失、分類損失和坐標損失。其中置信度損失和分類損失采用的是BCEWithLogitsLoss,坐標損失采用的是CIOU損失。在正負樣本選取上與YOLOv5一致,但額外采取了SimOTA的策略,在訓練過程中給每個GT自適應地動態分配k個正樣本,從而自動決定每個GT需要從哪個特征圖來檢測。
2 YOLOv7-x算法改進
2.1 V-ELAN模塊
在YOLOv7網絡中,ELAN模塊結合了CSPNet和VoVNet的思想,一條分支進行常規卷積操作,另一條分支采用VoVNet中的OSA模塊思路,在進行一系列常規卷積的操作后,在最后一層會一次性聚合前面的所有層,最后和另一個分支進行concat連接,再經過一個常規卷積進行通道數調整。通過控制最短最長梯度路徑,來使網絡學習到更多不同的特征,從而達到更好的效果。具體結構如圖2所示。
由于金屬表面缺陷種類眾多,而且不同缺陷間差異較小,不容易分辨,從而造成誤檢。在受到CenterMask[11]的啟發后,本文提出一個新的結構V-ELAN,來增強網絡對不同缺陷間差異較小的學習能力。V-ELAN引入ResNet的殘差連接和SENet[12]的SE模塊,將輸入直接加到輸出上,增加短路連接,由于SE模塊中間的FC層會造成信息丟失,所以將其去掉。V-ELAN相比ELAN不僅加強了對不同缺陷特征的學習能力,而且能夠訓練更深網絡。V-ELAN具體結構如圖3所示。
2.2 Shuffle Attention注意力模塊
注意力機制主要分為兩種,一種是通道注意力,另一種是空間注意力,二者主要用于捕獲通道間依賴關系和圖像像素對間的關系,同時使用會有更好的效果,但也會帶來計算量的增加。Shuffle Attention(SA)[13]卻能很好地結合二者,在提升效果的同時不會帶來額外的計算量。SA在設計上使用組卷積來降低計算量,首先將輸入的特征圖分為g組,在每個組里使用Shuffle Unit處理,Shuffle Unit通過Concate方式將組內的信息進行融合,最后使用ChannelShuffle對組進行重排,實現不同組之間信息流通,將融合后的特征圖作為SA的輸出。具體結構如圖4所示。
由于金屬表面存在小目標缺陷難以檢測,從而出現小目標漏檢現象的發生,通過向YOLOv7的Neck部分添加SA模塊可以有效地提高模型對小目標缺陷的檢測,提高模型的檢測性能。
2.3 深度可分離卷積
深度可分離卷積是由Depthwise卷積和Pointwise卷積兩部分組成,主要是用來減少模型的參數量和計算量,從而提高模型的檢測速度。Depthwise卷積是一個卷積核負責處理一個通道,而Pointwise卷積和常規卷積類似,使用1×1卷積調整通道數。具體結構如圖5所示。
對常規卷積來說,假設輸入大小為DX×DY×M,使用大小為DK×DK×M的N個卷積核進行計算,得到輸出特征圖尺寸為N×DH×DW。
普通卷積的計算量和參數量:
[QC=DKDKMNDHDW]? ⑴
[PC=DKDKMN]? ⑵
深度可分離卷積的計算量和參數量:
[QD=DKDKMDHDW+MNDHDW]? ⑶
[PD=DKDKM+NM]? ⑷
普通卷積與深度可分離卷積的計算量之比k:
[k=N+DKDK]? ⑸
從式⑸可以看出,深度可分離卷積要比普通卷積快N+DKDK倍。
由于YOLOv7大量使用常規卷積會導致檢測速度下降,因此,在Head部分加入深度可分離卷積可以有效提升檢測速度,大大降低參數量和計算量。
2.4 Alpha IOU
邊框回歸是物體檢測中的重要環節,通過預測目標物體的bbox來定位圖像中需要檢測的物體。最常用的是IOULoss,通過真實框和預測框的交并比來求損失,但當預測框和真實框不相交時, IOULoss為0,就無法反映出兩個框的距離遠近。GIOU[14]通過引入預測框和真實框的最小外接矩形來解決IOULoss存在的問題,但當預測框和真實框重合時,即二者是包含關系時,GIOU會退化成IOU。針對GIOU出現的問題,DIOU[15]通過最小化預測框和真實框中心點的標準化距離來加速損失的收斂。雖然DIOU通過直接最小化預測框和真實框中心點距離加速收斂,但卻忽略了一個重要因素“長寬比”,CIOU[16]通過在DIOU的懲罰項基礎上加了一個影響因子,這個因子將預測框和真實框的長寬比考慮進去,從而提升回歸精確度。
Alpha IOU[17]是對前面所有IOU的一種加速收斂的改進,用于精確邊界框回歸。通過引入一個Alpha指數項,對現有的IOU損失進行統一冪化,加速收斂。通過調節Alpha,從而更加靈活地實現不同水平的邊界框回歸精度,當Alpha為3時,增加了高IOU目標的損失和梯度,進而提高邊界框回歸精度。YOLOv7坐標損失使用的是CIOU,具體定義如下:
[LCIOU=1-IoU+ρ2(b,bgt)c2+βv]? ⑹
為了加速損失收斂,提高邊界框回歸精度,本文使用Alpha IOU損失函數代替CIOU損失函數,具體定義如下:
[LαCIOU=1-IoUα+ρ2α(b,bgt)c2α+(βv)α]? ⑺
結合上述改進,最后得到的基于YOLOv7-x算法改進結構如圖6所示。
3 實驗結果及分析
3.1 實驗平臺和數據集
實驗所使用的軟件環境是:操作系統CentOS 7,Python3.8,Pytorch1.12.1,CUDA11.3,CPU Core(TM) i5-7500,GPUTesla A100,網絡輸入的圖像大小640×640,學習率使用的是0.01,優化器是SGD,batch size為16,訓練次數epoch為300。
實驗選擇的數據集是公開數據集 GC10-DET[18],該數據集包含十類金屬表面缺陷,分別是沖孔、焊縫、月牙彎、水斑、油斑、絲斑、異物、壓痕、折痕、腰折,總共有2294張圖像,圖像的大小為2048×1000。數據集示例如圖7所示。
由于實驗數據集樣本過少,各個缺陷類別間存在不平衡。因此需要通過常用數據增強,對數據集進行擴充,將原來數據集擴充到4600張,其中選取3910張作為訓練集,690張作為測試集。
3.2 實驗評價指標
為了驗證改進算法的有效性,實驗采用所有類別的平均精度均值mAP@0.5(mean Average Precision,IoU閾值取大于0.5)、單張圖片的耗時以及模型的參數量進行評估,mAP是指對所有類的平均精度(AP)求平均,其中準確率(Precision)、召回率(Recall)、AP、mAP的表示如下:
[P=TPTP+FP]? ⑻
[R=TPTP+FN]? ⑼
[AP=01P(R)dR]? ⑽
[mAP=1ci=1cAPi]? ⑾
其中,TP表示預測正確的正樣本,TN表示預測正確的負樣本,FP表示預測錯誤的正樣本,FN表示預測錯誤的負樣本。c表示類別數。
3.3 消融實驗
為了驗證改進YOLOv7x算法的有效性,實驗在GC10-DET數據集上進行。消融實驗結果見表1。其中V-ELAN、SA、DWConv、AlphaiOU為本文改進點,Params為模型的參數量大小,所有結果均在輸入大小為640×640下計算得到。從表1中可以看出,第一組實驗使用YOLO v7x作為基準時,其mAP為75.4%,第二組實驗是將YOLOv7x中的ELAN替換為V-ELAN后,mAP提升了2.3%,第三組實驗是在第二組實驗的基礎上融合空間通道雙重注意力機制(SA)后,mAP提升了1.7%。第四組實驗是在第三組實驗基礎上將Head部分的常規卷積替換為深度可分離卷積,雖然mAP下降了0.6%,但模型大小相比實驗三減少了23.7%,相比實驗一模型大小減少了4.4%,且mAP增加了3.6%。YOLOv7x改進前后精確率和召回率如表2所示,其中P為平均精確率,R為平均召回率。
從表2可以看出,改進的YOLOv7x相比YOLOv7x,平均精確率提升了4.1%,平均召回率提升了3%。圖8為改進YOLOv7x算法在測試集上的效果,可以看到對于一些小目標缺陷的檢測還是不錯的,但由于生產環境以及光照的影響,部分缺陷的檢測效果不佳。
3.4 改進YOLOv7x算法與其他算法的對比
為了驗證改進YOLOv7x算法的有效性,將其與其他經典主流算法進行對比,實驗結果如表3所示。
從表3可以看出,改進的YOLOv7x算法在mAP和模型大小都遠超Faster RCNN和YOLOv3等經典算法。相對于YOLOv5x,mAP提升了1.5%的同時,模型大小減少了17.5%。相對于YOLOv7x,mAP提升了3.6%且模型大小減少了4.4%。試驗結果表明,本文改進算法還是十分有效的。
4 結束語
本文針對目前金屬表面缺陷檢測中存在的問題進行了分析,針對不同缺陷之間存在相似性的問題,通過構建V-ELAN模塊,來增強網絡對不同缺陷間差異較小的學習能力,在neck部分結合空間通道雙重注意力機制(Shuffle Attention, SA),提升對圖像中小目標特征提取能力,并且采用Alpha IOU損失函數替換原來的CIOU損失函數,加速網絡收斂,最后引入深度可分離卷積,在降低網絡的參數量和計算量的同時,盡可能較小減少精度損失。試驗結果表明,本文改進算法效果優于原來網絡及其他主流網絡。由于目前模型大小還不足以達到工業部署的要求,下一步將會考慮進行網絡輕量化相關研究。
參考文獻(References):
[1] 韓九強.機器視覺技術及應用[M].北京:高等教育出版社,2009.
[2] Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J].Advances in neural information processing systems,2015,28.
[3] Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot?multibox detector[C]//Computer Vision-ECCV 2016: 14th European Conference,Amsterdam,The Netherlands, October 11-14, 2016, Proceedings, Part I 14. Springer International Publishing,2016:21-37.
[4] Redmon J, Divvala S, Girshick R, et al. You only lookonce:Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,2016:779-788.
[5] 程婧怡,段先華,朱偉.改進YOLOv3的金屬表面缺陷檢測研究[J].計算機工程與應用,2021,57(19):252-258.
[6] 方葉祥,甘平,陳俐.金屬表面缺陷檢測的改進YOLOv3算法研究[J].機械科學與技術,2020,39(9):1390-1394.
[7] 李衍照,于鐳,田金文.基于改進YOLOv5的金屬焊縫缺陷檢測[J].電子測量技術,2022,45(19):70-75.
[8] Wang C Y, Bochkovskiy A, Liao H Y M. YOLOv7:Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[J]. arXiv preprint arXiv:2207.02696,2022.
[9] Lee Y, Hwang J, Lee S, et al. An energy andGPU-computation efficient backbone network for real-time object detection[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition workshops,2019.
[10] Wang C Y, Liao H Y M, Wu Y H, et al. CSPNet: A newbackbone that can enhance learning capability of CNN[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition workshops,2020:390-391.
[11] Lee Y, Park J. Centermask: Real-time anchor-freeinstance segmentation[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition,2020:13906-13915.
[12] Hu J, Shen L, Sun G. Squeeze-and-excitationnetworks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,2018:7132-7141.
[13] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficientconvolutional neural networks for mobile vision applications[J].arXiv preprint arXiv:1704.04861,2017.
[14] Rezatofighi H, Tsoi N, Gwak J Y, et al. Generalizedintersection over union: A metric and a loss for bounding box regression[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition,2019:658-666.
[15] Zheng Z, Wang P, Liu W, et al. Distance-IoU loss: Fasterand better learning for bounding box regression[C]//Proceedings of the AAAI conference on artificial intelligence,2020,34(7):12993-13000.
[16] Zheng Z, Wang P, Ren D, et al. Enhancing geometricfactors in model learning and inference for object detection and instance segmentation[J].IEEE Transactions on Cybernetics,2021.
[17] He J, Erfani S, Ma X, et al. Alpha-IoU: A Family ofPower Intersection over Union Losses for Bounding Box Regression[J]. Advances in Neural Information Processing Systems,2021,34:20230-20242.
[18] Lv X, Duan F, Jiang J, et al. Deep metallic surface defect?detection: The new benchmark and detection network[J].Sensors,2020,20(6):1562.