樊 嶸, 馬小陸
(安徽工業大學 電氣與信息工程學院,安徽 馬鞍山 243002)
熱軋帶鋼作為我國鋼鐵工業的重要原材料之一,在航空航天、土地基建以及汽車制造等領域有重要的應用價值。熱軋帶鋼的尺寸精度、表面質量以及性能是衡量帶鋼產品質量的關鍵因素。實際生產過程中,由于生產工藝及環境因素的限制,鋼體易出現劃痕、裂紋、污漬以及斑塊等缺陷,不僅有損產品外觀,而且易使產品銹蝕和損壞。因此,鋼體表面缺陷檢測成為工業質檢領域的研究熱點。
近年來,隨著深度神經網絡研究的不斷進展,基于深度學習的物體表面檢測算法逐步替代了傳統的機器學習方法和人工檢測方法。基于深度學習的物體表面缺陷檢測方法主要分為端到端完成檢測任務的一階段檢測算法和基于區域生成結構的二階段檢測算法。文獻[1]通過使用加權K-means聚類方法以及對特征融合層進行改進,提升了算法的缺陷檢測精度;文獻[2]通過引入注意力機制并改進特征融合網絡,提升了算法的缺陷檢測精度;文獻[3]在SSD網絡中融入殘差網絡結構和多級特征融合策略,提升了算法的缺陷檢測精度;文獻[4]在RetinaNet網絡中融入通道注意力機制和自適應空間特征融合模塊,提升了網絡的特征融合能力;文獻[5]基于Faster-RCNN模型提出一個帶鋼缺陷檢測系統;文獻[6]使用特征遞歸金字塔結構和神經網絡架構搜索技術對Cascade-RCNN網絡進行改進,提升了算法缺陷檢測進度。以上工作均有效提升了算法對金屬表面缺陷的總體檢測精度,但仍未針對金屬表面小目標缺陷的漏檢問題進行優化與改進,使得實際檢測中帶鋼表面部分小目標缺陷仍存在漏檢問題。
小目標缺陷在采樣圖中所占像素量較少,經過多次下采樣后小目標缺陷分辨率會進一步降低,特征信息逐步減弱,使得檢測難度提升。文獻[7]通過采用transformer預測頭并增加目標檢測頭個數提升了網絡對小目標的檢測性能;文獻[8]通過采用改進的雙向特征金字塔網絡(bi-directional feature pyramid network,BiFPN)提升了模型對小目標的檢測效果;文獻[9]提出多層特征金字塔網絡(multi level feature pyramid network,MLFPN),將不同尺度的特征進行融合,有效緩解了小目標特征信息不足的問題;文獻[10]利用空間金字塔池化和額外的特征轉換生成不同尺度的特征,然后將特征擴展到統一尺度并聚合上下文信息,有效緩解了小目標特征信息不足的問題;文獻[11]通過將空洞卷積與特征融合相結合,有效增強網絡提取的淺層特征的語義信息,提升了小目標的檢測性能。以上工作均有效提升了算法對小目標物體的檢測性能,但大多面向遙感場景,當面對分布復雜的密集工業缺陷檢測場景時,檢測效果提升有限。
針對以上問題,本文在YOLOv7網絡[12]的基礎上進行以下3方面改進。
1) 將多分支卷積模塊[13]和通道空間注意力模塊(convolutional block attention module,CBAM)[14]融入特征提取骨干網絡,提升網絡在特征提取階段對小目標特征的提取及后續提純能力。
2) 采用融入BiFPN[15]思想的頸部網絡對骨干網絡提取的多尺度特征圖進行雙向加權融合,緩解小目標特征在下采樣過程中的丟失問題。
3) 采用解耦檢測頭[16]替換原有的目標檢測頭,將預測目標的類別信息與回歸信息進行解耦輸出,提升模型檢測精度。
最終在經過小目標數據增強的Neu-Det數據集上與部分常用缺陷檢測算法進行對比實驗,實驗結果表明,改進的YOLOv7算法有較好的小目標帶鋼缺陷檢測能力。
YOLOv7是最新的YOLO系列算法,其模型設計思路與YOLOv4[17]、YOLOv5類似,功能上可將網絡分為進行特征提取的骨干網絡(Backbone)、進行特征融合的頸部網絡(Neck)以及進行目標檢測結果輸出的檢測頭(Head)3個部分。檢測時輸入圖像被送入骨干網絡進行特征提取;然后由頸部網絡對提取的特征進行特征融合,并得到大、中、小3種尺寸的特征;最后由檢測頭對融合后的特征進行處理,并輸出最終檢測結果。由于采用了擴展的高效長程注意力網絡(extended efficient layer aggregation networks,E-ELAN)以及SPPCSPC空間金字塔池化等模塊,并在前向傳播時引入了重參數化卷積以及輔助頭檢測等策略,YOLOv7算法獲得了較好的檢測性能。
YOLOv7采用4個常規卷積進行初期特征提取,使得小目標語義信息易被網絡忽略;在特征融合階段YOLOv7沿用了YOLOv5的雙向路徑聚合網絡(path aggregation network for instance segmentation,PANet)[18]結構并加入了更多的卷積模塊,導致骨干網絡提取的小目標語義信息難以在特征融合時被有效提純。
以上兩點均易使YOLOv7在小目標帶鋼缺陷場景中產生漏檢,因此本文從特征提取和特征融合2個角度出發,提升YOLOv7對小目標帶鋼缺陷的檢測能力。
改進的YOLOv7網絡結構如圖1所示。

