郭華平,毛海濤, 詹尚桂,孫艷歌,李 萌,張 莉
(信陽師范大學(xué) 計算機與信息技術(shù)學(xué)院, 河南 信陽 464000)
帶鋼是工業(yè)生產(chǎn)中一種不可或缺的原材料,在航空航天、船舶、汽車等制造領(lǐng)域有著廣泛的應(yīng)用。然而,在制造過程中受制造工藝和生產(chǎn)環(huán)境等復(fù)雜因素的影響,帶鋼表面可能會出現(xiàn)各種類型的缺陷,如劃痕、裂紋、斑塊等。這些缺陷不僅會對產(chǎn)品的外觀造成影響,還會影響其使用壽命。因此,帶鋼表面缺陷檢測是現(xiàn)代工業(yè)生產(chǎn)中極其重要的一步。由于傳統(tǒng)的人工檢測方式受視覺疲勞、注意力分散等因素的影響,很難達(dá)到現(xiàn)代工業(yè)生產(chǎn)中高效性和實時性的要求,所以建立帶鋼表面缺陷自動檢測系統(tǒng)對帶鋼質(zhì)量控制具有極其重要的意義。人類視覺系統(tǒng)具有有效的注意力機制,受人類視覺注意機制的啟發(fā),顯著性目標(biāo)檢測技術(shù)被用來快速檢測缺陷對象。顯著性目標(biāo)檢測可以快速捕捉圖像中最重要視覺信息,并過濾大量背景干擾,所以其作為一種快速的預(yù)處理操作被廣泛應(yīng)用于各種計算機視覺任務(wù),如圖像分割[1]、缺陷分類[2]、缺陷檢測[3]、目標(biāo)跟蹤[4]等。
目前,根據(jù)特征提取策略的不同,顯著性目標(biāo)檢測方法主要分為基于傳統(tǒng)模型的方法和基于深度學(xué)習(xí)的方法。前者先是手工制作視覺特征,然后根據(jù)先驗知識和假設(shè)開發(fā)各種模型,例如稀疏編碼、流形排序等。如BOLUKI等[5]提出了一種基于最優(yōu)Gabor濾波的紡織面料實時檢測自動算法。由于該算法對噪聲很敏感,只能適用于特定的情況。為了解決上述問題,基于深度學(xué)習(xí)的顯著性檢測方法被提了出來。在真實值的監(jiān)督下,深度學(xué)習(xí)方法可以自動學(xué)習(xí)豐富的圖像表示,顯著提高了缺陷檢測的性能。盡管基于深度學(xué)習(xí)的顯著性檢測方法已取得了矚目的結(jié)果,但它們在目標(biāo)完整性和邊界保留方面仍有一些不足。具體而言,現(xiàn)有基于深度學(xué)習(xí)的缺陷檢測方法在分割缺陷對象方面仍具有以下缺點:1)在檢測具有小目標(biāo)的圖像時,很難從緊湊的背景中分割出完整的缺陷對象;2)在處理雜亂背景或低對比度時,往往會引入背景噪聲,無法清晰地檢測出整個缺陷區(qū)域。
針對以上問題,本文提出了U型殘差編解碼網(wǎng)絡(luò)(U-Residual Encod-Decoder Network,UDRNet),具體如下:
(1)提出一種基于編解碼殘差網(wǎng)絡(luò)的顯著性檢測方法,該方法具有較小的模型規(guī)模且具有較高的檢測精度和魯棒性;
(2)在編碼器階段,利用全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Network,FCN)[6]的優(yōu)勢,提取豐富的多尺度特征;同時,引入輕量級注意力機制,使模型更加關(guān)注重要的缺陷區(qū)域;
(3)在解碼器階段,使用所提出的U型殘差解碼塊(U-shaped Residual Decoding Block,URB),以恢復(fù)在FCN的多個層中編碼的顯著性信息;同時,解碼網(wǎng)絡(luò)后添加了一個細(xì)化網(wǎng)絡(luò),以優(yōu)化顯著圖中缺陷對象的邊界細(xì)節(jié)。
為了使模型更好地定位缺陷區(qū)域,本文采用深度監(jiān)督機制,6個監(jiān)督信號分別被施加到解碼器網(wǎng)絡(luò)中的5個U型解碼塊和細(xì)化網(wǎng)絡(luò)上,用于監(jiān)督U型解碼塊和細(xì)化網(wǎng)絡(luò)的預(yù)測。
先詳細(xì)介紹UDRNet的3個子模塊,然后進(jìn)一步闡述融合損失對網(wǎng)絡(luò)輸出完整結(jié)構(gòu)和詳細(xì)邊界的重要性。
采用編碼器-解碼器結(jié)構(gòu)的顯著性檢測方法,這種網(wǎng)絡(luò)結(jié)構(gòu)可以有效地融合低層豐富的紋理信息和高層詳細(xì)的上下文語義信息,有助于精準(zhǔn)預(yù)測缺陷對象的位置。與以往的編解碼網(wǎng)絡(luò)不同,本文使用ResNet-34作為特征提取的主干,采用殘差網(wǎng)絡(luò)作為主干,一方面,其不是簡單地堆疊在一起,而是使用跳越連接;另一方面,殘差網(wǎng)絡(luò)實現(xiàn)較深層次的網(wǎng)絡(luò)時,受梯度消失影響小,并且具有較低復(fù)雜性。
編碼器部分具有1個輸入卷積層和4個殘差塊(conv2-3、conv3-4、conv4-6和conv5-3)。輸入卷積層和4個殘差塊都來自ResNet-34,不同之處在于,本文所提出模型輸入層通道數(shù)為64,卷積核大小為3×3、步長為1,而不是7×7、步長為2的卷積核。為了進(jìn)一步擴大感受野的大小,本文在輸入層之后添加了一個步長為2的最大池化操作。最后,每個卷積的輸出被送到BN層,隨后使用ReLU激活函數(shù)來增強非線性表示能力。
近年來,注意力機制因其可移植性和高效性而被廣泛用于各種計算機視覺任務(wù)中。因此,在ResNet-34[7]的每個殘差基本塊中嵌入了一個輕量級的卷積注意力機制模塊,表示為RM-i(i=1,2,3,4)。RM的詳細(xì)結(jié)構(gòu)如圖1所示。
圖1 RM的詳細(xì)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 1 Detailed network structure diagram of RM
為了進(jìn)一步捕捉全局信息,在編碼器跟解碼器之間添加一個空洞卷積模塊,它是由3個512通道(擴張率為2)且卷積核大小為3×3的卷積層組成。為了與原始ResNet-34保持相同的分辨率,第一個卷積層以2的步幅進(jìn)行下采樣。然后,這些卷積層中的每一層之后是BN和ReLU激活函數(shù)。
在顯著目標(biāo)檢測與其他分割任務(wù)中,局部和全局信息都非常重要。但現(xiàn)有的大部分卷積神經(jīng)網(wǎng)絡(luò),為了節(jié)省空間和提高計算效率,通常使用尺寸為1×1或者3×3的卷積核進(jìn)行特征提取如VGG[8]、DenseNet[9]等。受尺寸限制,卷積核感受野較小,淺層的輸出特征僅包含局部特征。為了獲得更多的全局信息,最直接的方法是擴大感受野。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)是對圖像先做卷積再進(jìn)行池化操作,降低圖像尺寸的同時增大感受野。但是由于圖像分割預(yù)測的輸出是逐像素的,所以只有將池化后的圖像上采樣到原始的圖像尺寸再進(jìn)行預(yù)測,才能使得每個像素都能看到較大感受野信息。
因此使用FCN圖像分割中有兩個關(guān)鍵點:一個是池化操作減小圖像尺寸的同時增大感受野;另一個是上采樣擴大圖像尺寸。然而在尺寸變化的過程中,會造成一些空間信息的丟失??斩淳矸e的提出解決了上述問題??斩淳矸e的引入能擴大感受野和捕獲多尺度上下文信息。另外空洞卷積還可以通過調(diào)整擴張率,從而獲得不同的感受野。
綜上所述,為了捕獲多尺度特征,提出了一個U型的殘差解碼網(wǎng)絡(luò)URB。URB-L(Cin,M,Cout)的結(jié)構(gòu)如圖2所示,其中L是解碼器中的層數(shù),Cin、Cout表示輸入和輸出信道,M表示URB內(nèi)部層中的信道數(shù)。
圖2 URB的整體結(jié)構(gòu)Fig. 2 Overall structure of URB
URB主要由3部分組成:
(1)先是一個輸入卷積層,把輸入Cin通道的圖像x轉(zhuǎn)換為Cout通道的中間映射F1(x),這層是用來提取局部特征。
(2)高度為L的U型對稱編解碼結(jié)構(gòu),以中間特征映射F1(x)為輸入,學(xué)習(xí)提取和編碼多尺度上下文信息U(F1(x))。L越大,意味著URB就需要更多的池化、更大的感受野和更豐富的局部和全局特征。通過調(diào)整此參數(shù),可以從任意空間分辨率的輸入特征映射中提取多尺度特征。該方法先從下采樣的特征映射中提取多尺度特征,然后通過逐步上采樣、連接和卷積將其編碼成高分辨率特征映射。這個過程減輕了大尺度直接上采樣造成的細(xì)節(jié)損失。
(3)受ResNet的啟發(fā),一個跳越連接通過相加的方式融合局部特征和多尺度特征F1(x)+U(F1(x))。
殘差塊中的運算可以總結(jié)為
H(x)=F1(x)+U(F1(x)),
式中:H(x)表示輸入特征x的期望映射,F1代表權(quán)重層。URB與殘差塊的主要區(qū)別在于URB將平面的卷積替換為U型結(jié)構(gòu),并用權(quán)重層轉(zhuǎn)換的局部特征替換原特征。這種結(jié)構(gòu)設(shè)計使得網(wǎng)絡(luò)能夠直接從每個殘差塊中提取多個尺度的特征。更重要的是,因為大多數(shù)操作都應(yīng)用在下采樣特征映射上,所以U結(jié)構(gòu)的計算開銷很小。
在訓(xùn)練過程中,采用深度監(jiān)督機制,以利于有用信息向缺陷對象區(qū)域傳播。但輸出顯著圖仍有部分細(xì)節(jié)丟失,因此本文提出了一個具有1D濾波器的殘差細(xì)化結(jié)構(gòu)(RRS_1D),如圖3所示該結(jié)構(gòu)遵循編碼器-解碼器風(fēng)格。
圖3 UDRNet網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 3 Network structure diagram of UDRNet
細(xì)化模塊的編碼器和解碼器都由4個級組成,每級由兩個卷積層組成,后面是一個最大池化或雙線性上采樣單元。而橋接部分是具有64通道且卷積核大小為3×3的卷積層,隨后是BN和ReLU激活函數(shù)。為了實現(xiàn)更深的網(wǎng)絡(luò)層數(shù),使用最大池化操作進(jìn)行下采樣。用于上采樣的雙線性插值的引入,是為了更好地匹配特征尺寸。另外,為了避免占據(jù)大部分計算復(fù)雜度的卷積,采用了兩個專門的1D濾波器(即3×1和1×3卷積),有效地平衡了細(xì)化性能和計算效率。最后將Sigmoid映射后的細(xì)化圖作為UDRNet的最終顯著圖。
由于顯著對象檢測本質(zhì)上也可以看作是一個密集二分類問題,因此它的輸出是每個像素成為前景對象的概率分?jǐn)?shù),所以大多數(shù)以前的方法總是使用交叉熵作為訓(xùn)練損失。然而,這種簡單的策略使網(wǎng)絡(luò)很難捕捉顯著對象的全局信息,從而產(chǎn)生了模糊的邊界或不完整的檢測結(jié)果。為了在邊界定位和結(jié)構(gòu)捕捉方面學(xué)習(xí)更詳細(xì)的信息,在QIN等[10]工作的影響下,構(gòu)造了一個融合損失來監(jiān)督網(wǎng)絡(luò)的訓(xùn)練過程。融合損失分別由BCE(Binary Cross Entropy)、IOU(Intersection Over Union)和SSIM(Structural Similarity Index)3種損失組成。因此UDRNet的總損失被定義為:
(1)
為了驗證所提出的模型的有效性,在一個具有挑戰(zhàn)性的公共帶鋼基準(zhǔn)數(shù)據(jù)集SD-saliency-90[11]上進(jìn)行了各種實驗。該數(shù)據(jù)集總共包含900幅帶有3種缺陷類型(夾雜物、斑塊和劃痕)的裁剪圖像,每幅圖像的分辨率為200×200像素。除此之外,SD-saliency-900也有SONG等[11]貢獻(xiàn)的像素級注釋。
使用幾個普遍認(rèn)可的評價指標(biāo),評估了各種顯著目標(biāo)檢測方法,包括MAE(mean absolute error)、WF(weightedF-measure)、SM(structure-measure)等。
MAE被用來測量預(yù)測的顯著性圖與真實值之間的差異,定義為
(2)
式中:N為測試圖像的個數(shù),ygt為真實圖像,ypred為預(yù)測圖像。
WF是F-measure的加權(quán)版本,用于克服插值缺陷、依賴性缺陷和同等重要性缺陷可能導(dǎo)致的不公平比較。定義為:
(3)
式中:Precison為準(zhǔn)確率,Recall為召回率,w為權(quán)重系數(shù),β為平衡系數(shù)(設(shè)置為1)。
SM用于評估預(yù)測的非二值顯著性圖和真值的結(jié)構(gòu)相似性,定義為:
SM=αso+(1-α)sr,
(4)
式中:so為對象感知相似性,sr為區(qū)域感知相似性,α為平衡因子(通常設(shè)置為0.5)。
PFOM用于評估圖像分割的邊界質(zhì)量,定義為:
(5)
式中:Ne和Nd分別是理想邊緣點和真實邊緣點的數(shù)量,dk是第k個理想邊緣點與檢測的邊緣點之間的像素誤差距離,β是縮放系數(shù)(實驗中設(shè)置β=1/9)。
使用NVIDIA TITAN Xp 圖形處理器加速實現(xiàn)了基于Pytorch框架的模型。為了訓(xùn)練并比較其他深度模型,構(gòu)建了一個標(biāo)準(zhǔn)的包含810個圖像的訓(xùn)練集。該訓(xùn)練集隨機從SD-saliency900數(shù)據(jù)集中選擇的540幅原圖像(每種缺陷類型180幅圖像)和受噪聲(ρ=20%)干擾的270幅圖像(每種缺陷類型90幅圖像)組成。這些噪聲圖像的原圖像是從之前的540幅圖像中隨機采集的,有助于增強網(wǎng)絡(luò)的魯棒性。
在訓(xùn)練過程中,首先將每個圖像I的大小調(diào)整為256×256,并隨機裁剪為224×224,然后通過(1-μ)/σ進(jìn)行歸一化。均值μ和標(biāo)準(zhǔn)差σ分別設(shè)為0.466 9和0.243 7。此外,不使用任何驗證集,而是訓(xùn)練模型直到訓(xùn)練損失收斂。訓(xùn)練時,采用初始化策略來初始化特征,網(wǎng)絡(luò)的參數(shù)不是使用預(yù)先訓(xùn)練好的ResNet-34模型,而是通過初始化提取。其他層的參數(shù)通過使用Pytorch的默認(rèn)設(shè)置來初始化。整個網(wǎng)絡(luò)以端到端的方式進(jìn)行訓(xùn)練。利用RMSprop優(yōu)化器來訓(xùn)練所提出的網(wǎng)絡(luò),其超參數(shù)設(shè)置如下:學(xué)習(xí)率為(1e-3),而其他參數(shù)固定為默認(rèn)值。訓(xùn)練過程大約需要7 h,在大約50 K次迭代后收斂,批量為8。測試時,將每幅圖像簡單地調(diào)整到256×256,并反饋到網(wǎng)絡(luò)以獲得其顯著圖。
為了驗證所提出的UDRNet模型中使用的每個關(guān)鍵組件的有效性,進(jìn)行了消融實驗。該消融研究包括結(jié)構(gòu)分析和損失分析。所有的實驗都是在SD-saliency-900數(shù)據(jù)集上進(jìn)行的。
(1)結(jié)構(gòu)分析
為了證明所提出網(wǎng)絡(luò)模型中關(guān)鍵組件的有效性,使用MAE、WF和SM指標(biāo)對模型進(jìn)行了相關(guān)結(jié)構(gòu)的定量評估。如表1所示,每次增加一個關(guān)鍵組件,模型的性能也會相應(yīng)提高,所以包含組件CBAM、URB和RRS_1D的模型實現(xiàn)了最佳性能。其中“*”表示去除相關(guān)子模塊,例如UDRNet-URB*表示不包含子模塊URB的UDRNet模型。與基準(zhǔn)模型相比,UDRNet在MAE上實現(xiàn)了26%的大幅降低,在WF和SM指標(biāo)上分別貢獻(xiàn)了3.0%和1.4%的收益。客觀地證明了所提出的模型中的所有關(guān)鍵組件對于獲得最佳的缺陷對象檢測結(jié)果都是有用和必要的。
表1 結(jié)構(gòu)分析Tab. 1 Structural Analysis
(2)損失分析
為了驗證所構(gòu)建的融合損耗的合理性,對UDRNet結(jié)構(gòu)進(jìn)行了一組不同損失的實驗。如表2最后一行所示,配備融合損失Lall的UDRNet實現(xiàn)了優(yōu)越的性能。與采用廣泛使用的交叉熵?fù)p失Lbce的對應(yīng)方法相比,WF和SM分別增長了2.50%和0.56%,而MAE則下降了14.00%。結(jié)果發(fā)現(xiàn),使用Lall可以很好地保留缺陷對象的邊界,并有效地抑制背景噪聲的干擾。因此,這些結(jié)果說明融合損失能讓本文提出的模型在邊界定位中學(xué)習(xí)更詳細(xì)和準(zhǔn)確的信息。
表2 損失分析Tab. 2 Loss analysis
將提出的UDRNet模型與基于傳統(tǒng)模型或深度學(xué)習(xí)的8種最新的顯著性檢測方法進(jìn)行了比較,包括RCRR[12]、2LSG[13]、BC、SMD、PoolNet[14]、PiCANet[15]、CPD[16]和BASNet[10],如表3。為了公平比較,使用默認(rèn)參數(shù)運行作者發(fā)布的源代碼或可執(zhí)行文件。值得注意的是,所有比較的深度學(xué)習(xí)模型都在所提出的標(biāo)準(zhǔn)訓(xùn)練集上重新訓(xùn)練。
表3 運行速率比較Tab. 3 Running rate comparison
為了定量評估分割缺陷對象的質(zhì)量,設(shè)置ρ=10%,表4中展示了所提出模型相對于8種最先進(jìn)方法的性能。從表4可以看出,與現(xiàn)有的CPD[16]方法相比,在WF、SM和PFOM度量上分別實現(xiàn)了12.6%、8.6%和3.1%的提升。此外,與BASNet方法相比,所提出的模型在MAE上也實現(xiàn)了14.5%的大幅降低。而對于邊界質(zhì)量,UDRNet在PFOM度量方面比BASNet方法提高了1.9%。事實證明,所提出的模型性能更好。
表4 與8種最新模型的性能比較Tab. 4 Performance comparison with eight state-of-the-art models
在NVIDIA TITAN Xp的GPU上對比了8種顯著性檢測方法在SD-saliency-900數(shù)據(jù)集上平均運行時間和模型大小。對于一幅200×200的測試圖像,本文方法在不進(jìn)行任何其他的后處理情況下,只需要0.035 s就可以產(chǎn)生最終的顯著圖,除了PoolNet,比其他大多數(shù)競爭方法都快得多。雖然BASNet和本文的模型一樣都獲得了出色的檢測結(jié)果,但BASNet的模型規(guī)模最大。相比之下,所提出的UDRNet尺寸還不到它的1/2。上述結(jié)果表明,UDRNet能夠更好地滿足當(dāng)前工業(yè)缺陷檢測的要求,但仍有不足,對于未來的工作仍有進(jìn)一步提高其效率的空間。
提出了一種新的端到端的編解碼殘差網(wǎng)絡(luò)UDRNet來有效地檢測帶鋼表面缺陷。通過結(jié)合深度監(jiān)督和融合損失的方式,使模型能夠捕捉更精細(xì)的細(xì)節(jié),并且更容易優(yōu)化。大量的實驗表明,該模型在生成邊界清晰的缺陷對象的同時,能有效地濾除背景噪聲,最終生成幾乎接近真實值的顯著圖。與其他8種最新的方法相比,UDRNet模型在4個評價指標(biāo)上取得了最好的性能,并且具有很強的魯棒性。此外,UDRNet不需要任何后處理,并且在單個GPU上以實時速度運行。