劉瓊,黃景煦,張熠卿,李廣睿,向浪
(北京信息科技大學(xué) 自動化學(xué)院,北京 100192)
研究表明,每年全世界以金屬腐蝕為主的腐蝕損耗成本約占全球GDP總數(shù)的3.4%[1]。金屬腐蝕不僅造成了巨大的經(jīng)濟(jì)損失,還嚴(yán)重威脅到人們的生命安全。及時發(fā)現(xiàn)金屬腐蝕區(qū)域,確定腐蝕程度,據(jù)此進(jìn)行相應(yīng)的設(shè)備維護(hù)和檢修,對保護(hù)生命財產(chǎn)安全具有重要的意義。
基于視覺的檢測方法因具有操作簡單、范圍廣的優(yōu)勢而被廣泛應(yīng)用于缺陷檢測領(lǐng)域。在深度學(xué)習(xí)出現(xiàn)以前,人們主要研究基于傳統(tǒng)的圖像處理技術(shù)進(jìn)行腐蝕圖像檢測。Livens等[2]通過小波能量提取特征,并通過學(xué)習(xí)向量化對腐蝕圖像進(jìn)行二分類。Siegerl等[3]采用多分辨率小波特征提取和神經(jīng)網(wǎng)絡(luò)對裂紋和表面腐蝕進(jìn)行檢測。Ghanta等[4]采用小波變換設(shè)計了一套自適應(yīng)閾值的方法用于公路鋼材銹蝕檢測。傳統(tǒng)的圖像處理技術(shù)往往在特定領(lǐng)域表現(xiàn)優(yōu)異,但普適性低,并且特征提取依賴于先驗(yàn)知識,難以適應(yīng)各種復(fù)雜的腐蝕狀況。
近年來,隨著深度學(xué)習(xí)理論的發(fā)展以及計算機(jī)算力的不斷提升,基于視覺的金屬腐蝕檢測精度得到了顯著的提升。同時,腐蝕圖像數(shù)據(jù)集的建立,也促進(jìn)了基于視覺的金屬腐蝕檢測技術(shù)的進(jìn)步。相比傳統(tǒng)的圖像處理技術(shù),卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)強(qiáng)大的非線性擬合能力和自動提取特征的能力在腐蝕檢測領(lǐng)域具備很大的優(yōu)勢。Petricca等[5]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的自動金屬腐蝕檢測方法應(yīng)用于金屬銹病檢測。Liu等[6]基于VGG19和Faster R-CNN網(wǎng)絡(luò)建立了一種鋼板涂層破損和腐蝕檢測系統(tǒng),具有較好的應(yīng)用效果。Cha等[7]研究顏色空間、滑動窗口以及卷積神經(jīng)網(wǎng)絡(luò)對腐蝕檢測的影響,其中經(jīng)過微調(diào)的VGG16網(wǎng)絡(luò)表現(xiàn)優(yōu)異。Abdur等[8]提出了一種新的集成深度學(xué)習(xí)技術(shù),利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)構(gòu)識別和腐蝕特征提取。Shi[9]采用卷積神經(jīng)網(wǎng)絡(luò)對配電箱的金屬腐蝕程度進(jìn)行評估,最終的準(zhǔn)確率達(dá)到99.23%。Wu[10]自主設(shè)計了一個VGG-corrosion算法并建立了一個腐蝕圖像四級評價系統(tǒng),最終的分類準(zhǔn)確率達(dá)到91%。Wen[11]采用改進(jìn)Deeplabv3+網(wǎng)絡(luò)用于火電廠過熱器管道內(nèi)壁腐蝕檢測。這些方法并沒有針對腐蝕圖像的分布無規(guī)律、形狀不規(guī)則的固有規(guī)律進(jìn)行網(wǎng)絡(luò)設(shè)計,所應(yīng)用的卷積神經(jīng)網(wǎng)絡(luò)感受野有限,無法有效建模腐蝕圖像的上下文關(guān)系。
基于以上分析,本文提出了一種深度殘差語義分割網(wǎng)絡(luò)用于金屬腐蝕圖像分割,通過大卷積核和小卷積核相結(jié)合有效擴(kuò)大了算法的感受野以建模上下文關(guān)系,并且融合了多尺度的信息以加強(qiáng)特征表示能力,相比傳統(tǒng)的算法具備更高的精度。
更深層的神經(jīng)網(wǎng)絡(luò)可以更加準(zhǔn)確地提取金屬腐蝕圖像的語義特征;然而,隨著深度的增加,深度神經(jīng)網(wǎng)絡(luò)往往會出現(xiàn)梯度消失等問題。因此,本文引入了殘差結(jié)構(gòu),并且將卷積核分解與局部上下文特征以及多尺度的信息相結(jié)合以提高金屬腐蝕圖像分割的精度,并降低模型的參數(shù)量。
深度卷積神經(jīng)網(wǎng)絡(luò)在圖像分類、目標(biāo)檢測、語義分割等經(jīng)典的視覺任務(wù)中取得了較高的精度[12-13],深度網(wǎng)絡(luò)可以通過堆疊多個卷積層來分別獲取低/中/高級特征。大量實(shí)驗(yàn)證明,網(wǎng)絡(luò)深度對提升網(wǎng)絡(luò)精度十分重要;然而,隨著網(wǎng)絡(luò)深度的增加,模型精度達(dá)到飽和后開始迅速下降。發(fā)生這種現(xiàn)象的原因是層數(shù)過深的神經(jīng)網(wǎng)絡(luò)丟失了圖像的部分特征信息,且深層網(wǎng)絡(luò)難以通過隨機(jī)梯度下降(stochastic gradient descent,SGD)進(jìn)行優(yōu)化,很容易出現(xiàn)梯度消失,最終模型精度甚至不如淺層的神經(jīng)網(wǎng)絡(luò)。
殘差網(wǎng)絡(luò)(residual network,ResNet)[14]通過引入如圖1所示的殘差結(jié)構(gòu),成功地解決了深層網(wǎng)絡(luò)精度易飽和的問題。殘差結(jié)構(gòu)創(chuàng)建了一個快速通道,使得信號可以快速跳過單層或多層運(yùn)算,直接與輸出相連接,有助于信號更快地前向傳播。同時,殘差連接創(chuàng)建了一個恒等映射,可以有效防止梯度消失,使得更深層的神經(jīng)網(wǎng)絡(luò)訓(xùn)練成為了可能。
圖1 殘差連接
殘差結(jié)構(gòu)的另一個好處是既不增加額外的參數(shù),也不增加計算的復(fù)雜性,整個網(wǎng)絡(luò)仍然可以通過反向傳播的SGD優(yōu)化器進(jìn)行端到端的訓(xùn)練。
然而,ResNet具有大量的參數(shù),需要消耗大量的計算資源。因此,本文采用深度卷積與逐點(diǎn)卷積相結(jié)合進(jìn)一步減少參數(shù)量,結(jié)合殘差連接,以便訓(xùn)練一個更深層的神經(jīng)網(wǎng)絡(luò)。
腐蝕圖像的特征更多體現(xiàn)為局部特征,由于腐蝕區(qū)域無固定的形狀和大小,所以局部上下文信息對于腐蝕圖像分割十分重要?;谝陨戏治?,本文提出了局部上下文模塊,如圖2所示,該模塊由局部感知單元(local perception unit,LPU)、局部上下文感知單元(local contextual unit,LCU)以及殘差前向傳播單元(residual feed-forward unit,RFFU)組成。
圖2 局部上下文特征提取模塊
所有的激活函數(shù)均采用Transformer[15]中廣泛使用的高斯誤差線性單元(Gaussian error linear units,GELU)函數(shù)[16],以更好地提高模型的泛化性能,并采用批歸一化(batch normalization,BN)以加快訓(xùn)練的速度。
局部感知單元主要由一個3×3的深度卷積組成,初步提取腐蝕圖像的局部特征,其計算原理如式(1)所示。
LPU(X)=f3×3(X)+X
(1)
式中:X為輸入的特征信息;f3×3為3×3的深度卷積。
局部上下文感知單元主要由逐點(diǎn)卷積、小卷積核和大卷積核組成。大卷積核捕獲更大目標(biāo)的腐蝕區(qū)域,并建立長距離的依賴關(guān)系;小卷積核捕獲局部的細(xì)節(jié)特征,兩者相加兼顧了長距離的依賴和局部細(xì)節(jié)以提取豐富的上下文信息。該單元的計算原理如式(2)所示。
LCU(X)=f1×1(fs(f1×1(X))+fl(f1×1(X)))+X
(2)
式中:f1×1表示對輸入特征進(jìn)行逐點(diǎn)卷積;fs和fl分別表示對輸入特征采用小卷積核和大卷積核進(jìn)行卷積。根據(jù)實(shí)踐經(jīng)驗(yàn),本文將小卷積核的大小設(shè)置為3×3,大卷積核的大小設(shè)置為11×11。
殘差前向傳播單元再次進(jìn)行局部特征提取,并促進(jìn)信號快速向前傳播。該單元主要由兩層逐點(diǎn)卷積和3×3的深度卷積組成。
本文采用“編碼器-解碼器”模型作為主干結(jié)構(gòu),如圖3所示。其中,N1、N2、N3、N4為堆疊的次數(shù),分別取值為3、3、4、3;H和W為圖像的高和寬;C1、C2、C3、C4為通道數(shù),分別取值為32、64、128、256;C為解碼器的通道數(shù),取值為64;N為最后的分類數(shù),取值為4。編碼器主要通過堆疊局部上下文模塊以提取淺層、低層、中層、高層以及深層的上下文特征。第一階段由3×3的卷積核、3×3的深度卷積和逐點(diǎn)卷積提取圖像的局部特征,后面的主干特征提取階段主要由局部上下文特征提取模塊以及下采樣模塊組成。
下采樣模塊主要由一個步幅為2的3×3深度卷積和一個逐點(diǎn)卷積組成,其中深度卷積的主要作用為縮小圖像的尺寸以減少內(nèi)存消耗,而逐點(diǎn)卷積主要對通道數(shù)進(jìn)行擴(kuò)增,以學(xué)習(xí)更多的模式特征。該模塊的計算原理如式(3)所示。
DM(X)=f1×1(f3×3(X))
(3)
解碼器首先將特征圖上采樣至相同的分辨率,然后將各個尺度的特征圖在通道維度進(jìn)行拼接,再通過兩層逐點(diǎn)卷積得到最后的分割結(jié)果,解碼器的計算原理如式(4)所示。
(4)
式中:f1×1(Xi,Ci,C)表示通過逐點(diǎn)卷積將輸入特征Xi從通道數(shù)Ci變?yōu)镃,Xi、Ci分別表示不同尺度的特征和通道數(shù);upsample為上采樣操作,主要方法為雙線性插值;concat為拼接操作,將特征F1、F2、F3、F4、F5在通道維度上進(jìn)行拼接。本文一共融合了5個尺度的特征信息,通過兩層逐點(diǎn)卷積得到最后的分割結(jié)果Y2。
圖3 本文模型的編碼器-解碼器結(jié)構(gòu)
在金屬腐蝕圖像公共數(shù)據(jù)集上評估本文方法的性能,并且與當(dāng)前主流的語義分割算法進(jìn)行比較。
1)數(shù)據(jù)來源。本文所有實(shí)驗(yàn)均使用由弗吉尼亞理工學(xué)院暨州立大學(xué)制作的金屬腐蝕圖像數(shù)據(jù)集[17],該數(shù)據(jù)集根據(jù)美國國家公路和鐵路協(xié)會報告的腐蝕狀態(tài)指南進(jìn)行語義注釋。整個數(shù)據(jù)集被分為4類:無腐蝕、輕度腐蝕、中度腐蝕和重度腐蝕。通過數(shù)據(jù)增強(qiáng),如隨機(jī)裁剪、對比度增強(qiáng)和飽和度增強(qiáng),將圖像的數(shù)量從440張擴(kuò)充到3 850張。圖像的大小被調(diào)整為512×512。
2)實(shí)驗(yàn)設(shè)置。所有的實(shí)驗(yàn)代碼都是基于深度學(xué)習(xí)框架PyTorch 1.10.1進(jìn)行編程。本文模型和其他模型均在4塊型號為2080Ti的圖像處理單元(graphics processing unit,GPU)上進(jìn)行訓(xùn)練。網(wǎng)絡(luò)使用SGD優(yōu)化器進(jìn)行訓(xùn)練,初始學(xué)習(xí)率為0.007,通過余弦曲線的方法下降到0.000 07。損失函數(shù)由Dice損失和Focal損失兩部分構(gòu)成,如式(5)所示。
L=(1-αt)LDice+αtLFocal(pt)
(5)
式中:αt用于調(diào)節(jié)兩個損失之間的比率,本文設(shè)為0.5;Dice損失LDice用于計算集合之間的相似度,其表達(dá)式見式(6);Focal損失LFocal是一個改進(jìn)的交叉熵?fù)p失函數(shù),用于解決樣本不平衡問題,其表達(dá)式見式(7)。
(6)
其中:|A|和|B|分別為語義分割標(biāo)簽A和預(yù)測分割圖像B的像素數(shù);|A∩B|為A和B的交集像素數(shù)。
LFocal(pt)=(1-pt)γlog(pt)
(7)
其中:γ是引導(dǎo)算法關(guān)注困難樣本的調(diào)制因子,本文設(shè)為2;pt是4個類別的像素數(shù)占圖像總數(shù)量的比例。
3)評價指標(biāo)。本文采用如下5個指標(biāo)來評估模型性能,分別是平均交并比(mean intersection over union,mIoU)、平均像素準(zhǔn)確率(mean pixel accuracy,mPA)、平均召回率(mean recall,mRecall)、平均準(zhǔn)確率(mean precision,mPrecision)以及模型的參數(shù)量。我們期望模型具備更高的評價指標(biāo)值和更少的參數(shù)量。
采用上述5個評價指標(biāo)定量評估本文方法與其他主流語義分割網(wǎng)絡(luò)的性能,實(shí)驗(yàn)結(jié)果如表1所示。所有的算法均在相同的數(shù)據(jù)集和相同的實(shí)驗(yàn)條件下進(jìn)行訓(xùn)練。本文所提出模型的大小為19.57 MB,mIoU值為79.39%,在所有對比模型中性能最優(yōu),模型體量僅大于PSPNet[18]。EPSANet[19]采用金字塔分割注意力模塊提取多尺度特征,與本文方法的思想類似,最終mIoU為64.55%,但模型大小遠(yuǎn)超本文方法。除了RefineNet[20]在250個迭代輪次內(nèi)收斂,其他模型都能在150個迭代輪次內(nèi)收斂。通過觀察實(shí)驗(yàn)結(jié)果可以得出:基于MobileNetV2[21]的模型相比使用ResNet-50[14]的性能略差,但模型的參數(shù)量卻顯著減少,說明輕量級的模型相比傳統(tǒng)模型在金屬腐蝕圖像分割任務(wù)上更加高效;RefineNet的精度較低,表明多路徑的網(wǎng)絡(luò)不適用于金屬腐蝕圖像分割;DenseASPP[22]和Deeplabv3+[23]采用膨脹卷積,取得了較高的精度,但由于膨脹卷積的感受野不連續(xù),而腐蝕圖像往往是連續(xù)成片出現(xiàn),故最終會出現(xiàn)柵格狀的分割區(qū)域,進(jìn)而導(dǎo)致精度提升的空間有限;DenseASPP中密集連接的方式會過度引入冗余信息,導(dǎo)致精度下降;此外,這些語義分割模型沒有在所有階段同時融入上下文特征以及多尺度的特征信息,導(dǎo)致最后的分割精度遠(yuǎn)低于本文方法。本文模型和表1中其他語義分割模型的可視化結(jié)果如圖4所示,可見,本文方法更加準(zhǔn)確并且預(yù)測的腐蝕區(qū)域更靠近標(biāo)簽。
表1 本文模型與其他語義分割模型的比較
圖4 本文方法與其他語義分割方法腐蝕區(qū)域可視化結(jié)果
為了驗(yàn)證局部上下文感知模塊中的LCU和RFFU的有效性,分別移除RFFU和LCU后對模型進(jìn)行訓(xùn)練,最終的實(shí)驗(yàn)結(jié)果如表2所示??梢园l(fā)現(xiàn),當(dāng)去除RFFU或LCU后,模型性能均有所下降,表明這兩種主要的單元有助于提高金屬腐蝕圖像分割的精度。尤其是去除LCU后,分割精度大幅下降,這表明LCU有助于對上下文特征建模,大卷積核和小卷積核相結(jié)合的方式可以自適應(yīng)不同大小的腐蝕區(qū)域,殘差連接可以促進(jìn)信息流更快地向前傳播。
表2 消融實(shí)驗(yàn)結(jié)果
本文對金屬腐蝕檢測進(jìn)行了深入的分析與研究,提出了用于腐蝕圖像分割的輕量級深度殘差網(wǎng)絡(luò)。充分使用殘差結(jié)構(gòu)以緩解深度神經(jīng)網(wǎng)絡(luò)中梯度消失的問題,并引入了局部上下文特征以及多尺度的特征信息,以加強(qiáng)腐蝕圖像的特征表示能力,提高腐蝕區(qū)域分割的精度。同時,采用將卷積核分解為深度卷積和逐點(diǎn)卷積的形式進(jìn)一步降低模型的大小。實(shí)驗(yàn)結(jié)果顯示,在公共腐蝕圖像數(shù)據(jù)集,所提出的方法以較少的參數(shù)量取得了最高的精度。