張 勇
(馬鞍山鋼鐵股份有限公司,安徽馬鞍山 243000)
隨著機器視覺技術的快速發展,可以通過搭建深度神經網絡不斷進行迭代學習,使機器能夠替代人工完成高精度要求的檢測任務,提高檢測的準確性和安全性。采用輕量化深度學習網絡可以對帶鋼焊縫月牙邊杯突試驗結果進行分類,采用遷移學習的思路進行訓練并使用Grad-CAM 對訓練好的模型進行可視化分析[1-3]。
為了彌補CAM 算法的局限性,Grad-CAM 算法[4]改變了獲取特征層對應通道權重的方法,Grad-CAM 算法的核心是將沒有經過激活函數的各類別的預測得分通過反向傳播的梯度信息來計算特征層對應的權重w1,w2,…,wn。網絡首先需要通過正向傳播參數獲取合格類別的預測值,接著針對求得的預測值進行反向傳播得到對應特征層的梯度信息,最后計算梯度信息各通道的均值,其類似于CAM 算法中使用全局平均池化求取的權重,定義如式(1)所示。
式中:c1和c2—分別代表特征層A中特征圖的寬和高;
Z—特征圖的大小,其值為c1與c2的乘積;
yt—類別為Ture時的未激活預測置信度;
—特征層A中第k張特征圖,第i行j列的的值;
—特征層A中第k張特征圖的權重,該值為圖1中的wt1,wt2,…,wtn。

圖1 Grad-CAM 模型示意圖
將求得的權重與特征層A進行加權求和后使用ReLU 激活函數對這個合并的特征層進行處理后即可輸出激活熱力圖。
Grad-CAM 模型示意圖見圖1,定義如式(2)所示。
式中:Ak—特征層A的第k張特征圖;
為更好地使用輕量級網絡,MobileNet V3[5-6]網絡通過改進基礎模塊提高模型的精度,精簡耗時較多但作用不大的結構,提高模型的速度,重新設計非線性的且易于量化的激活函數。
MobileNet V3 網絡均為先升維獲取高維特征后再對特征圖進行降維。具體實現為針對DW 卷積后的特征圖,先使用一個均值池化求得所有通道的均值,接著通過一個全連接層和一個標準ReLU 激活函數,將通道數降到輸入的1∕4,然后再通過一個全連接層和一個Hard Sigmoid(Hsig)激活函數將通道升到與輸入特征圖相同并輸出對應特征圖的權重,最后將該權重與輸入的特征圖相乘獲取特征更明顯的數據。
Sigmoid(Ssig)激活函數和Hard Sigmoid(Hsig)激活函數的定義如式(3)所示。其中Ssig激活函數計算困難且求導復雜,Hsig激活函數相較而言更容易量化數據。
Swish(Sswi)激活函數的定義如式(4)所示,對于較深的神經網絡而言,使用Sswi激活函數可以在一定程度上提高模型的精度。但由于其是由Sswi激活組成,存在大量的計算,這使得Sswi激活函數不適合使用到輕量型網絡之中。為了解決這一問題,使用函數曲線近乎重合但易于計算的Hard Swish(Hswi)激活函數進行替換,其定義如式(5)所示,其中x為輸入神經元。
MobileNet V3 網絡通過精簡頭尾部分減少了一定的計算量,頭部減少了第一個卷積核的數目。尾部將先升維再池化改為了先池化為1×1的特征圖再卷積升維,這一操作能夠通過減少連接參數的方式減少計算量。
試驗采集了200 份數據樣本,在經過數據擴充之后為2 400 份,其中不合格的樣本在擴充前僅為25 份,數據集使用輕量型的模型從頭部開始訓練會過擬合。為了解決這一問題,在使用遷移學習的基礎上凍結訓練好的特征提取部分參數[7],僅訓練模型最后的分類層,并通過L2 正則化(Weight Decay)和隨機失活(Dropout)在一定程度上解決過擬合問題。
試驗環境服務器的硬件配置分別為8 GB 內存;Intel Core i7-6800K 處理器;NVIDIA GTX1080Ti 圖形處理器。軟件配置分別為Ubuntu16.04;Python3.7編程語言;PyTorch深度學習框架。
試驗所用的數據集由馬鋼的冷軋連退生產線收集而來,共收集了200 份經過杯突試驗的樣本。使用工業相機進行采集后數據集如圖2 所示,將杯突裂口跨過焊縫和裂口出現在熱影響區域上面的情況劃分為合格樣本,樣本數量為175;將僅出現沿焊縫開裂的劃分為不合格樣本,數量為25。

