黃 怡, 董榮勝
(桂林電子科技大學 廣西可信軟件重點實驗室,廣西 桂林 541004)
扁鋼的生產(chǎn)過程特別精細,從加熱和軋制到干燥和切割,鋼表面不可避免地會產(chǎn)生一些缺陷[1]。目前,如航空航天、機械制造業(yè)等各大行業(yè)對鋼鐵產(chǎn)品的質(zhì)量越發(fā)重視,質(zhì)量把關已成為鋼鐵行業(yè)的關鍵技術[2]。針對鋼表面缺陷問題,如何準確地檢測表面缺陷并提高產(chǎn)品質(zhì)量已成為鋼鐵生產(chǎn)領域的核心問題。然而,在現(xiàn)實世界的鋼廠中,鋼表面缺陷的現(xiàn)場檢測是一項非常具有挑戰(zhàn)性的工作[3]。
近些年來,隨著以卷積神經(jīng)網(wǎng)絡(convolutional neural networks,簡稱CNN)為代表的深度學習模型在諸多計算機視覺領域成功應用,例如人臉識別、場景文字檢測、目標跟蹤和自動駕駛等,不少基于深度學習的缺陷檢測方法也被廣泛應用在各種工業(yè)場景中[4-5]。例如,為了解決缺陷檢測難以兼顧分類和定位這兩者的準確性,He等[6]提出了一種基于深度學習的新型缺陷檢測系統(tǒng),并研究了一種實際的鋼板缺陷檢測工業(yè)應用,同時建立了一個缺陷檢測數(shù)據(jù)集NEU-DET,用于訓練和評估所提出的方法,達到了良好的性能,且具有實時檢測的潛力。Cha等[7]提出了一種基于Faster R-CNN的結構視覺檢測方法,以檢測5種類型的表面損傷:混凝土裂縫、鋼筋腐蝕、螺栓腐蝕和鋼筋分層。Tao等[8]基于CNN 進行金屬表面缺陷自動檢測與識別,設計了一種新穎的級聯(lián)式自動編碼器結構,用于分割和定位缺陷。這種通用的方法可以直接應用于工業(yè)應用中其他材料的缺陷檢測。Nie等[9]提出一種基于Deep Labv3+網(wǎng)絡的鋼表面缺陷檢測方法,Deep Labv3+融合不同的骨干網(wǎng)絡,完成了對鋼表面缺陷的自動檢測和分類,并且獲得了較高的準確度和效率。Weng等[10]通過一種改進Mask R-CNN 算法進行帶鋼表面缺陷檢測,能夠?qū)崿F(xiàn)對缺陷目標的檢測和實例分割,實驗均值平均精度(m AP)提升到96.02%,檢測速度達5.9 frame/s。
根據(jù)kaggle競賽平臺提供的鋼表面缺陷數(shù)據(jù)集,針對目前還存在數(shù)據(jù)集中如麻點表面等小而細的缺陷,是檢測過程中易丟失缺陷信息,缺陷定位和分類困難的問題導致檢測準確率不理想。因此,為了解決上述問題,提高對鋼表面缺陷檢測準確率,提出了一種基于多尺度特征融合和注意力機制的鋼表面缺陷檢測算法,用于處理鋼表面缺陷檢測任務,以獲取鋼表面缺陷的類型和位置信息。
1)提出一種結合殘差網(wǎng)絡和多尺度特征融合的編碼器結構,其中多尺度特征融合模塊由金字塔切分注意力(pyramid split attention,簡稱PSA)模塊和空洞空間卷積池化金字塔(atrous spatial pyramid pooling,簡稱ASPP)模塊并聯(lián)組成,以獲取更細粒度的多尺度特征信息。
2)提出一種基于全局注意力采樣(global attention upsample,簡稱GAU)模塊的解碼器結構,利用高層語義信息對淺層細節(jié)信息的指導作用來實現(xiàn)更加精準的選取細節(jié)信息,幫助逐漸恢復目標信息。
針對在kaggle競賽平臺上由Severstal公司提供的鋼表面缺陷圖像數(shù)據(jù)集[1]進行研究,如圖1所示,該數(shù)據(jù)集由12 568張1 600×256像素的灰度鋼表面圖像組成,包含4類缺陷,分別為麻點表面、劃痕、夾雜物和斑塊,缺陷類型多樣,且每個缺陷圖像可能不具有缺陷、具有單個類別的缺陷或具有多個類別的缺陷。數(shù)據(jù)集中各類型缺陷圖像數(shù)量亦各不相同,數(shù)據(jù)集中有54.6%的圖像存在缺陷,且各類型缺陷數(shù)量極不平衡,僅缺陷類型3就占39.6%,占有缺陷圖像數(shù)量的70%以上,而缺陷類型2僅占1.9%。針對上述缺陷數(shù)量極不平衡問題,在進行數(shù)據(jù)預處理時,采取數(shù)據(jù)增強方法來豐富訓練數(shù)據(jù)集,其中采用的數(shù)據(jù)增強方法有隨機裁剪、翻轉和隨機變換等。
圖1 缺陷圖像示例
提出一種基于多尺度特征融合和注意力機制的鋼表面缺陷檢測模型,整體網(wǎng)絡結構如圖2所示。該模型采用的是編解碼器結構,編碼器結構用殘差網(wǎng)絡ResNet50[11]作骨干網(wǎng)絡,用于特征提取任務,殘差結構能夠?qū)W習更多更深層次的特征信息。隨后連接一個多尺度特征融合模塊,該模塊由PSA 模塊和ASPP模塊并聯(lián)組成,其中PSA模塊利用不同卷積核進行分組卷積來獲取具有自適應通道注意力權值的不同尺度空間特征信息;同時ASPP模塊利用多采樣率空洞卷積來實現(xiàn)不同尺度特征的提取,接著將提取到的所有多尺度特征拼接在一起,進行特征融合,旨在捕獲更富有辨識能力的多尺度特征信息。最后經(jīng)過1×1卷積進行降維,得到的高級語義特征作為解碼器的輸入。在解碼器結構中,主要是利用全局注意力采樣將豐富的高級語義信息生成全局上下文權重來指導低水平特征選取細節(jié)信息,幫助逐步恢復缺陷信息,接著應用3×3卷積塊來細化特征,最后進行上采樣輸出預測結果。
圖2 整體網(wǎng)絡結構
針對鋼表面存在的形狀大小、位置信息各異的麻點表面、劃痕、夾雜物和斑塊這4類缺陷,為了能更加準確地提取到4類缺陷的特征信息,在編碼器結構中捕獲高級語義信息的同時,需要提取具有豐富空間信息的特征,因此,設計一個ASPP模塊與PSA模塊并聯(lián)的結構來實現(xiàn)多尺度特征融合。ASPP模塊的作用是利用空洞卷積擴大感受野,其空洞率rate=[6,12,18],可以提高對不同大小缺陷的特征提取能力,對恢復缺陷邊緣部分信息也具有重要作用。金字塔切分注意力模塊[12]是一種能夠在更細粒度水平上提取多尺度空間信息,并自適應地重新較準跨維通道注意權重的輕量高效的注意力模塊,通過該模塊可以提取含有這4類缺陷的更細粒度的多尺度空間信息。
2.1.1 金字塔切分注意力模塊
金字塔切分注意力模塊核心思想是通過分組卷積構建金字塔結構提取多尺度空間信息,同時利用Softmax函數(shù)來重新較準跨維通道注意力權重,輸出更精細的多尺度特征信息,其網(wǎng)絡結構如圖3所示。
圖3 金字塔切分注意力模塊
該模塊先經(jīng)過一個切分和拼接(split and concat,簡稱SPC)操作,即:對輸入特征圖進行通道維度的平均切分操作,接著對均分后的特征圖分別進行不同卷積核的分組卷積來構建特征金字塔結構,然后將分組卷積后得到的特征圖按照通道維度重新拼接起來,最后輸出一個擁有多尺度空間信息的特征圖。具體SPC操作過程如圖4所示。
圖4 切分和拼接操作
1)設輸入特征圖為X,它的通道數(shù)C=2 048,將X沿通道維度切分為4份,記為[X0,X1,X2,X3]。對于每個切分后的特征圖,它的通道數(shù)為C′=C/4=512,切分后的第i個特征圖,可表示為Xi(i=[0,1,2,3])。接著使用ki=[3,5,7,9]的不同卷積核分別對Xi進行分組卷積操作,獨立地學習多尺度空間信息,其中不同卷積核大小和分組數(shù)之間的關系為
其中:ki為卷積核的大小;Gi為分組卷積操作中分組數(shù),但當k0=3時,取G0=1。通過分組卷積構建金字塔結構生成多尺度特征圖的具體實現(xiàn)過程,可表示為
其中:Conv(·,·)表示分組卷積操作;對于第i個特征圖Xi,Fi為Xi完成分組卷積操作的特征圖;F表示將各切分特征圖分組卷積的輸出特征圖進行拼接操作后得到的預處理多尺度特征圖。
2)利用通道注意力權重模塊對預處理多尺度特征圖F進行編碼,提取通道注意力權重信息,得到不同尺度特征的注意力權重向量,可表示為
其中,Zi表示從Fi中提取的注意力權重,SEWeight(·)用于從不同尺度的輸入特征圖中獲取注意力權重,這樣可以融合不同尺度的上下文信息。進一步,為了實現(xiàn)注意力信息的交互,將4組的權重串聯(lián)在一起,
其中:⊕為拼接操作;Z為多尺度注意力權重向量。
3)利用Softmax函數(shù)對注意力權重向量進行重新校準,其先在Zi的引導下,采用跨通道的軟注意自適應選擇不同的空間尺度,其軟分配權重表述為
其中,Softmax(·)用于獲取多尺度通道的重新校準權重Ai,包含有空間上的所有位置信息和通道中的注意力權重。將重新校準的通道注意力以串聯(lián)的方式拼接,從而得到整個多尺度特征圖的新通道注意力向量,實現(xiàn)拼接過程為
其中:⊕為拼接操作;A為注意力交互后的多尺度通道權重。
4)對重新較準的多尺度通道權重與相應特征圖Fi相乘,
其中:?表示乘法操作;Yi表示具有多尺度通道注意力權重的特征圖。
綜上所述,經(jīng)PSA 模塊獲得更加豐富和精化的多尺度特征信息的過程可表述為
2.1.2 通道注意力權重模塊
通道注意力權重模塊的核心思想是通過壓縮全局空間信息來獲取各通道統(tǒng)計信息并調(diào)整輸出通道權重向量,具體實現(xiàn)過程如圖5所示。
圖5 通道注意力權重模塊
1)設輸入特征圖為U,通道數(shù)、高和寬分別為C、H和W,U首先經(jīng)過全局平均池化,將全局空間信息壓縮到通道描述中生成通道統(tǒng)計信息,計算式為
其中:Z通過壓縮U生成;Zc為第c個通道統(tǒng)計信息。
2)利用上述的通道統(tǒng)計信息Z,進一步調(diào)整各個通道的權重,即:通過2個全連接層,第一層使用Re-Lu激活函數(shù),第二層使用sigmoid激活函數(shù),最終輸出各通道特征的權重,過程表述為
經(jīng)過該模塊獲得的通道注意力權重信息,有助于模型在學習過程中根據(jù)不同的權重賦予通道不同的關注度,提高其對各個通道特征信息的提取能力[13]。
在解碼器結構中,為了能夠更好地獲得4類缺陷的邊緣信息,提高缺陷預測和分割效果,提出基于全局注意力采樣模塊的解碼器結構,利用低層豐富的細節(jié)信息對高級語義信息的指導作用,能很好地幫助恢復4類缺陷目標信息,經(jīng)過3×3卷積塊進行特征細化,得到通道數(shù)為4的特征圖,最后上采樣輸出預測結果。
2.2.1 全局注意力采樣模塊
全局注意力采樣模塊可有效地部署不同尺度特征圖,并能夠以簡單的方式向低層特征圖提供指導信息[14]。改進的全局注意力采樣模塊結構如圖6所示。
圖6 全局注意力采樣模塊
在解碼器中,將來自編碼器豐富的高級語義信息作為GAU 模塊的高水平特征的輸入,設高層輸入特征H,其中通道數(shù)C=256,通過全局平均池化生成全局上下文h,經(jīng)過1×1卷積、批歸一化和非線性激活函數(shù),得到每個通道的權重信息,實現(xiàn)過程可表示為
其中:G表示由高層輸入特征得到的全局上下文權重;g(·)表示進行全局池化;F1×1表示進行1×1卷積;BN表示批歸一化;δ(·)表示ReLu激活函數(shù)。
2.2.2 高效通道注意力模塊
將骨干網(wǎng)絡ResNet50淺層細節(jié)信息作為GAU低水平特征輸入,設淺層輸入特征L,其中通道數(shù)C=256。首先L經(jīng)過高效通道注意力(efficient channel attention,簡稱ECA)模塊[15],其結構如圖7所示,該模塊主要通過卷積核大小K=3的一維卷積的不降維方式來實現(xiàn)有效捕獲跨通道交互的特征信息,可表示為
圖7 高效通道注意力模塊(ECA)
其中:由式(10)可知Z是全局平均池化后的輸出結果;C1DK=3(·)表示進行卷積核大小K=3的一維卷積;σ(·)表示sigmoid激活函數(shù);E表示經(jīng)過通道注意力模塊的輸出特征。利用權重G與E做加權操作,可表示為
其中,Lw表示加權后的淺層特征信息。
將上采樣后的高層特征與加權后的淺層特征相加即可得到最終的輸出結果,可表示為
采用Dice系數(shù)和IoU 作為評價指標。Dice系數(shù)是一種集合相似度度量函數(shù),可用來比較預測結果與原始圖像真值之間的像素一致性(范圍為[0,1]);IoU(交并比)是一種表示分割預測結果與原始圖像真值重合程度的函數(shù)。評價指標計算如下:
其中:P為分割預測結果;T為真實標注。
基于Pytorch深度學習框架,采用顯存11 GiB的GeForce RTX 2 080 Ti 1進行模型訓練,優(yōu)化器選取RAdam[16],其在優(yōu)化算法Adam[17]的基礎上進行了修正,能夠獲得更加優(yōu)異的模型訓練收斂速度和效果,在鋼表面缺陷檢測任務上也表現(xiàn)良好。針對kaggle競賽平臺提供的鋼表面缺陷數(shù)據(jù)集,按照比例8∶2將數(shù)據(jù)集隨機拆分成訓練集和驗證集,訓練過程中各參數(shù)初始化設置如表1所示。
表1 模型參數(shù)初始化設置
為了測試提出的基于多尺度特征融合和注意力機制的鋼表面缺陷檢測模型的有效性,基于Res-Net50骨干網(wǎng)絡,對基礎網(wǎng)絡(Deeplabv3+)添加金字塔切分注意力模塊(PSA)和全局注意力采樣模塊(GAU)進行消融實驗,結果如表2所示。
表2 消融實驗結果
由表2可看出,當僅添加PSA模塊時,缺陷檢測準確率有所提高,因為在基礎網(wǎng)絡中,ASPP模塊雖然可以通過不同采樣率擴大感受野,但是由于采樣率間隔較大,會導致一些局部信息丟失,特別是鋼表面缺陷的大小和形狀不規(guī)則,如麻點表面等細小缺陷,局部信息的丟失極易造成缺陷信息丟失或誤檢;而PSA模塊可以在更細粒度水平上提取多尺度空間信息,因此添加PSA 模塊與ASPP模塊實現(xiàn)多尺度特征融合,可以提升缺陷檢測率。當僅添加GAU 模塊時,缺陷檢測準確率也明顯提高,相比較于基礎網(wǎng)絡中使用簡單的解碼器來恢復缺陷圖像的邊緣信息,基于GAU 模塊的解碼器結構能夠更好地利用編碼器中所提取的豐富高級語義信息,指導低水平特征選取細節(jié)信息,可以在更大程度上幫助解碼器逐步恢復缺陷信息,達到提高缺陷檢測準確率的目的。而同時添加PSA模塊和GAU 模塊的實驗效果最好,分割準確率最高,Dice 達到了94.22%,IoU 達到了66.24%,表明金字塔切分注意力和全局注意力采樣模塊可以有效用于鋼表面缺陷檢測并提升網(wǎng)絡性能,證明所提出的基于多尺度特征融合和注意力機制的鋼表面缺陷檢測模型是有效的。
為了對比不同的語義分割算法對鋼表面缺陷檢測的效果,分別基于不同模型框架進行實驗,結果如表3所示。
表3 不同模型的對比實驗結果 %
實驗數(shù)據(jù)表明,基于多尺度特征融合和注意力機制的鋼表面缺陷檢測模型的缺陷檢測Dice能夠達到94.22%,IoU 達到66.24%;相比較于使用了預訓練的Deeplabv3+網(wǎng)絡,Dice提高了1.08%,Io U 提高了3.11%,與其他所選的對比語義分割模型相比也有不同程度的提升。
為了分析缺陷檢測模型對缺陷圖像的檢測分割效果,基于不同模型的對缺陷圖像分割效果進行了對比。如圖8所示,為了更清晰地區(qū)分同一張多缺陷圖像中不同缺陷的缺陷分割情況,將不同缺陷類型分顏色展示,紫色缺陷是對缺陷3的缺陷分割可視化展示,紅色缺陷是對缺陷4的缺陷分割可視化展示。經(jīng)對比可看出,基于Unet等語義分割模型的缺陷分割在檢測過程中嚴重丟失缺陷信息,且存在邊緣信息處理不夠精細、易丟失部分邊緣缺陷信息的情況,缺陷分割效果欠佳;而基于融合多尺度特征和注意力機制的鋼表面缺陷檢測模型,能更好地把握缺陷圖像中大小不一的缺陷信息,且全局注意力采樣模塊在恢復邊緣細節(jié)信息中至關重要,使得解碼器在產(chǎn)生像素級的分割預測過程中能很好地利用高層語義信息對低層信息的指導作用,最終缺陷分割效果對邊緣細節(jié)信息處理更平滑,效果更優(yōu)。
圖8 不同模型對多類缺陷圖像的分割效果對比
提出了一種基于多尺度特征融合和注意力機制的鋼表面缺陷檢測算法,適用于定位和分類鋼板表面缺陷,且成功地在實際工業(yè)數(shù)據(jù)集上進行評估。實驗結果表明,提出的基于編碼器-解碼器結構的語義分割網(wǎng)絡結構在鋼表面缺陷檢測中表現(xiàn)了良好的性能,其中所提出的基于殘差網(wǎng)絡和多尺度特征融合模塊的編碼器結構提取了更豐富和精細化的多尺度特征信息;同時,解碼器結構通過全局注意力采樣模塊利用高層語義信息對淺層細節(jié)信息進行指導,提升了對邊緣等細節(jié)信息的恢復效果。本算法的Dice系數(shù)達到了94.22%,提高了缺陷檢測的準確度,在鋼表面缺陷檢測中優(yōu)于多種算法。未來,針對缺陷類型相對較少的情況,將繼續(xù)豐富數(shù)據(jù)集來提高模型的泛化性能,并對細小缺陷的檢測問題進行進一步研究。