魏明軍,陳釗,紀占林,周太宇,閆旭文,劉銘
(華北理工大學 a.人工智能學院;b.河北省工業智能感知重點實驗室,河北 唐山 063210)
鋼材表面缺陷檢測經歷了人工檢測、傳統光電檢測和機器視覺檢測3個主要發展階段[1-2].從20世紀60年代以來,機器視覺技術的出現使得工業上的缺陷檢測有了質的提升.與國外相比,國內對于缺陷識別的研究起步較晚.1991年華中理工大學的羅志勇[3]將線列CCD用于檢測鋼板的孔洞缺陷.1996年,又再次研究出由許多面陣CCD和DSP、PC機相結合組成的一套新的圖像檢測系統[4],實現了對冷軋帶鋼表面缺陷進行檢測.2011年,楊永敏等[5]研究了基于機器視覺的冷軋帶鋼表面缺陷檢測系統.2022年,布申申等[6]提出一種用于帶鋼表面缺陷檢測的深度神經網絡模型Ds-DenseNet,該模型主要解決現有帶鋼表面缺陷檢測方法準確率低、特征泛化性不強、參數多、識別速度慢等問題.但其缺點是只針對以前無花的普通帶鋼進行檢測,對于具有鋅花紋理的新型鍍層鋼板無專門的訓練檢測.在檢測過程中鋅花會對產品表面缺陷的檢測造成干擾,從而使檢測的精度受一定影響.目前,國內未見公開發表的針對鋅花背景干擾下帶鋼表面缺陷檢測的研究成果,本文針對某鋼廠鍍鋅生產線采集的真實缺陷圖譜展開研究,通過STI-YOLO模型抑制鋅花背景的干擾,同時增大預測特征圖的感受野,從而提高檢測精度,改善漏檢.
YOLOv5算法與之前的YOLO系列算法[7-9]相比較,仍由主干特征提取網絡、特征融合網絡和回歸預測三部分組成,主干特征提取網絡使用的是CSP-Darknet53[10]網絡,不同的是加入了Focus網絡結構,使輸入的通道數快速擴張4倍,并且將空間金字塔池化結構(Spatial Pyramid Pooling,SPP)加入到主干特征提取網絡中,增大感受野的尺寸.在特征融合網絡結構部分,依然采用了路徑聚合網絡(Path Aggregation Network,PANet),達到了提取上下文特征的目的.PANet網絡結構通過自下而上的路徑縮短了底層和最頂層之間的信息路徑,避免信息丟失問題,同時融合后的特征圖既包含底層位置信息也包含較強的語義特征.YOLOv5總共包含s、m、l、x 4個算法模型,YOLOv5s網絡最小,速度最快,平均精度也最低.其他的3種網絡,在s基礎上,不斷加深加寬網絡,平均精度也不斷提升,但速度的消耗也在不斷增加.本文以YOLOv5s算法為基礎,在特征圖輸入到特征融合網絡PANet之前先引入通道注意力機制(Squeeze-and-Excitation Network,SENet)[11],抑制鋅花背景的干擾,提高有效特征的利用率,濾除冗余的鋅花背景信息.再將進行特征融合之后的3個不同尺度的特征圖輸入到金字塔卷積(Pyramidal Convolution,PyConv)[12]網絡中,提取更加豐富的缺陷信息,使得用于預測的特征圖具有更好的魯棒性.
STI-YOLO模型的輸入是分辨率為640×640的圖片,其網絡結構如圖1所示.

算法執行的具體步驟如下:
1)輸入尺寸大小為640×640、通道數為3的圖片.經過Focus網絡結構,將輸入通道擴充了4倍;
2)經過DarknetCon2D_BN_SiLU模塊通道擴充為64;
3)經過4個Resblock body模塊,提取到低層、中層和高層特征圖,其尺度大小分別為80×80、40×40和20×20;
4)將主干特征網絡提取到大小20×20、40×40和80×80的特征圖分別輸入到SENet網絡中抑制鋅花背景的干擾;
5)利用PANet進行特征融合,獲得3個不同尺度的特征圖.然后將上采樣和下采樣產生的新特征圖利用橫向連接進行Concat連接;
6)對生成的新特征圖輸入到金字塔卷積網絡中,進行多尺度特征處理,產生更豐富的特征信息,增加預測特征圖的魯棒性;
7)生成的特征圖輸入到YOLO Head中進行預測;
8)生成預測框.
在深度卷積神經網絡中,高層特征圖包含更多有利于目標分類的強語義信息,但分辨率低,位置信息粗糙.低層特征圖包含更多有利于目標定位的位置信息和輪廓細節,但其分辨率高,語義信息弱.YOLOv5s算法使用PANet進行加強特征融合,在主干網絡提取的特征圖里包含了部分鋅花背景干擾造成的冗余特征.為了解決這一問題,抑制鋅花背景對缺陷檢測的干擾,引入SENet.如圖2所示,具體操作是將主干特征網絡提取的特征圖輸入到SENet中突出重要特征,減少鋅花背景的干擾.從而有利于PANet得到更有效的特征,提高缺陷識別的準確率.并在預測之前加入金字塔卷積,從而使得增加感受野的同時獲取更豐富的上下文特征.

