舒睿
(200093 上海市 上海理工大學 機械工程學院)
熱軋帶鋼是當今鋼材行業(yè)的主要原材料,由于熱軋帶鋼本身具有的易加工、強韌性和抗腐蝕性等優(yōu)點,使其在工業(yè)制造、土地建筑、航空航天等領域得到了廣泛的應用,在整個世界的工業(yè)中都是不可或缺的戰(zhàn)略性工業(yè)品。2000 年以后我國工業(yè)迅速發(fā)展,帶動了對熱軋帶鋼的需求。2021 年我國鋼鐵總產(chǎn)量位居世界第一,但是在鋼材生產(chǎn)制備過程中,受到材料本身質(zhì)量和加工過程中制備工藝和生產(chǎn)環(huán)境等一系列問題的影響,在有些加工好的鋼材上會出現(xiàn)內(nèi)部和外部缺陷,如表面裂紋、刮傷、疏松、縮孔和氣泡等,鋼材的硬度、強度、耐磨度等因此會出現(xiàn)相應的下降。
近年來隨著機器視覺的發(fā)展,機器視覺在生產(chǎn)生活各個方面都得到廣泛的應用。早期的鋼材缺陷檢測或使用傳統(tǒng)的目標檢測算法[1]或采用人工檢測方法(工作人員在生產(chǎn)線上用肉眼判斷是否存在缺陷)。人工檢測存在工作強度大、準確率和效率低等問題,所以鋼材表面缺陷檢測開始向著計算機視覺檢測這一方向發(fā)展,檢測速度和精度都在不斷上升。相關研究中,曹義親等[2]利用改進YOLOv5算法,構(gòu)造了一種帶殘差邊的SPP_Res 特征金字塔結(jié)構(gòu),加快了模型的訓練速度;韓強等[3]提出一種特征融合和級聯(lián)檢測網(wǎng)絡的Faster-R-CNN 鋼材表面缺陷檢測算法,將特征融合,提高了檢測精度。本文采用新型YOLOv5s 網(wǎng)絡,并對結(jié)構(gòu)進行修改之后,在檢測頭之前加上NAM 注意力機制,提高模型檢測精度的同時加快了模型的收斂速度。
YOLOv5s 算法在YOLO 算法系列中網(wǎng)絡最小、速度最快,在大目標檢測方面效果很好。圖1 為本文修改后的網(wǎng)絡結(jié)構(gòu),主要包括4 部分:輸入端、Backbone、Neck、Head。Backbone 部分主要負責提取圖片中一些實現(xiàn)定位和分類功能必要的特征信息,提取特征信息的質(zhì)量直接影響到后續(xù)其他數(shù)據(jù)的處理。由于深度學習已經(jīng)能夠?qū)D像特征提取做得很好,所以不進行修改;Neck 接在Backbone 之后是為了將前一部分處理的圖像特征與Neck 網(wǎng)絡處理的圖像特征融合,從而提高整個網(wǎng)絡的性能;Head 檢測頭用來完成分類或定位任務。
圖1 YOLOv5 網(wǎng)絡結(jié)構(gòu)Fig.1 YOLOv5 net structure
在將圖片放入網(wǎng)絡之前,本文使用的YOLOv5s網(wǎng)絡相比其他網(wǎng)絡自行將輸入圖片進行了一系列數(shù)據(jù)預處理,包括為了增強數(shù)據(jù)使用的Mosaic 數(shù)據(jù)增強。為了結(jié)果準確,使用自適應錨框計算設計,以及方便圖像處理使用的自適應圖片縮放功能,然后將Focus 結(jié)構(gòu)替換成卷積層,不僅提高了運算速度,還減少了計算量。此外,用較大的卷積核增大了感受野,能夠保存更多的圖像特征信息。Mosaic數(shù)據(jù)增強在YOLOv4 中便開始使用,這種將4 張圖片隨機裁剪、縮放、排布的方式把選出的4 張圖片隨機拼接,一方面增加了數(shù)據(jù)集的數(shù)量,另一方面使網(wǎng)絡的魯棒性更好。在YOLOv5s 中未使用之前的聚類算法,而是將錨框的計算嵌入到訓練之中,在設定好的初始錨框的基礎上輸出預測框,然后和Ground-truth 進行對比計算Loss,進行更新,從而不斷更新大小計算出最佳錨框值。
Backbone 主要由CBS、CSP(如圖2 所示)以及SPPF 等組成,其中CSP 在YOLOv5s 網(wǎng)絡里被多次使用。CSP 結(jié)構(gòu)設計的目的是通過分割梯度流在減小計算量的前提下將輸入特征分為2 條分路進行處理,一條分路直接對輸入特征進行卷積操作,減少輸入通道數(shù)量至原來的一半,另一條分路把輸入特征先進行卷積后,經(jīng)過多個殘差結(jié)構(gòu)處理,將2 個分路的輸出數(shù)組連接起來,最后一步將Concat得到的結(jié)果再通過一次CBS 處理得出最后結(jié)果。
圖2 YOLOv5s 網(wǎng)絡中的兩種C3 結(jié)構(gòu)Fig.2 Two C3 structures inYOLOv5s network
YOLOv5s 采用和之前網(wǎng)絡不同的激活函數(shù),SiLU 激活函數(shù)表達式為
sigmoid 函數(shù)表達式為
SiLU 激活函數(shù)最大的特點就是它具有自穩(wěn)定的特性,并且由于SiLU 激活函數(shù)作為隱式正則化器,抑制了大數(shù)量權(quán)重的學習,所以網(wǎng)絡的運算速度得到了一定的提升。對于較大的x 的值SiLU 的值大約等于ReLU 值,而當x 接近-1.2 時它取全局最小值。圖3 顯示了該激活函數(shù)與ReLU 激活函數(shù)的對比。
圖3 SiLU 激活函數(shù)與ReLU 激活函數(shù)對比Fig.3 SiLU activation function compared to ReLU activation function
注意力機制有多種實現(xiàn)形式,但每種實現(xiàn)形式的核心都類似,即注意力。注意力機制就是由于網(wǎng)絡中每層特征的重要性不同,后面的層應該更注重網(wǎng)絡中重要的信息,抑制不重要的信息。一般注意力機制分為通道注意力、空間注意力和混合注意力機制[4]。近年來,許多研究通過增加注意力機制給模型性能帶來了較大的提升,曹選等[5]通過在YOLOv5s 網(wǎng)絡中添加SENet 注意力機制,配合網(wǎng)絡的改進將精度提升了10%;程國建等[6]通過修改網(wǎng)絡結(jié)構(gòu),結(jié)合注意力機制成功地在帶鋼檢測的數(shù)據(jù)集提高了較大的檢測精度。
注意力機制成功地發(fā)現(xiàn)了來自不同維度的互信息,但都缺乏對權(quán)值貢獻因子的考慮,而這個貢獻可以進一步抑制不明顯的特征,NAM 注意力機制則利用權(quán)值的比例因子來提升注意力效果。本文將NAM 嵌入到殘差結(jié)構(gòu)的后面。對于通道注意力子模塊,NAM 中使用了Batch Normalization 中的比例因子,如式(3)所示,比例因子通過測量通道方差的同時,反映了該通道的重要程度。
式中:μB——最小 batch B 的均值;σB——最小 batch B 的標準差;γ,β——可訓練的仿射變換參數(shù)。
通道注意力子模塊如圖4 和式(4)所示。
圖4 通道注意力子模塊Fig.4 Channel attention mechanism
式中:Mc——輸出特征;γ——每個通道的縮放因子,它的權(quán)重由式(5)獲得
其中,還將BN 的比例因子應用于空間維度來衡量像素的重要性,稱之為像素歸一化。對應的空間注意力子模塊為
式中:Ms——輸出;λ——縮放因子,它的權(quán)重由式(7)得出
為了抑制不突出的權(quán)重,在損失函數(shù)中添加了一個正則化項,如式(8)所示。
本實驗采用的數(shù)據(jù)集是東北大學的開源NEUDET 鋼材表面缺陷數(shù)據(jù)集,收集了6 種典型的表面缺陷即軋制氧化皮(RS)、斑塊(Pa)、開裂(Cr)、點蝕表面(PS)、內(nèi)含物(In)和劃痕(Sc)。該數(shù)據(jù)庫包括1 800 個灰度圖像,原始圖像尺寸為200×200。本文實驗將數(shù)據(jù)集按照8∶1∶1 的大小分別劃分訓練集、驗證集和測試集,數(shù)據(jù)集每類圖片如圖5 所示。
圖5 數(shù)據(jù)集部分圖片F(xiàn)ig.5 Partial picture of data set
本實驗的模型訓練以及測試都是在成熟的PyTorch 框架中完成,為了提高運算能力,使用CUDA 和cuDNN 進行加速,其中配置參數(shù)文件中參數(shù)分別學習率參數(shù)設置為0.001,Batch Size=8,輸入圖片的像素大小為640×640,其他的實驗配置如表1 所示。
表1 實驗環(huán)境所需的軟件和硬件配置Tab.1 Hardware and software configuration of experimental environment
在實驗過程中,本文主要通過觀察平均準確度(mAP)評估網(wǎng)絡識別的準確性。精確率表示預測目標中正確的目標個數(shù)占所有預測目標個數(shù)的比值,表達式為
召回率表示預測目標中正確的目標個數(shù)占所有正確目標個數(shù)的比值,表達式為
式中:TP——正陽性的數(shù)量;FP——假陽性的數(shù)量;FN——假陰性的數(shù)量。
從圖6—圖9 可以清晰地看出,無論是平均準確率還是精確率和召回率,它們的值在訓練到30次左右時就開始收斂,并且實驗準確率在73.8%,而未修改的網(wǎng)絡模型實驗精度只有71%,相較于未修改的網(wǎng)絡模型精準度上升了3%~4%。
圖6 平均準確率Fig.6 mAP
圖7 精確率Fig.7 Precision
圖8 召回率Fig.8 Recall
圖9 GIoU 損失Fig.9 GIoU loss
YOLOv5s 采用了GIoU 作為本框架的邊框預測函數(shù),與IoU 不同的是,IoU 只關注重疊部分,而GIoU 不僅計算重疊部分,還計算了其他的非重疊部分。從圖9 可以看出,GIoU 的值下降得很快,說明預測框和實際標注框的重合度在急劇上升,當訓練到100 次時,GIoU 已經(jīng)趨近于0 了,表示損失很小,網(wǎng)絡檢測效果良好,綜合說明本文采用的YOLOv5s算法在帶鋼的缺陷檢測方面的優(yōu)越性能。
圖10、圖11 分別是原網(wǎng)絡模型和加注意力機制網(wǎng)絡模型部分檢測效果圖。
圖10 原效果圖Fig.10 Original renderings
圖11 改進后效果圖Fig.11 Improved renderings
由實際檢測效果圖的對比可以發(fā)現(xiàn),在原圖上檢測不到或者是檢測不全的部分,改進后的網(wǎng)絡可以對缺陷進行較全面、精確的識別。綜合上述得出結(jié)論,改進后的網(wǎng)絡模型精度相較之前的網(wǎng)絡模型而言都有一定的提升,而且收斂速度更快,可以較好地完成帶鋼表面缺陷檢測的任務。
本文闡釋了基于添加注意力的YOLOv5s 算法實現(xiàn)了帶鋼表面缺陷檢測功能,包括網(wǎng)絡結(jié)構(gòu)及其改進,注意力機制和結(jié)果分析以及創(chuàng)新點等。實驗結(jié)果表明,添加注意力機制的YOLOv5s 算法網(wǎng)絡相較原模型有更好的檢測精度和較快的訓練速度,在實際檢測中能夠更好地檢測到表面缺陷。對于主流算法檢測效果較差的開裂類,下一步的工作是嘗試優(yōu)化網(wǎng)絡結(jié)構(gòu),在保證其他類檢測精度的情況下提高這一類的檢測精度,從而整體提升模型的檢測能力,并將其部署在移動端上,滿足生產(chǎn)檢測需要。