圖2 焊縫杯突試驗采樣圖
由于使用的數據集合格和不合格樣本的數量相差較大,若直接進行分類訓練會使得訓練出來的分類器的準確率接近多數樣本在總樣本中的占比。為了解決數據樣本少且不均衡的問題,需要對數據集進行數據增強。對合格樣本和不合格樣本均使用鏡像、旋轉、調整亮度和對比度、增加高斯和椒鹽噪聲的方法進行擴充,將總樣本數量擴充到2 400份,合格樣本和不合格樣本數量均為1 200 份。對兩種樣本均隨機按4:1的比例劃分為訓練集和驗證集,共1 920張圖片用于訓練,480張圖片用于驗證。
具體試驗內容為經過遷移學習的ShuffleNet V2、MobileNet V2 和MobileNet V3 網絡。評價指標分別為準確率(簡稱A)、損失值(簡稱Loss)、模型參數量(簡稱P)、檢測單張圖像的時間(簡稱S)。
具體的試驗分組如表1 所示,這4 組試驗均在基于遷移學習的基礎上進行試驗。

表1 分類試驗分組
所有試驗均凍結網絡的特征提取層,僅訓練重組特征并分類的全連接層,設置所有試驗樣本的訓練輪數為100,每輪試驗訓練集和驗證集的批量均設置為32。其中,試驗一和試驗二初始學習率設為0.01,最終學習率為0.001,優化器采用Adam。試驗三和試驗四初始學習率設為0.000 1,不進行變化,在訓練的全連接層使用0.2 的Dropout,優化器采用SGD。
各組試驗訓練結束后,保存試驗每輪更新后的模型,并通過TensorBoard 保存模型結構和訓練過程。記錄驗證集的各評價指標數值,結果如表2所示。

表2 分類試驗分組評價結果
由表2 可知,基于遷移學習的輕量型網絡能夠保證一定精度,最差的ShuffleNet V2_0.5X 網絡準確率也達到了94.2%,其檢測單張圖像的時間僅為1.62 ms。試驗一與試驗二為ShuffleNet V2的不同規格復雜度的模型,更加復雜的1.0 X版本通過增加中間層的通道數能夠提高1.4 個百分點的準確率,雖然在一定程度上增加了模型的參數量,但其檢測速度與0.5 X 版本的基本相同。對比試驗二與試驗三的數據可知,MobileNet V2 網絡的準確率僅比ShuffleNet V2網絡高了0.2個百分點,卻付出了近一倍的模型參數量,且單張圖像增加了0.32 ms 的檢測時間。試驗四的準確率為99.4%,雖然相對于試驗三有更多的參數量,但是網絡的準確率提高了3.6 個百分點,證明了通道注意力機制能夠更有效地篩選特征,單張圖像的檢測時間減少了0.19 ms。對于分類模型的輸出為各類別的置信度,為了進一步觀察模型的分類依據,使用Grad-CAM 算法可視化訓練好的MobileNet V3模型提取特征的熱力圖。
試驗四所訓練的MobileNet V3網絡對合格樣本進行可視化后的熱力圖見圖3,圖3中的色調越暖代表網絡越關注該區域。圖3 中的(a)關注的重點區域為沿著焊縫的縱向撕裂,(b)關注的重點區域為貫穿母材的月牙形裂口,(c)關注的重點區域為貫穿焊縫的月牙形裂口,(d)關注的重點區域為沿著杯突試驗邊緣開裂的裂口。試驗證明了MobileNet V3網絡能夠有效地提取用于分類的合格特征。

圖3 MobileNet V3網絡合格樣本熱力圖可視化
圖4 為MobileNet V3 網絡不合格樣本的熱力圖,不合格樣本的特征僅為沿著焊縫開裂的裂口,該特征存在于所有的樣本之中,故而在可視化不合格樣本時,網絡在圖像中間區域找不到明顯的分類特征,關注的重點區域則會轉移到裂口的邊緣。

圖4 MobileNet V3網絡不合格樣本熱力圖可視化
綜上所敘,基于遷移學習的MobileNet V3 能夠有效提取杯突樣本的裂口特征并進行分類,對于當前風格的圖像能夠達到99.4%的準確率,證明其可以應用到工業生產之中。
試驗結果表明文中設計的基于遷移學習的MobileNet V3 網絡能夠有效提取杯突試驗樣本的裂口特征并進行分類,對于樣本圖像能夠達到99.4%的檢測準確率,該方法能夠滿足實際檢測需求。