











摘要:針對鋼材表面缺陷檢測算法存在精度低、參數多等問題,提出一種改進的YOLOv5s的鋼材表面檢測算法。首先,在主干網絡SPPF(spatial pyramid pooling-fast)上一層引入CA(coordinate attention)注意力機制,以提高檢測精度,增強網絡的檢測性能;其次,將原來的主干網絡替換為EfficientNetV2結構,以提高模型檢測速度,減小參數量,降低計算復雜度;最后,在Neck層加入Biformer注意力機制,以減小背景對檢測結果的影響,高效地獲得更多特征,提高檢測精度。實驗結果表明,改進后的YOLOv5s在NEU-DET數據集上的平均精度均值(mAP@0.5)達到81.7%,相較于基準模型提升了6.4%。與其他熱門的目標檢測算法相比,改進算法具有更高的檢測精度,可以滿足工業檢測中的實際需求。
關鍵詞:缺陷檢測; YOLOv5s; Biformer; EfficientnetV2; CA
中圖分類號:TP391.41文獻標志碼:A
doi:10.3969/j.issn.1673-5862.2024.05.014
Optimization of steel defect detection algorithm based on YOLOv5
WU Di, LI Ruizhi, CONG Zhiwei
(College of Physics Science and Technology, Shenyang Normal University, Shenyang 110034, China)
Abstract:
Aiming at the problems of low accuracy and large parameters of steel surface defect detection algorithm, a steel surface detection algorithm with improved YOLOv5s is proposed. Firstly, the CA(coordinate attention)attention mechanism is introduced in the upper layer of the backbone network SPPF(spatial pyramid pooling-fast), which improves the detection accuracy and enhances the detection performance of the network; secondly, the original backbone network is replaced with the EfficientNetV2 structure,which improves the detection speed of the model, reduces the number of parameters, and lowers the computational complexity; lastly, Biformer's attention mechanism is added in the Neck layer, which reduces the influence of the background on the detection results and efficiently obtains more features and improves the detection results. Finally, the Biformer attention mechanism is added to the Neck layer to reduce the influence of the background on the detection results, obtain more features efficiently, and improve the detection accuracy. The experimental results show that the improved YOLOv5s achieves an average accuracy of 81.7% on the NEU-DET dataset(mAP@0.5), which is 6.4% higher than that of the benchmark model. For other popular target detection algorithms, the improved algorithm in this paper has higher detection accuracy and can meet the needs in industrial inspection.
Key words:
defect detection; YOLOv5s; Biformer; EfficientNetV2; coordinate attention
2023年,中國粗鋼產量為10.19億t。預計2024年國內鋼鐵行業供需雙增,粗鋼需求將會增加0.19億t[1]。鋼材生產過程中,受限于生產設備,加工工藝等因素,鋼材表面會出現裂紋、斑塊、麻點等不同類型的缺陷[2],影響鋼材的美觀,減少鋼材的使用壽命,甚至可能造成嚴重的安全事故。傳統的人工檢測方法存在效率低、判斷標準不一致、勞動強度大等缺點,難以滿足不斷發展的市場需求。
深度學習技術的快速發展提供了高效、高精度的缺陷檢測方法。目前,主流的檢測算法有單階段和雙階段目標檢測算法。單階段目標檢測算法主要有SSD[3]和YOLO[4]等。雙階段目標檢測算法主要有Faster R-CNN[5]和FPN[6]等。雙階段目標檢測算法生成一系列樣本的候選框,然后在卷積神經網絡里分類。雙階段目標檢測算法精度比較高,但檢測速度慢。單階段目標檢測算法只需要一次特征提取就可以實現目標檢測,速度快,即使精度降低了,但仍滿足工業需求,被廣泛地應用[7]。
近年來,YOLO(you only look once)算法憑借優秀的精確度以及快速的檢測速度,被廣泛應用到表面缺陷檢測中。Li等[8]提出了一種基于YOLO算法的改進方法,改進后的算法模型具有更好的泛化性,大幅改進了表面缺陷檢測的精度和速度。孫連山等[9]通過K-means聚類算法得到了更精確的錨框參數,增加了一個大尺度特征圖用來提高模型對小目標缺陷的檢測精度,引入五分支卷積塊和SE block(squeeze and excitation networks)構成的注意力模塊提升了網絡特征提取能力。張寶朋等[10]提出一種輕量化的YOLOv4算法,通過改進主干網絡ShuffleNet V2減小參數量,再擴大卷積核并替換激活函數提高精度。李鑫等[11]提出一種輕量化的YOLOv5算法,通過替換主干網絡GhostNet實現模型輕量化,引入 SE 注意力機制強化網絡的特征通道,增加一個小尺度檢測層,提升網絡特征提取能力,最后用DW(depth wise convolution)卷積替代部分標準卷積,減小運算量,改進后的算法模型在提高精度的同時減少模型體積。
鋼材數據集存在缺陷尺度不一、缺陷位置分散的特性,本文提出一種改進的YOLOv5算法,提高了鋼材表面缺陷識別的準確率和檢測速度,并在NEU-DET數據集上驗證了鋼材表面缺陷識別的有效性。
1YOLOv5算法
YOLOv5目標檢測算法是Ultralytics公司于2020年5月發布的。根據模型深度和寬度的不同,YOLOv5具有YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x這4個權重,大小依次增大。越復雜的模型識別精確度越高,同時速度也越慢,本文選用YOLOv5s作為基準模型。
2算法改進
本文提出一種基于YOLOv5s算法的鋼材缺陷檢測模型,圖1是改進后的算法模型框架YOLOv5s-ECB。
基準模型Backbone(主干網絡)由6層卷積網絡、4層C3模塊、1層SPPF層構成,計算量大且對小目標缺陷檢測精度較低,難以滿足缺陷檢測需求。使用EfficientNetV2替換主干網絡改進模型,可以減小模型運算量并實現輕量化。
主干網絡中引入CA注意力機制,可提升模型對小目標缺陷的檢測能力,提高檢測精度。CA注意力具體分為位置信息嵌入和坐標注意區域,輸入特征由水平方向和垂直方向的池化核對不同通道進行編碼,水平方向使用H×1的池化核,將H×W×C的輸入特征通過全局平均池化操作得到H×1×C的信息特征圖,垂直方向使用1×W的池化核,將H×W×C的輸入特征通過平均池化操作得到1×W×C 的信息特征圖,計算公式如下:
zhc(h)=1W∑0≤i≤Wxc(h,i)(1)
zwc(w)=1H∑0≤j≤Wxc(j,w)(2)
通過激活函數和卷積操作將這2個張量轉化為空間子方向的注意力權重gh和gw,計算公式如下:
gh=σ(Fh(fh))(3)
gw=σ(Fw(fw))(4)
最后,將注意力權重與輸入特征圖進行乘法加權計算,得到帶有注意力權重的特征圖,輸出計算公式如下:
yc(i,j)=xc(i,j)×ghc(i)×gw(j)(5)
改進前后對比結果見表1。替換主干網絡后網絡mAP(mean average precision)為 78.6%,較原算法提升3.3%,參數量下降20%,計算量下降65%,實現了模型輕量化。增加 CA注意力后網絡mAP為78%,提升2.7%,運算參數下降,FPS(frames per second)為147,運算速度得到提升。
為了減小鋼材數據集背景對缺陷檢測精度的影響,在Neck層中引入Biformer注意力。Biformer注意力的金字塔網絡可以實現計算資源的有效分配,增強模型對全局信息的理解能力,優化復雜背景對小目標檢測的影響,提高模型對鋼材缺陷檢測的精度和魯棒性,對比結果見表2。引入Biformer后注意力模型mAP為77.7%,較原算法提升2.4%,參數量和運算量小幅上升。
使用先進的K-means++聚類算法,可以優化初始聚類中心的選擇,避免傳統K-means算法容易陷入局部最優解的問題。K-means++提升模型關注小目標信息的能力,抑制非相關信息干擾,提高了小缺陷目標的檢測精度;幫助算法能更好地適應各種尺寸的缺陷,提高算法在檢測不同形狀和大小缺陷時的精度;通過優化初始聚類中心的選擇,減少了算法對初始條件敏感的問題,從而提高了聚類結果的穩定性和準確性。如圖2所示,改進后的YOLOv5網絡使用K-means++聚類9組先驗框,均勻分布在3個特征輸出層上,先驗框具體參數見表3。
3實驗分析
3.1數據集
本文使用東北大學公開數據集NEU-DET進行訓練,驗證所提出改進方案的有效性。該數據集包含6種類別的缺陷,缺陷類別包含麻點、斑塊、壓入氧化鐵皮、夾雜、劃痕、裂紋,每類各300張圖片,一共1800張,圖片為200×200像素的灰度圖。本實驗按照8∶1∶1 的比例將數據集分為訓練集,驗證集和測試集,其中訓練集1440張,驗證集和測試集各180張。
3.2訓練環境
實驗中算法模型的訓練和測試基于Win10操作系統、1.13.1版本的PyTorch框架。硬件配置為Inter Core i9-12900KF@ 3.2GHz,NVIDIA GeForce GTX 3080Ti-12G。實驗采用隨機梯度下降算法(stochastic gradient descent,SGD)對網絡進行訓練,初始學習率設置為0.01,權重衰減系數設置為0.0005,批量輸入圖片設置為16,輸入圖片尺寸大小設置為640×640,訓練次數設置為300輪。
3.3評價指標
采用平均精度均值(mAP)評價網絡結構性能,模型檢測幀數(FPS)評價模型檢測的速度,參數量(Params)及計算量(floating-point operations,FLOPs)評估模型運算量大小。
3.4改進前后模型對比
本文分別對改進前后的YOLOv5s模型進行訓練,得到的結果對比見表4。改進部分包括在Backbone 引入CA注意力、用EfficientNetV2替換主干網絡、在Neck層引入Biformer注意力、使用K-means++ 聚類算法優化Anchor,實驗結果得到的精度為81.7%,較基準模型提高6.4%,參數量下降18.8%,計算量下降60.2%,檢測速度達到了91 FPS,實現模型輕量化的同時提高了精度,基本滿足工業需求。
3.5消融實驗
將采用的優化方法分別添加到YOLOv5s中,在數據集進行實驗,算法參數、實現環境保持一致。由表5可看出,引入單個CA,Biformer注意力可以提高模型精度,但無法降低模型運算量,使用EfficientNet V2替換主干網絡可以減小模型運算量,實現模型輕量化,還可以提高精度,將單個注意力與替換主干網絡的方式改進網絡,實現模型精度上升的同時還能減少運算量,但精度還有提升的空間,同時引入CA,Biformer注意力并使用EfficientNet V2替換主干網絡實現更高的精度。由此可見,本文對YOLOv5的改進優化算法具備有效性。
3.6對比實驗
為了進一步評估本文提出的YOLOv5s-ECB的性能,在同樣實驗環境和同一數據集下,選擇YOLOv3,YOLOv3-SPP,YOLOv6s,YOLOv7s,YOLOv7-x,YOLOv8n,YOLOv8s這7種主流模型進行對比實驗,結果見表6。
對比實驗數據可見,本文提出的YOLOv5s-ECB模型較其他目標檢測算法,平均精度均值明顯提高,參數量和運算量明顯下降,檢測速度滿足工業檢測需求,達到輕量化的鋼材缺陷檢測標準。
3.7可視化檢測結果
從測試集中隨機選取不同場景下的小目標缺陷圖片,通過YOLOv5s-ECB算法進行測試驗證,部分實驗結果如圖3所示。在相同尺寸下,YOLOv5s-ECB對缺陷檢測有較好的效果,在圖3(a)與圖3(b)中,算法可準確檢測到壓入氧化鐵皮、劃痕、夾雜缺陷類型和位置,但算法仍有較大提升空間。如圖3(c)與圖3(d)所示,雖然檢測出劃痕缺陷類型和位置,但未檢測出圖片中還存在的劃痕缺陷。
隨機抽取部分檢測結果做熱力圖可視化,結果如圖4所示,YOLOv5s-ECB算法能對圖像中的缺陷精準識別并且定位,具有良好的檢測結果。
4結論與展望
本文采用改進的YOLOv5s優化算法來檢測鋼材表面缺陷,彌補了目前檢測算法存在的模型結構復雜、體積較大、檢測精度較低等不足。改進YOLOv5s網絡結構包括在Backbone層引入CA注意力、將主干網絡替換為EfficientNet V2、在Neck層引入Biformer注意力、使用更先進的K-means++聚類算法得到Anchor。在NEU-DET數據集中驗證了改進算法YOLOv5s-ECB的有效性,實驗結果得到的精度為81.7%,較基準模型提高6.4%,參數量下降18.8%,計算量下降60.2%,提高精度的同時還實現了模型輕量化。以后將進一步優化網絡結構提高檢測精度和速度,最終完成特定設備部署。
參考文獻:
[1]KRAJCINOVIC D,FONSEKA G U.The continuous damage theory of brittle materials[J].J Appl Mech,1981,48(4):809-824.
董添.2023年我國鋼材產量超13.6億噸[N].中國證券報,2024-01-19(A06).
[2]彭向前.產品表面缺陷在線檢測方法研究及系統實現[D].武漢:華中科技大學,2009.
[3]LIU W,ANGUELOV D,ERHAN D,et al.SSD:Single shot MultiBox detector [C]// Proceedings of the 2014 European Conference on Computer Vision,LNCS 9905.Cham:Springer,2016:21-37.
[4]REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:Unified,real-time object detection[C]//The IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas:IEEE,2016:779-788.
[5]GIRSHICK R.Fast R-CNN:Towards real-time object detection with region proposal networks[C]// Proceedings of The IEEE International Conference on Computer Vision.Boston:ICCV,2015:1440-1448.
[6]LIN T Y,DOLLAR P,GIRSHICK R B,et al.Feature pyramid networks for object detection[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,Honolulu,USA:IEEE,2017:2117-2125.
[7]張陽婷,黃德啟,王東偉,等.基于深度學習的目標檢測算法研究與應用綜述[J].計算機工程與應用,2023,59(18):1-13.
[8]LI J,SU Z,GENG J,et al.Real-time detection of steel strip surface defects based on improved YOLO detection network[J].IFAC-PapersOnLine,2018,51(21):76-81.
[9]孫連山,魏婧雪,朱登明,等.基于AM-YOLOv3模型的鋁型材表面缺陷檢測算法[J].激光與光電子學進展,2021,58(24):360-370.
[10]張寶朋,康謙澤,李佳萌,等.輕量化的YOLOv4目標檢測算法[J].計算機工程,2022,48(8):206-214.
[11]李鑫,汪誠,李彬,等.改進YOLOv5的鋼材表面缺陷檢測算法[J].空軍工程大學學報(自然科學版),2022,23(2):26-33.
【責任編輯:封文江】
收稿日期:2024-05-21
基金項目:遼寧省教育廳科學研究經費項目(LZD202003)
作者簡介:
吳迪(1979—),男,遼寧沈陽人,沈陽師范大學副教授,博士;通信作者:李睿智(1997—),男,山西臨汾人,沈陽師范大學在讀碩士研究生。