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