沈雯靜,張政超,許康偉
(上海理工大學機械工程學院,上海 200093)
焊接是工業(yè)生產中一種常見的金屬加工工藝,廣泛應用于電子器件生產、整車制造、航空航天及其他金屬件的生產中。加工后的焊接件往往需要對其表面存在的缺陷進行檢測,避免影響外部美觀和使用性能,常見的焊接件表面缺陷包括焊縫、沖孔、月牙彎及絲斑等多種類型。傳統(tǒng)人工方式在對上述缺陷進行檢測的過程中不僅需要消耗較多的人力物力等資源,并且檢測質量也容易受到多方面因素影響。近年來,隨著深度學習相關理論和算法的快速更新,很多傳統(tǒng)制造環(huán)節(jié)正逐漸引入人工智能技術,以智能化的方式顯著提升了生產效率與產品質量,其中,目標檢測算法對于缺陷的檢測被廣泛應用于多類工業(yè)場景中。
目前主流的目標檢測算法主要分為兩大類,一類是雙階段檢測網(wǎng)絡,典型算法包括Faster-RCNN[1]、Mask RCNN[2]等,另一類則是以YOLO[3]為代表的單階段檢測網(wǎng)絡。相比于雙階段檢測網(wǎng)絡,單階段檢測網(wǎng)絡由于簡化了候選框生成過程,模型復雜度更低,檢測速度更快,因此更適合部署至移動端或嵌入式設備。劉浩等[4]將改進后的YOLOv3算法應用于刀具表面的缺陷檢測中,提升了檢測精度。李飛等[5]在YOLOv4的基礎上加入注意力機制用于輸送帶撕裂的檢測中,有效提升了網(wǎng)絡的綜合性能。李昂等[6]對原始YOLOv5模型結構進行改進并加入剪枝操作,在軌道障礙物檢測的實際應用中取得了良好的效果。
YOLO作為單階段檢測網(wǎng)絡的典型代表,對于檢測精度和速度取得了較好的平衡,因此被廣泛應用。但不同于其它檢測目標,焊接件表面存在的缺陷類型較復雜,不僅種類較多,而且存在難以檢測的小目標和形貌相似容易混淆的缺陷類型,原始的YOLOv5模型不能夠很好地達到檢測精度要求。此外,工業(yè)檢測設備對于算法的計算效率也有一定的要求,過大的內存占用和過多的計算量都會影響算法的部署及檢測速度,因此還需要對原算法的計算效率加以改進。
為更有利于部署至實際檢測場景中,本文提出了一種基于改進YOLOv5的焊接件表面缺陷檢測模型,通過改進C3結構,提高網(wǎng)絡對于缺陷特征的提取能力并減輕復雜度,其次改進邊界框的回歸損失函數(shù)提高目標檢測的位置精度,最后更換GSConv[7]卷積進一步增強網(wǎng)絡檢測性能并降低參數(shù)量,改進后模型的檢測效果和計算開銷都得到優(yōu)化,滿足工業(yè)場景中缺陷檢測要求。
YOLOv5在主干網(wǎng)絡中大量使用到了C3模塊,雖然相比于BottleneckCSP結構,C3的計算效率更高,但檢測能力并沒有得到提升,并且模型參數(shù)量依然較大。而在工業(yè)場景中,硬件設備資源的限制往往會對模型的性能提出更高的要求,為了滿足模型在工業(yè)設備中的應用,減小計算時間和資源方面占用的空間,并提高檢測精度,本文設計出C3_CMS模塊,應用于模型的特征提取與特征融合網(wǎng)絡中。
如圖1所示,C3_CMS模塊將原C3模塊中的Bottleneck結構替換為ConvMixer[8]混合卷積結構,并使用Mish[9]激活函數(shù),該結構能夠實現(xiàn)在降低模型復雜度的同時提高精度。并且為了進一步提升模型的檢測能力及泛化能力,在該模塊末端引入Shuffle Attention[10]注意力機制。
圖1 C3_CMS結構
在C3_CMS模塊中所使用的ConvMixer混合卷積層結構如圖2所示。
圖2 ConvMixer結構
ConvMixer結構主要由深度卷積(depthwise convolution)和逐點卷積(pointwise convolution)組成,卷積后再進行激活及BatchNorm操作。為了使網(wǎng)絡在訓練過程中更加快速、準確、穩(wěn)定地收斂,選擇平滑性更好的Mish激活函數(shù)。在該結構中,深度卷積將輸入的特征圖按其通道數(shù)進行拆分,每個通道上分別使用單獨的卷積核進行空間卷積運算。逐點卷積是指利用1×1大小的卷積核遍歷特征圖上的每個像素點,從而融合不同通道在相同空間位置處的特征信息。該結構利用深度卷積和逐點卷積分別考慮空間維度和通道維度的特點與深度可分離卷積(depthwise separable convolution)結構類似,并且兩者都能降低卷積過程中所需要的計算量,其主要區(qū)別在于ConvMixer結構中加入了殘差連接,即在逐點卷積前將上層輸出結果與更淺層的信息融合,增強網(wǎng)絡對于特征的學習能力。
此外,為了進一步優(yōu)化網(wǎng)絡性能,在C3_CMS模塊中加入注意力機制。神經網(wǎng)絡中的注意力機制主要是為了解決由于受到硬件計算能力限制,而將算力分配給更加重要的任務,同時解決信息超載問題的一種資源分配方案。這類似于人類的視覺注意機制,通過掃描全局圖片,識別重點關注區(qū)域,再對重點區(qū)域投入更多算力資源,以獲得更多細節(jié)信息。
目前主流的注意力機制主要有空間注意力機制(spatial attention)和通道注意力機制(channel attention),分別用于捕捉空間上的像素級關系和通道間的依賴關系。若直接將兩者結合使用將會得到更好的效果,但會增加模型計算量。為了不額外增加模型計算量并結合兩類注意力機制的優(yōu)點,本文引入Shuffle Attention注意力機制,其原理如圖3所示。
圖3 Shuffle Attention概述
首先將神經網(wǎng)絡輸入的特征圖沿通道方向上分組,生成多個Shuffle Attention單元;然后將每個單元拆分為兩條分支,分別使用通道注意力機制和空間注意力機制;接下來在單元內部將兩部分以通道數(shù)疊加,實現(xiàn)信息的融合;接著對所有單元進行通道混洗操作,實現(xiàn)不同組之間的信息交流,最終輸出結果特征圖。這一類似于分組卷積的結構能夠在要求輸出特征圖通道數(shù)不變的情況下使用到更少的參數(shù)量和計算量,有利于模型的輕量化。
結合了ConvMixer結構及SA注意力機制的C3_CMS模塊相比于原C3模塊具有更高的計算效率和檢測精度,更有利于模型的實際應用。
為獲得更好的小目標檢測效果,WANG等[11]提出一種基于Wasserstein Distance的normalized gaussian wasserstein distance(NWD)損失函數(shù)。具體來說,首先將目標的真實框與預測框建模為二維高斯分布,通過式(1)計算出兩者的Wasserstein距離。
(1)
式中:μ1與μ2分別表示兩個二維高斯分布的均值向量,Σ1與Σ2為協(xié)方差矩陣。由于目標邊界框均為矩形,式(1)可簡化為式(2):
(2)
式中:(x,y)與w、h分別表示邊界框的中心點坐標、寬度和高度。
為了能夠應用于目標檢測損失函數(shù)的計算,對式(2)進行歸一化,并得到NWD損失函數(shù)計算公式,如式(3)所示。
(3)
式中:C為常數(shù),本實驗環(huán)境下取值2.5時效果較佳。
該計算方式通過將兩個包圍框二維高斯分布的相似性轉換為目標檢測中的回歸損失,不僅可以避免IOU Loss在計算兩個無重疊邊界框損失值時無法收斂的問題,而且不會具有類似于DIOU[12]、CIOU[13]等損失函數(shù)在計算不同尺寸目標時對于相同位置偏差敏感度不同的特點,因此更適合檢測小目標。
但由式(2)、式(3)可看出,NWD損失函數(shù)主要關注于預測框與真實框中心點的距離,以及兩者寬度和高度的比較,這就導致該方法在某些情況下計算時會遺漏交并比與寬高比等信息進而影響模型精度。如圖4所示,可明顯觀察到圖4a中A框與真實框存在更高的交并比,圖4b中A框的形狀與真實框更相似,而使用NWD計算得到的A框和B框損失值完全相同。
(a) 不同交并比的邊框 (b) 不同寬高比的邊框
基于上述分析,本文在原NWD損失函數(shù)的基礎上加入懲罰項,使其關注更多真實框與預測框的幾何信息,得到改進后的NWD損失函數(shù)為:
(4)
式中:IOU表示真實框與預測框的交并比,wgt、hgt、w、h分別表示真實框與預測框的寬和高,C1、C2為兩部分損失項的權重系數(shù),本實驗環(huán)境下分別取值0.8和0.2。對改進前后的損失函數(shù)進行對比實驗,得到結果如表1所示。
表1 不同損失函數(shù)對比實驗結果 (%)
從表1可以看出,使用NWD損失函數(shù)的模型精度高于DIOU和CIOU,而改進后的NWD效果更優(yōu),更適合用于檢測焊接件表面存在的各種復雜缺陷類型,因此將改進后的NWD應用于本文模型中,替換原始的CIOU損失函數(shù)。
為了進一步減少計算量,減輕模型復雜度并保持模型準確性,本文引入GSConv模塊至Neck特征融合層,替代原有的CBS模塊。GSConv卷積層結構如圖5所示。
圖5 GSConv結構
若輸入特征圖的通道數(shù)為c1,輸出特征圖的通道數(shù)為c2。首先對輸入圖像進行標準卷積操作,操作后的特征圖通道數(shù)為c2/2;然后對特征圖進行深度可分離卷積操作,同樣得到c2/2的特征圖;再將兩個特征圖進行Concat操作,得到通道數(shù)為c2的特征圖;最后進行Shuffle操作,得到通道數(shù)為c2的輸出結果。
相比于標準卷積,深度可分離卷積能夠降低參數(shù)量、減少計算開銷,但由于空間維度和通道維度相分離,因此深度可分離卷積不能有效融合空間信息與通道信息,進而可能會導致檢測精度的損失。但GSConv結構將只經過標準卷積運算后的特征圖與后續(xù)又經過深度可分離卷積運算后的特征圖進行Concat拼接,并加入通道混洗操作,從而便于特征信息在空間維度和通道維度中的流通,避免信息的丟失,保證模型精度。并且得益于整個結構對于通道數(shù)的控制以及深度可分離卷積的優(yōu)點,模型的參數(shù)量和計算復雜度都能有所下降。
最終改進后的網(wǎng)絡結構如圖6所示。
圖6 改進后的YOLOv5網(wǎng)絡結構
本文使用來自AI Studio網(wǎng)絡平臺公開的焊接件表面缺陷數(shù)據(jù)集作為訓練測試數(shù)據(jù)。其中包含了10種不同類型的表面缺陷:沖孔、焊縫、月牙彎、水斑、油斑、絲斑、異物、壓痕、折痕以及腰折。共有2292張灰度圖片,圖片大小為2048×1000。
為了防止訓練產生過擬合,提高模型的魯棒性以及泛化能力,采用高斯模糊、翻轉、平移、裁剪、亮度變化和旋轉等方式對原始數(shù)據(jù)進行數(shù)據(jù)增強。經過數(shù)據(jù)增強后數(shù)據(jù)集被擴充至6876張圖片。本文按照訓練集、驗證集和測試集8∶1∶1的比例抽取數(shù)據(jù),得到訓練集5501張,驗證集687張、測試集688張。各類缺陷如圖7所示。
圖7 各缺陷類型
本文訓練使用的實驗環(huán)境如表2所示。
表2 實驗環(huán)境
本文實驗過程中采用YOLOv5s作為網(wǎng)絡模型,訓練時的epoch=200,batch_size=64,采用SGD函數(shù)優(yōu)化參數(shù),動量為0.937。
目標檢測領域對模型性能的評價指標主要有召回率(recall,R)、精確率(precision,P)、準確率(accuracy,Acc)、平均精度(average precision,AP)和平均精度均值(mean average precision,mAP)。其中召回率是統(tǒng)計所有正確預測為正樣本占全部實際為正樣本的比例;精確率是統(tǒng)計正確預測為正樣本的占全部預測為正樣本的比例;準確率是統(tǒng)計所有的預測正確樣本的占總樣本的比重。召回率、精確率和準確率的計算公式為:
(5)
式中:TP(true positive)表示一個樣本是正樣本并且被認定為正樣本,TN(true negative)表示一個樣本是假樣本并且認定為假樣本,FP(false positive)表示一個樣本是假樣本但判定為正樣本,FN(false negative)表示一個樣本是正樣本但認定為假樣本。以召回率作為橫坐標,精確率作為縱坐標所繪出的曲線被稱為PR曲線。平均精度就是PR曲線與橫坐標軸圍成的圖形面積,當平均精度為1時模型性能最好。平均精度均值即為各缺陷類別平均精度的均值。
本文采用檢測速度、計算復雜度、檢測精度和模型體積等指標評價檢測模型。其中檢測速度選擇每秒傳輸幀數(shù)(frames per second,FPS)評價;計算復雜度選擇浮點運算次數(shù)(floating points of operations,FLOPs)評價;檢測精度選擇平均精度均值評價;模型體積選擇模型參數(shù)量(params)評價。
為了驗證不同改進方式對焊接件表面缺陷檢測性能的影響,本文進行消融實驗,得到5種不同模型的復雜度和性能對比如表3所示。其中用“√”表示使用此模塊,用“×”表示沒有使用此模塊。
表3 消融實驗結果
分析實驗結果,第一個模型是不使用任何改進策略,使用原始YOLOv5s模型進行訓練,并以此模型為基線進行對比。改進一與原始模型相比,mAP提高2.2%,FPS提高8.2 f/s,計算復雜度降低0.9GFLOPs,參數(shù)量降低1.1×106。這是因為改進了C3模塊,以殘差連接的方式將深度卷積與逐點卷積結合替換原始卷積層,并加入注意力模塊,使得模型在檢測精度提升的同時具有輕量化的效果。改進二與原始模型相比,由于更換了損失函數(shù),FPS有所降低,但mAP提高1.4%,說明改進后的損失函數(shù)在邊界框的回歸損失計算中具有更好的效果。改進三與原始模型相比,FPS降低3.8 f/s,但mAP提高1.7%,計算復雜度降低0.5GFLOPs,參數(shù)量降低0.4×106,有效證明了GSConv能夠減少參數(shù)量和計算量,并提高網(wǎng)絡的特征檢測能力。改進四為最終改進模型,與原始模型相比,mAP提高4.8%,檢測速度提高4 f/s,計算復雜度降低1.4GFLOPs,參數(shù)量降低1.5×106。
綜合上述分析,本文提出的改進模型在檢測速度、計算復雜度、檢測精度和模型體積等方面均優(yōu)于原始模型。
為了有效對比模型改進前后的效果,訓練完成后,對模型訓練過程進行可視化處理,將本文改進后的模型與原始模型在同一坐標系下進行對比。mAP隨著訓練輪數(shù)的變換曲線如圖8所示,訓練迭代次數(shù)為200次。
圖8 mAP曲線
從圖8可以看出,在0~50次過程中,mAP波動明顯,這是由于訓練初期不穩(wěn)定導致的。隨著訓練次數(shù)的增加,mAP增長趨于穩(wěn)定,并且本文模型明顯優(yōu)于原始YOLOv5s模型。
為了更好地對比檢測效果,圖9為原始YOLOv5s算法與本文算法在部分缺陷上的檢測情況對比。圖中的標注框標注了缺陷位置、缺陷類型及置信度。
圖9 檢測結果對比
對比兩個模型的檢測結果可以看出,針對不同缺陷,改進后的模型在置信度上相比于原始模型均有不同程度的提高。
為了進一步驗證本文算法的有效性,將其與SSD[14]、Faster-RCNN、YOLOv3[15]、YOLOv4[16]、YOLOv6[17]、YOLOv7[18]、YOLOX[19]和YOLOv5在內的主流目標檢測算法在相同數(shù)據(jù)集上進行對比實驗。實驗結果如表4所示。
表4 對比實驗結果
根據(jù)對比實驗結果可知,本文提出的改進算法相比于其它主流的目標檢測算法,有效提升了檢測精度,mAP達到91.3%;參數(shù)量和計算復雜度顯著降低,更加便于工業(yè)場景下的應用,參數(shù)量和計算復雜度分別為5.5×106和14.4GFLOPs;同時具有更高的實時檢測速度,FPS為142.9 f/s。因此,本文算法在檢測精度、參數(shù)量、計算復雜度和檢測速度等方面均優(yōu)于主流的目標檢測算法,能夠更好地完成焊接件表面缺陷檢測任務。
針對焊接件表面缺陷,本文提出了基于YOLOv5的改進算法。首先改進主干網(wǎng)絡中的C3模塊,包括引入ConvMixer混合卷積結構及Shuffle Attention注意力機制,前者增強了模型感受野、提高了特征提取能力,后者將傳統(tǒng)注意力機制高效融合,提高了計算效率和模型的泛化能力。其次,改進NWD損失函數(shù),考慮更多邊界框幾何信息,在本文焊接件表面缺陷數(shù)據(jù)集中取得了良好的效果。最后,引入GSConv層替代原始卷積層,在降低參數(shù)量的前提下提升檢測精度,進一步優(yōu)化了網(wǎng)絡。改進后的算法mAP提高4.8%,FPS提高4 f/s,計算復雜度降低1.4GFLOPs,參數(shù)量降低1.5×106,實驗結果表明,改進后的模型具有良好的檢測精度,并且提升了焊接件表面缺陷的檢測效率,能夠較好地應用在工業(yè)場景中。