1.2.1SENet模塊
SENet通過對通道關系進行建模從而提升網絡性能,主要包括Squeeze(壓縮)和Excitation(激發)兩個關鍵操作.模型通過學習自動獲取每個通道的重要程度,然后根據每個通道的重要程度提升有用特征的權重并抑制對當前任務有干擾的冗余特征.
如圖3所示:輸入通道數為c1的特征x,通過一系列卷積操作(Ftr)將特征通道數變為c2.然后再進行壓縮(Fsq)操作和激發(Fex)操作.

SENet通過網絡學習特征權重,獲取到每個特征圖的重要程度,然后按照重要程度對每個特征通道賦予一個權重值,對任務重要的特征圖賦予較大的權重,對不重要的特征圖賦予較小的權重,從而使模型達到更好的訓練效果.SENet的結構如圖4所示.圖4中表示輸入一個大小為H×W×C的特征圖,共C個通道數.然后進行一次空間的全局平均池化,每個通道得到一個標量,輸出為1×1×C,然后再送入兩層的全連接神經網絡,同時保持特征圖大小不變,然后再通過一個Sigmoid函數得到C個0~1之間格式為1×1×C的權重,作為C個通道各自的權重,然后將對應通道的每個元素與權重分別相乘.其中H代表特征圖的高,W代表特征圖的寬,r表示降維系數.
1.2.2PyConv模塊
PyConv中包含不同大小和深度的卷積核,以此捕捉不同尺度的細節信息.原PANet網絡中的下采樣操作會造成輸入特征圖的信息損失,影響模型性能.而使用PyConv模塊可以在不增加額外計算量的同時擴大感受野,通過采用不同尺寸的卷積核捕獲多尺度的細節信息.
如圖5所示,金字塔卷積網絡包含一個具有n個不同大小卷積核的金字塔網絡結構.在不增加計算成本或模型復雜性的情況下,以不同的卷積核大小處理輸入.每個卷積核都包含不同的空間大小,從金字塔的底部到頂部卷積核大小逐漸增加,隨著卷積核大小從1到n逐漸增加,卷積核的深度從n到1逐漸降低,形成互為反向鏈接的金字塔結構.

通過分組卷積,對每個級別使用不同深度的卷積核.如圖6所示,輸入8個特征圖,(a)為標準卷積,(b)和(c)分別表示group為2和4的分組卷積,(b)和(a)相比核的深度減少2.當卷積組的數量增加到4時,卷積核的深度減少,參數量和計算成本減少.

在進入到YOLO Head進行分類預測之前,根據不同的特征圖尺寸對輸入的特征圖進行分組卷積以擴大感受野.PyConv網絡結構如圖7所示.
以通道數Ci=256的特征圖為例,首先經過1×1的卷積將輸入特征通道數由256減少到64,經過PyConv模塊分組卷積,4個卷積核的大小分別為:9×9、7×7、5×5、3×3.此外,卷積核的深度在每個級別上都有所不同,從G=16(分組為16)到G=1(標準卷積的分組).每個卷積核輸出的通道數為16,最后輸出的特征圖通道數為64.然后用1×1卷積恢復輸入的通道數256.每個1×1卷積前后都有標準化函數BN和ReLU激活函數.右側為快捷連接,可以有效回傳梯度.
YOLOv5s算法一共生成3個特征圖,每個特征圖對應3種不同類型的先驗框,所以YOLOv5s算法一共生成9個先驗框.YOLOv5s算法的9個默認先驗框由K-means算法對MS COCO[13](Microsoft Common Objects in Context)數據集的目標框聚類得到.根據本文缺陷數據集用K-means算法重新聚類得到新的先驗框尺寸,使得先驗框與真實框更加匹配,以減少默認先驗框對檢測精度的影響.大、中、小目標分別對應20×20、40×40、80×80的特征圖.默認先驗框和調整后先驗框與預測特征圖大小的對應關系如表1所示.