圖1 改進的YOLOv7結構圖
1.2.1 結構重參數化
針對YOLOv7初期特征提取時易丟失部分小目標信息的問題,本文采用可重參數化卷積(reparameterization convolution,RepConv)模塊替換網絡最初的第2層和第4層的常規卷積模塊,使網絡早期可以對重要特征進行更高效的提取,緩解重要特征在卷積操作中產生的丟失現象。重參數化(reparameterization,Rep)的核心思想是利用參數恒等變換實現網絡結構的簡化。RepConv在訓練階段采用3*3卷積、1*1卷積、短接分支以及批歸一化(batch normalization,BN)模塊構建的多分支可重參數化卷積RepConv模塊進行訓練,訓練完成后的推理階段中,可重參數化卷積RepConv模塊會被參數重構為一個與原分支性能等效的3*3卷積模塊,使模型兼顧訓練時的高精度和推理時的高速度。
可重參數化卷積RepConv模塊結構如圖2所示。

圖2 可重參數化卷積RepConv模塊結構
RepConv模塊在進行結構重參數化時,先將短接分支結構等價轉換為一個以單位矩陣為卷積核的1*1卷積,之后將2個1*1的卷積通過填充0轉換為2個3*3的卷積,之后將3個3*3卷積分別與其對應的批歸一化BN模塊進行融合,融合過程如下:
(1)
(2)
其中:Wi、Wi′分別為轉換前、后的卷積層參數;βi、βi′分別為轉換前、后的批歸一化層偏移因子;yi為批歸一化層的尺度因子;μi為批歸一化層的均值;σi為批歸一化層的方差。
卷積層和批歸一化層融合后,可以用一個3*3卷積替換模型訓練時使用的原始3*3卷積、1*1卷積、短接分支以及批歸一化BN模塊,模型重構后僅有一個3*3的卷積用于模型推理。
1.2.2 通道空間注意力模塊
在含有較多小目標帶鋼缺陷的檢測環境中,小目標缺陷像素往往分布于圖像的少量區域,大部分圖像內容仍為正常帶鋼表面。小目標瑕疵尺寸小特征少且不明顯,為了更好地對其標特征進行提純與學習,本文將通道空間注意力模塊 CBAM穿插于常規卷積模塊以及可重參數化卷積模塊之間,利用CBAM模塊對卷積模塊學習到的特征信息進行注意力權重重構,提高重要特征的權重,為頸部網絡提供更為高效的特征圖。
CBAM模塊是一種輕量級即插即用的卷積注意力模塊,它會依次計算通道與空間2個維度的注意力圖,并將注意力圖與特征圖相乘以進行自適應特征優化,模仿人類的注意力感知[19],自動過濾不重要的信息,并把更多的計算資源用于需要重點關注的特征。
CBAM模塊結構如圖3所示。

