謝良輝 趙乘麟
摘? 要:針對(duì)傳統(tǒng)算法檢測(cè)鋼材表面缺陷(如開(kāi)裂、斑塊、劃痕等)精準(zhǔn)度較低的問(wèn)題,提出一種基于分割與分類的兩段式深度學(xué)習(xí)網(wǎng)絡(luò)。該網(wǎng)絡(luò)是專為表面缺陷的檢測(cè)、分割以及分類而設(shè)計(jì)的。第一階段利用YOLOv5算法對(duì)鋼材表面的缺陷進(jìn)行定位、分割;第二階段使用EfficientNet網(wǎng)絡(luò)對(duì)鋼材表面的六種缺陷類型進(jìn)行分類。實(shí)驗(yàn)結(jié)果表明,相較于傳統(tǒng)的YOLOv5算法,該方法的平均精準(zhǔn)度提高了16%,適合用于鋼材表面缺陷檢測(cè)。
關(guān)鍵詞:深度學(xué)習(xí);YOLOv5;缺陷檢測(cè);鋼材表面
中圖分類號(hào):TP391.4;TG115? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)03-0147-04
Steel Surface Defect Detection Method Based on Double Network
XIE Lianghui1,2, ZHAO Chenglin1,2
(1.Hunan Provincial Key Laboratory of Southwest Hunan Rural Informatization Service, Shaoyang? 422000, China;
2.School of Information Engineering, Shaoyang University, Shaoyang? 422000, China)
Abstract: In order to solve the problem of low accuracy of traditional algorithms for detecting steel surface defects such as cracks, patches and scratches, a two-stage deep learning network based on segmentation and classification is proposed in this paper, the network is designed for the detection, segmentation and classification of surface defects. In the first stage, uses YOLOv5 algorithm to locate and segment the defect on the steel surface. In the second stage, uses the EfficientNet network to classify six types of defects on steel surfaces. The experimental results show that the average accuracy of this method is improved by 16% compared with the traditional YOLOv5 algorithm, and it is suitable for steel surface defect detection.
Keywords: deep learning; YOLOv5; defect detection; steel surface
0? 引? 言
鋼材是一種重要的工業(yè)產(chǎn)品,在工業(yè)中的用途非常廣泛。隨著工業(yè)制造水平的不斷提高,鋼材產(chǎn)品在車輛工程、建筑、機(jī)械制造等領(lǐng)域逐漸成為重要的原材料[1]。然而,在其生產(chǎn)制造的過(guò)程中,由于受生產(chǎn)設(shè)備和各種外界環(huán)境因素的影響,鋼材表面不可避免地出現(xiàn)開(kāi)裂、劃痕、斑塊等缺陷[2]。這些缺陷不僅會(huì)對(duì)工業(yè)產(chǎn)品的外觀產(chǎn)生影響,而且還會(huì)降低鋼材的抗腐蝕性和韌性,如果將這樣的鋼材應(yīng)用到各大工業(yè)領(lǐng)域中,則會(huì)產(chǎn)生潛在的風(fēng)險(xiǎn)。因此,研究表面缺陷檢測(cè)算法對(duì)于生產(chǎn)高質(zhì)量外觀的鋼材具有十分重要的意義[3]。
傳統(tǒng)的鋼材表面缺陷檢測(cè)方法包括人工檢測(cè)和光電檢測(cè)。人工檢測(cè)的方法可能會(huì)出現(xiàn)對(duì)工業(yè)產(chǎn)品缺陷的漏檢,效率低下、檢測(cè)標(biāo)準(zhǔn)不統(tǒng)一等問(wèn)題,因此,人工檢測(cè)逐漸被淘汰和棄用。光電檢測(cè)又分為渦流檢測(cè)和漏磁檢測(cè)[4]。渦流檢測(cè)是通過(guò)檢測(cè)線圈觀察感應(yīng)電流和阻抗的變化來(lái)判斷產(chǎn)品表面是否有缺陷。該方法具有檢測(cè)速度快、靈敏度高等優(yōu)點(diǎn),但該方法存在耗費(fèi)資源較大、難以檢測(cè)輕微劃痕、對(duì)探頭要求較高等缺點(diǎn),因此該方法并不適用于鋼材表面缺陷檢測(cè)。漏磁檢測(cè)是通過(guò)磁化裝置把被測(cè)產(chǎn)品磁化到飽和狀態(tài),通過(guò)磁敏探頭檢測(cè)泄漏的磁力線,推算出被測(cè)產(chǎn)品的缺陷形態(tài)。雖然該方法的檢測(cè)速度快、成本低,但其難以準(zhǔn)確區(qū)分缺陷種類,因此不適合用于鋼材表面缺陷檢測(cè)。
隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法在特征提取和定位上取得了非常好的效果,科研人員逐漸將深度學(xué)習(xí)算法應(yīng)用于缺陷檢測(cè)的領(lǐng)域?;谏疃葘W(xué)習(xí)的算法主要包含兩類:一類是以R-CNN、Fast R-CNN、Faster R-CNN[5]為主的二階段算法;另一類是以YOLO、SSD為主的一階段算法,該算法基于回歸思想,使定位和分類可以同時(shí)進(jìn)行。相較于二階段算法,YOLO系列算法在速度上更快,但是精準(zhǔn)度卻有所下降。文獻(xiàn)[6]中提出一種改進(jìn)的檢測(cè)算法RTiny-YOLOv3,通過(guò)在該算法中加入殘差網(wǎng)絡(luò)和增加優(yōu)化的SPP模塊,使得鋼材表面缺陷的檢測(cè)精度得以提高。文獻(xiàn)[7]采用目前較為流行的YOLOv5s模型實(shí)現(xiàn)軋鋼表面缺陷的識(shí)別與定位,使軋鋼表面缺陷檢測(cè)的精準(zhǔn)度得以提升。
鋼材表面的缺陷種類比較多,并且形態(tài)多樣,若僅用單一的YOLOv5網(wǎng)絡(luò)模型檢測(cè)鋼材表面缺陷,難以達(dá)到較高的精準(zhǔn)度。因此,本文針對(duì)YOLOv5算法檢測(cè)鋼材表面缺陷精準(zhǔn)度偏低的問(wèn)題,提出一種將YOLOv5與EfficientNet相結(jié)合的雙網(wǎng)絡(luò)算法。實(shí)驗(yàn)結(jié)果表明,雙網(wǎng)絡(luò)算法對(duì)鋼材表面缺陷檢測(cè)的平均精度(MAP)有所提高。該算法在鋼材表面缺陷檢測(cè)中性能優(yōu)異,可考慮應(yīng)用于工業(yè)產(chǎn)品的檢測(cè)。
1? 鋼材缺陷檢測(cè)模型
本文使用的缺陷檢測(cè)模型基于東北大學(xué)的熱軋帶鋼(鋼材)表面缺陷的開(kāi)源數(shù)據(jù)集,思路是采用YOLOv5算法對(duì)鋼材表面的缺陷進(jìn)行定位、分割,再使用EfficientNet網(wǎng)絡(luò)對(duì)鋼材表面的六種缺陷類型(包括卷曲、斑塊、開(kāi)裂、點(diǎn)蝕、夾雜物、劃痕)進(jìn)行分類處理。
1.1? YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5的作者對(duì)COCO數(shù)據(jù)集進(jìn)行了測(cè)試,對(duì)于COCO的小目標(biāo)所占份額,四種不同的網(wǎng)絡(luò)架構(gòu)各有其優(yōu)勢(shì)。其中,YOLOv5s是最小的,最快的,也是最精確的AP。另外三種不同的網(wǎng)絡(luò)YOLOv5m、YOLOv5l、YOLOv5x都是基于這一點(diǎn),不斷地進(jìn)行挖掘和提升,AP的準(zhǔn)確率也在不斷提高,但是代價(jià)卻越來(lái)越大。YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)圖由四個(gè)模塊組成,分別是Input、Backbone、neck、輸出層,如圖1所示。
Input包含三個(gè)部分:第一部分是Mosaic數(shù)據(jù)增強(qiáng),原理是將四張圖片通過(guò)隨機(jī)放大、隨機(jī)裁剪、隨機(jī)排列等方式進(jìn)行拼接,其在小目標(biāo)的探測(cè)中效果非常好;第二部分是自適應(yīng)錨框計(jì)算,對(duì)于各種不同的數(shù)據(jù)集,在一個(gè)具有初始長(zhǎng)度和寬度的方形錨基礎(chǔ)上輸出預(yù)測(cè)框,通過(guò)預(yù)測(cè)框與真實(shí)標(biāo)簽的對(duì)比,計(jì)算函數(shù),然后不斷地進(jìn)行更新,最終找到最合適的錨框數(shù)值;第三部分是自適應(yīng)圖片縮放,由于傳統(tǒng)的圖像檢測(cè)方法中,圖像的長(zhǎng)度和寬度有很大的差異,所以通常的方法是將不同尺寸的初始圖片自適應(yīng)地增添最小黑色邊框,之后進(jìn)行統(tǒng)一的壓縮,然后將其輸入到檢測(cè)網(wǎng)絡(luò)中。
Backone主要包括Focus模塊、CSP模塊、SPP模塊。Focus模塊的主要作用是對(duì)圖像進(jìn)行切片操作,相當(dāng)于進(jìn)行下采樣,圖片經(jīng)過(guò)切片后尺寸會(huì)縮小,通道數(shù)會(huì)增加。然后進(jìn)行卷積操作,最終會(huì)得到不丟失任何信息的32個(gè)通道的特征圖。在保證計(jì)算速度提高的前提下,完整地保留了圖像信息。YOLOv5采用兩種CSP架構(gòu),其中YOLOv5s采用CSP1_X架構(gòu),而在Neck中采用CSP2_X架構(gòu)。CSP架構(gòu)把梯度變化合并到特征圖,解決了由于網(wǎng)絡(luò)優(yōu)化中梯度信息重復(fù)而導(dǎo)致的計(jì)算量龐大的問(wèn)題。SPP模塊可進(jìn)行特征層的多尺度池化與融合,增加了感受野,提高了檢測(cè)的精準(zhǔn)度。
頸部層(neck)采用的是FPN與PAN相結(jié)合的架構(gòu),前者是從上到下將強(qiáng)語(yǔ)義特征由深層傳遞到底層,而后者是自下而上將強(qiáng)定位特征從底層傳達(dá)到頂層,強(qiáng)強(qiáng)聯(lián)合,增強(qiáng)網(wǎng)絡(luò)特征融合的能力。
輸出層以GIoU_Loss作為Bounding box的損失函數(shù),預(yù)測(cè)結(jié)果的好壞與數(shù)值的大小相關(guān),此外,通過(guò)非極大值抑制可以解決多個(gè)預(yù)測(cè)框同時(shí)出現(xiàn)的問(wèn)題,利用加權(quán)NMS保留最匹配的目標(biāo)框。
1.2? EfficientNet網(wǎng)絡(luò)基本結(jié)構(gòu)
表1中給出了EfficientNet網(wǎng)絡(luò)的具體參數(shù)。
整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)分為9層,除了堆疊在一起的第二層到第八層的MBConv結(jié)構(gòu)之外,第一層是卷積核大小為3×3的卷積層,最后一層是由一個(gè)卷積核大小為1×1的普通卷積層、一個(gè)平均池化層和一個(gè)全連接層構(gòu)成的。
Efficient Net通過(guò)同時(shí)提高網(wǎng)絡(luò)寬度、網(wǎng)絡(luò)深度以及輸入網(wǎng)絡(luò)的分辨率來(lái)增強(qiáng)網(wǎng)絡(luò)的性能,只單獨(dú)增加網(wǎng)絡(luò)的某一個(gè)屬性對(duì)網(wǎng)絡(luò)性能的影響。圖2(e)是同步增加網(wǎng)絡(luò)的寬度、深度及分辨率,如圖2所示。
其中最重要的是MBConv模塊,它的作用是對(duì)網(wǎng)絡(luò)的輸入進(jìn)行卷積操作,使得網(wǎng)絡(luò)的寬度、深度、分辨率能夠互相調(diào)和,之后再進(jìn)行一次深度卷積操作,最后將這三個(gè)網(wǎng)絡(luò)的寬度、深度和分辨率的值進(jìn)行縮放,目的是最大限度地提升網(wǎng)絡(luò)的性能。
因?yàn)镋fficient Net是通過(guò)加入DropConnect的方式來(lái)降低模型過(guò)擬合的風(fēng)險(xiǎn),其原理是在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,對(duì)隱層節(jié)點(diǎn)的輸入進(jìn)行隨即丟棄。同時(shí),我們?cè)贓fficient Net網(wǎng)絡(luò)結(jié)構(gòu)的最后加入Dropout,從而不必采用訓(xùn)練多個(gè)模型的方法,不但避免了過(guò)擬合情況的發(fā)生,而且由于免除了多模型的訓(xùn)練過(guò)程,從而節(jié)約了大量的時(shí)間。也就是說(shuō),我們將隱層節(jié)點(diǎn)的輸入和輸出丟棄,使得網(wǎng)絡(luò)對(duì)新鮮樣本的適應(yīng)能力增強(qiáng),對(duì)數(shù)據(jù)集之外圖像中缺陷的檢測(cè)準(zhǔn)確率提高。
本文選擇的分類網(wǎng)絡(luò)版本是Efficient Net B2,Efficient Net的模型準(zhǔn)確率是從B0到B7逐步上升的,但是由于B3之后的計(jì)算量成倍增加,再考慮到自己的硬件成本,故選擇了準(zhǔn)確率較高、計(jì)算量較小的B2模型。
2? 實(shí)驗(yàn)與分析
之前提及的思路是:YOLOv5負(fù)責(zé)檢測(cè)定位缺陷(不進(jìn)行類別的劃分),并裁剪缺陷區(qū)域。EfficientNet的輸入為YOLOv5裁剪好的bbox,輸出為6個(gè)類別中的某一類。
原數(shù)據(jù)集是已標(biāo)注好的,因此YOLOv5算法對(duì)數(shù)據(jù)集中缺陷部分的框選是非常準(zhǔn)確的,這也有利于之后在EfficientNet網(wǎng)絡(luò)中對(duì)數(shù)據(jù)集進(jìn)行分類操作,如圖3所示。
YOLOv5網(wǎng)絡(luò)隨著訓(xùn)練迭代次數(shù)的增加,會(huì)出現(xiàn)各類數(shù)據(jù)的變化曲線,其中包括mAP、obj_loss、precision等。本次實(shí)驗(yàn)是在配備NVIDIA GTX1080Ti的GPU的PC上Pytorch訓(xùn)練Efficient Net模型。在訓(xùn)練時(shí)應(yīng)用了批處理學(xué)習(xí)方法,batch size為16,對(duì)每個(gè)epoch進(jìn)行50個(gè)step。權(quán)重通過(guò)標(biāo)準(zhǔn)高斯分布初始化,YOLOv5網(wǎng)絡(luò)的權(quán)重是從ImageNet網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練后的權(quán)重。優(yōu)化器選擇的是在SGDM的基礎(chǔ)上進(jìn)行改進(jìn)的包含自適應(yīng)學(xué)習(xí)率的Adam,其momentum值設(shè)置為0.5,學(xué)習(xí)率初始化為0.001,每100次迭代將學(xué)習(xí)率降低0.1,直至分類網(wǎng)絡(luò)收斂。訓(xùn)練結(jié)果如圖4所示。
EfficientNet網(wǎng)絡(luò)參數(shù)如下:
分類模型epoch150次;batch_size設(shè)置為4;訓(xùn)練集圖片張數(shù)為2 929;測(cè)試集圖片為126張;每個(gè)epoch的step=732;優(yōu)化器使用SGD,設(shè)置momentum值為0.9,初始學(xué)習(xí)率為0.01,學(xué)習(xí)率衰減采用余弦退火。
由于檢測(cè)網(wǎng)絡(luò)YOLOv5已經(jīng)對(duì)數(shù)據(jù)集中的圖像進(jìn)行分割,分類模型的輸入是經(jīng)過(guò)裁剪的圖像,無(wú)法繪制出檢測(cè)框,分類模型只有類別輸出,如圖5所示。經(jīng)過(guò)Efficient Net分類的準(zhǔn)確率能夠達(dá)到91.8%,而如果僅僅使用YOLOv5進(jìn)行分類,則只能獲得75%的準(zhǔn)確率??梢哉f(shuō),本次實(shí)驗(yàn)所使用的二階段網(wǎng)絡(luò),大大提升了分類的準(zhǔn)確率。
3? 結(jié)? 論
本文從工業(yè)應(yīng)用的角度探討了一種通過(guò)分割網(wǎng)絡(luò)進(jìn)行表面缺陷檢測(cè)的深度學(xué)習(xí)方法,并提出一種兩階段的方法。第一階段包括在缺陷的像素級(jí)標(biāo)簽上訓(xùn)練的分割網(wǎng)絡(luò),而第二階段包括在分割網(wǎng)絡(luò)之上構(gòu)建的分類網(wǎng)絡(luò),用以檢測(cè)整個(gè)圖像是否存在缺陷,以及其分屬哪種類型的缺陷。
表面缺陷表現(xiàn)為鋼材表面的腐蝕、開(kāi)裂、卷曲、劃痕等。對(duì)本文所提方法與單純使用YOLOv5分類方法的檢測(cè)效果進(jìn)行了比較。在東北大學(xué)的熱軋帶鋼(鋼材)表面缺陷數(shù)據(jù)集上的實(shí)驗(yàn)表明,本文所提模型相較于只有一個(gè)錯(cuò)誤分類的相關(guān)方法效果明顯提高,而相關(guān)方法實(shí)現(xiàn)了五個(gè)乃至更多的缺陷分類。這可以歸因于所提出的帶有分割和分類網(wǎng)絡(luò)的二階段設(shè)計(jì),改進(jìn)的感受野大小以及提高的缺陷細(xì)節(jié)檢測(cè)能力。
然而,本文所提出的方法僅限于特定類型的任務(wù),例如鋼材的缺陷檢測(cè),因?yàn)樵摷軜?gòu)是針對(duì)像素級(jí)分割任務(wù)而設(shè)計(jì)的。如果存在其他質(zhì)量問(wèn)題,該解決方案會(huì)不太適合。例如,復(fù)雜3D對(duì)象的質(zhì)量控制可能需要檢測(cè)損壞或丟失的部分,這些問(wèn)題可以通過(guò)檢測(cè)方法(例如Mask RCNN)得以解決。
參考文獻(xiàn):
[1] 劉坤,張曉懌,陳海永.帶鋼表面質(zhì)量在線檢測(cè)系統(tǒng)研究與設(shè)計(jì) [J].計(jì)算機(jī)測(cè)量與控制,2015,23(6):1881-1884.
[2] 劉坤,陳寧紀(jì),張曉懌.實(shí)時(shí)帶鋼表面質(zhì)量檢測(cè)算法研究與應(yīng)用 [J].機(jī)械設(shè)計(jì)與制造,2015(7):74-76+79.
[3] 徐鳳云.基于神經(jīng)網(wǎng)絡(luò)的鋼材表面缺陷快速檢測(cè) [D].南京:南京理工大學(xué),2009.
[4] 吳平川,路同浚,王炎.鋼板表面缺陷的無(wú)損檢測(cè)技術(shù)與應(yīng)用 [J].無(wú)損檢測(cè),2000(7):312-315.
[5] REN S Q,HE K M,GIRSHICK R,et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks [J].IEEE transactions on pattern analysis and machine intelligence,2017,39(6):1137-1149.
[6] 劉洋.基于深度學(xué)習(xí)的工業(yè)鋼材瑕疵檢測(cè)研究 [D].合肥:安徽建筑大學(xué),2021.
[7] 李一鳴,王瀟.基于YOLOv5s模型的軋鋼表面缺陷檢測(cè) [J].制造業(yè)自動(dòng)化,2021,43(11):117-119.
作者簡(jiǎn)介:謝良輝(1996—),男,漢族,河南濮陽(yáng)人,碩士研究生在讀,研究方向:機(jī)器視覺(jué)。
收稿日期:2022-10-10
基金項(xiàng)目:湖南省教育廳重點(diǎn)項(xiàng)目(19A446);邵陽(yáng)學(xué)院研究生科研創(chuàng)新項(xiàng)目(CX2022SY051)