表1 預測特征圖與先驗框的對應關系
硬件環境:CPU:Intel(R)Core(TM)i5-11400F;顯卡:NVIDIA GeForce RTX 3050;內存:16 GB RAM.
軟件環境:操作系統:Windows10;編程語言:Python;運行框架:PyTorch.
本文使用自制帶鋼表面缺陷數據集,其中圖片來源于某鋼廠鍍鋅生產線采集的真實缺陷圖譜.本文自制數據集包含常見的6種缺陷圖片3 190張,訓練集圖片與測試集圖片數量的比例為9∶1,標簽分為焊縫(We)、劃傷(Sc)、鋅渣(Zn)、漏鍍(Sk)、鋅流紋(Fo)、油斑(Sp)6類,其中主要缺陷圖片如圖8所示.對數據集用Labelimg對目標缺陷進行標注.訓練參數為迭代300個epoch,學習率設置為0.01,前150次進行凍結主干網絡訓練,batch_size設置為16,后150次解凍訓練將batch_size設置為8.

本文以平均精度均值(PMA)和平均精度(PA)來評價算法的缺陷檢測識別效果,PMA和PA的值越大表明檢測效果越好.采用單位時間內檢測的圖片數量(SFP)作為模型檢測速度的評價標準,單位時間內檢測的圖片數量越多,模型的檢測速度越快.計算公式如下:

(1)
(2)
(3)
式(1~3)中:p為查準率,r為召回率,p(r)表示某個r對應的p的值;PA為平均精度值,k表示缺陷的種類數;Fc表示檢測的圖片數量,Tt表示檢測所消耗的總時間.
確定使用的模型后對SENet的降維系數以及SENet的位置進行實驗,調整先驗框尺寸,以使得改進后的網絡效果更優,前兩個實驗結果均基于默認先驗框得出.
2.4.1SENet模塊降維系數實驗
通過對數據集訓練顯示平均精度均值并不是隨著SENet的降維系數r的增長而增長,當降維系數r=16時,平均精度均值最高為94.73%,因此設定降維系數r的值為16.
2.4.2SENet模塊位置實驗
將SENet分別添加在兩次上采樣之后、一次上采樣之后和一次下采樣之后、PANet網絡之前,經過實驗對比顯示將SENet添加在PANet網絡之前平均精度均值為94.73%,優于其他位置.雖檢測速度略有下降,但本文更多考慮精度需求,因此將SENet添加到PANet網絡之前.
2.4.3先驗框的優化實驗
通過實驗對比,YOLOv5s模型根據本文數據集重新聚類調整先驗框之后比調整之前PMA提高了0.53個百分點.STI-YOLO模型調整先驗框之后比調整之前PAM提高了0.36個百分點,重新聚類后取得的先驗框尺寸對提高模型的檢測精度有效.
為了驗證改進點對于網絡模型的作用,通過消融實驗進行對比,只添加PyConv模塊和只添加SENet模塊相較于原模型分別提升了0.50個百分點和0.59個百分點,使用所有改進之后提升了1.54個百分點.
使用本文數據集訓練SSD300(輸入圖片尺寸大小為300×300)、YOLOv3、YOLOv4、YOLOv5s以及STI-YOLO模型(本文模型),并進行效果對比.
如圖9所示,5種算法模型均能檢測出焊縫(We)缺陷,SSD300模型的置信度為1.00,YOLOv3模型置信度為0.97,YOLOv4置信度為0.97,YOLOv5置信度為0.90,STI-YOLO置信度為0.92.所有模型檢測焊縫缺陷的置信度均在0.90以上,但YOLOv4和YOLOv5s在檢測過程中出現鋅流紋(Fo)的錯檢情況,STI-YOLO模型未發生錯檢.

圖10所示為劃傷(Sc)缺陷的檢測結果,YOLOv3和YOLOv5s分別出現劃傷缺陷的1處漏檢,YOLOv4出現油斑(Sp)1處錯檢.相比其他模型,STI-YOLO模型對缺陷檢測的邊界框更加準確,精準識別出2處劃傷缺陷和2處鋅渣(Zn)缺陷.