圖3 通道空間注意力CBAM模塊結構
YOLOv7沿用了YOLOv5采用的PANet頸部網絡,實現了自頂向下和自底向上的雙向特征融合,因此使網絡可以有效結合不同尺度的特征進而提升檢測精度。但在YOLOv7中PANet關注的仍是中高維度的特征圖,由于經過多次卷積后,中高維度的特征圖中小目標信息的含量較少,使得網絡對小目標特征的學習效率較低,針對此問題本文提出融合BiFPN思想的改進頸部網絡,并以此替換YOLOv7原有的PANet特征融合網絡。
1.3.1 原始的BiFPN頸部網絡
BiFPN結構如圖4所示。

圖4 單層BiFPN結構
BiFPN是一種基于雙向加權特征融合思想的高效多尺度特征融合方法,它與PANet一樣采用雙相多尺度特征融合操作,使網絡可以有效結合不同尺度的特征。相較于PANet,BiFPN可以聚合更多不同尺度的特征并進行跨尺度特征融合,使網絡擁有更高的重要特征提純效率,且在進行特征融合時BiFPN引入了可學習的權重因子,使重要的特征在融合后得到了更好的保留。
1.3.2 改進的BiFPN頸部網絡
為了充分利用改進骨干網絡提取的包含大量小目標特征的多尺度特征圖,本文借鑒了BiFPN的設計思想,在進行特征融合時,采用最近鄰插值上采樣模塊[20]和長短鏈路高效聚合網絡(ELAN-W)模塊分別作為上采用模塊和下采樣學習模塊。同時為了進一步實現對小目標特征的有效保留及提純,當經過上采樣的高維特征與低維特征進行融合時,采用可學習的加權特征融合方式,使網絡在訓練過程中自適應學習更重要的特征;當經過下采樣的低維特征與高維特征進行融合時,采用拼接特征融合方式,以最大限度地保留特征提取初期未被丟失的小目標信息。改進后的頸部網絡在進行特征融合時,更偏向于提升初期卷積提取的包含較多小目標特征信息的特征圖所占比重,緩解多次卷積造成的小目標特征丟失現象。改進后的單層BiFPN結構如圖5所示。

圖5 改進的單層BiFPN頸部網絡
在目標檢測任務中,分類操作與回歸操作對目標特征的關注點不同[21]。分類操作更加關注目標的紋理特征信息,而回歸操作更加關注目標的邊緣信息。因此目標的置信度評價分數與回歸框可能產生不一致性,即目標置信度分數最高的檢測框不一定是回歸最準的框,而回歸最準的框也不一定是置信度分數最高的框。在原始的YOLOv7中,檢測時仍然使用耦合檢測頭,導致分類、回歸、置信度計算的操作產生耦合。
針對以上問題,本文采用任務解耦特征檢測頭,先使用一個1*1卷積特征圖進行降維,之后分別通過2個3*3卷積將特征圖轉化為用于分類的特征圖以及用于回歸及置信度計算的特征圖。用于分類的特征圖通過1個1*1卷積后直接輸出類別信息,用于回歸及置信度計算的特征圖通過2個1*1卷積分別進行位置回歸輸出以及置信度計算。采用解耦檢測頭后模型將目標的類別信息、置信度與回歸信息進行解耦輸出,使模型在訓練過程中可以進一步收斂至更高精度。解耦檢測頭結構如圖6所示。

圖6 解耦檢測頭
為了獲取含有較多小目標[22]缺陷的帶鋼表面缺陷數據集,本文對東北大學制作的NEU-DET數據集[23]進行隨機拼接以及分辨率縮放數據增強。NEU-DET數據集包含裂紋、雜質、斑紋、點蝕、氧化以及劃痕6種常見的帶鋼表面缺陷共計1 800張圖像。
本文從1 800張圖像中隨機抽取16張圖像進行拼接,并將分辨率由拼接后的800×800縮放至640×640作為一張試驗圖像,經上述方法數據增強后得到拼接數據集共1 800張,以8∶2劃分為訓練集與測試集。為了進一步提升算法的魯棒性,訓練過程中沿用了YOLOv5提出的Mosaic數據增強。
本文在16 GiB運行內存、Ryzen5-5600G處理器、NVIDIA TeslaP40顯卡的硬件平臺上進行模型訓練,運行庫版本為CUDA11.6,軟件環境為Pytorch1.12.1。為了更好地與其他檢測網絡進行性能對比,本文采用平均精準度(average precision,AP)衡量模型檢測精度,平均精準度IoU閾值取0.50以及0.50~0.95,分別記作AP50和AP50∶95。
為驗證本文添加的各個模塊是否起到作用,設置了消融實驗。每組模型在數據增強后的NEU數據集上進行300輪訓練,使用AP50和AP50∶95作為模型的性能衡量指標。所有實驗組均未使用預訓練權重且均選擇隨機梯度下降(stochastic gradient descent,SGD)[24]優化器進行優化,初始學習率為0.000 5。實驗編號和實驗結果見表1所列,其中“√”表示本組實驗已使用該模塊。

表1 消融實驗結果數據
對比消融實驗A與B可知,添加CBAM注意力模塊可以有效提升模型的檢測精度;對比消融實驗A與C可知,采用RepConv模塊替換常規卷積模塊可以有效提升模型的檢測精度;對比消融實驗A與E可知,采用改進的BiFPN頸部網絡可以有效提升模型的檢測精度;對比消融實驗A與G可知,采用解耦檢測頭DecoupledHead進行檢測可以有效提升模型的檢測精度;對比消融實驗B與D可知,CBAM注意力模塊與RepConv模塊的引入有效提升了骨干網絡的特征提取與提純效率,可以有效提升模型的檢測精度;對比消融實驗D與F可知,改進的BiFPN頸部網絡相較于原有的PANet頸部網絡有更高的特征融合效率,可以有效提升模型檢測精度;對比消融實驗F與G可知,添加解耦檢測頭可以進一步使網絡收斂至更高精度。
為驗證本文算法的有效性,將本文算法在含有大量小目標的熱軋帶鋼缺陷數據集中與常用缺陷檢測算法YOLOv5、YOLOv6、YOLOX、Faster-RCNN[25]以及YOLOv7進行對比實驗。每個模型在數據增強后的NEU數據集上進行300輪訓練,使用AP50與AP50∶95作為模型的性能衡量指標。所有實驗組均未使用預訓練權重且均選擇SGD優化器進行優化,初始學習率為0.000 5。橫向對比實驗結果見表2所列。
由表2可知,在包含大量小目標帶鋼缺陷的檢測場景中,本文檢測精度高于YOLOv5及YOLOX等常見目標檢測算法。
本文以YOLOv7為基礎框架,對骨干網絡、頸部網絡以及檢測頭分別作出改進。采用RepConv模塊和CBAM模塊對骨干網絡進行改進,改進的骨干網絡為模型提供了高效的多尺度特征圖,使模型檢測精度進一步提升;采用改進的BiFPN替換原有的PANet結構,使模型的特征融合效率得到提升,進一步提高了模型在小目標缺陷檢測環境下的檢測精度;采用解耦檢測頭替換原有的預測頭,使模型在訓練中可以收斂至更高的精度。在含有大量小目標帶鋼缺陷的數據集中進行的對比實驗結果表明,本文提出的改進YOLOv7算法精度高于YOLOX、YOLOv6等常用缺陷檢測算法。