圖11所示為鋅渣(Zn)缺陷的檢測情況,SSD300、YOLOv3、YOLOv4、YOLOv5s均有漏檢的情況,STI-YOLO模型對鋅渣缺陷沒有發生漏檢.

圖12所示為漏鍍(Sk)缺陷的檢測結果,SSD300、YOLOv3、YOLOv4、YOLOv5s均出現漏檢,YOLOv3、YOLOv4和YOLOv5s僅檢測出較大漏鍍缺陷,對于較小的漏鍍缺陷無法識別,STI-YOLO模型基本將帶鋼表面的漏鍍缺陷檢出.

圖13所示為油斑(Sp)缺陷的檢測結果,除了YOLOv5s模型的置信度相對較低為0.83,其余4種模型在檢測油斑缺陷的置信度上均在0.9以上.

圖14所示為鋅流紋(Fo)缺陷的檢測結果,5種模型均能檢測出鋅流紋缺陷,SSD300、YOLOv3、YOLOv4檢測結果的置信度均在0.95以上,YOLOv5s檢測的置信度較低為0.76,STI-YOLO模型檢測的置信度為0.85.
綜合分析可知:STI-YOLO模型在有鋅花背景干擾下對于缺陷的檢測效果更好,對于被鋅花背景干擾嚴重的鋅渣和劃傷缺陷的檢測效果有較大的提升,與其他主流算法相比整體的檢測效果更符合檢測要求,對于容易出現漏檢的鋅渣、漏鍍缺陷以及出現容易被錯檢的鋅流紋缺陷均能識別.
不同模型對于缺陷檢測的性能如表2所示.從表2可知:SSD300和YOLOv5s的檢測速度分別為58.69、60.88 frame/s,檢測速度較快,STI-YOLO模型雖然檢測速度低于SSD300和YOLOv5s,但速度優于YOLOv3和YOLOv4,為54.14 frame/s,仍能滿足缺陷檢測的要求.STI-YOLO模型較YOLOv5s的平均精度均值PMA提高了2.07個百分點.雖然STI-YOLO模型在鋅流紋(Fo)缺陷上的平均精度稍遜色于SSD300,但差距僅為0.04個百分點.但STI-YOLO模型對于較難檢測的劃傷缺陷和受鋅花背景干擾嚴重的鋅渣缺陷表現比較優秀,通過對比,對于劃傷(Sc)缺陷,STI-YOLO模型的平均精度較SSD300、YOLOv3、YOLOv4以及YOLOv5s分別提高了7.37個百分點、22.12個百分點、12.75個百分點和4.03個百分點.對于受鋅花背景干擾嚴重的鋅渣(Zn)缺陷,STI-YOLO模型有大幅度提高,STI-YOLO模型較SSD300、YOLOv3、YOLOv4以及YOLOv5s分別提高了16.62個百分點、33.56個百分點、36.12個百分點和4.52個百分點.油斑(Sp)和焊縫(We)的檢出率為100%.同時漏鍍缺陷的檢出率為98.26%,較好解決了漏檢問題.

表2 模型性能對比

這是因為STI-YOLO模型在主干特征網絡提取到有效特征圖之后,在特征圖輸入到特征融合網絡之前添加了SENet通道注意力機制,在不損失重要位置信息和語義信息的前提下提高有效特征信息的利用率,同時抑制由于鋅花背景干擾產生的冗余信息,在進入PANet之前更高效地利用有效信息,濾除冗余信息,提高了網絡的檢測精度.同時在進行特征融合之后的3個不同尺度的特征圖輸入到金字塔卷積網絡中,提取更加豐富的缺陷信息,使得預測的特征圖具有更好的魯棒性.
針對原始YOLOv5s算法在有鋅花背景干擾下對劃傷缺陷和鋅渣小目標檢測效果欠佳的問題,根據本文缺陷數據集進行重新聚類調整先驗框的尺寸,在特征融合網絡PANet之前引入通道注意力機制SENet,增強特征圖有效信息的提取,突出重要特征,抑制鋅花復雜背景對缺陷檢測的干擾,從而減少冗余特征的影響,同時增加金字塔卷積網絡豐富預測特征圖的感受野,提取更有效的語義信息.STI-YOLO模型有效提高了YOLOv5s算法在有鋅花背景干擾下的缺陷檢測精度,同時進一步改善了原模型存在漏檢以及錯檢的問題.