汪晨曦,李立明,柴曉冬,鄭樹彬,童千倩
(上海工程技術(shù)大學(xué) 城市軌道交通學(xué)院,上海 201620)
處于服役狀態(tài)的鐵路軌枕在列車重力載荷的作用下,其穩(wěn)定性受到銹蝕、塌陷以及裂紋等的威脅,其中,軌枕裂紋是使軌道產(chǎn)生安全隱患的主要因素之一。傳統(tǒng)的基于圖像處理的裂紋檢測(cè)識(shí)別方法可分為邊緣檢測(cè)、閾值分割和區(qū)域生長(zhǎng)等,其中,江松等[1]使用方向梯度直方圖(HOG)以提取裂紋邊緣特征,但在檢測(cè)過程中易遺漏檢測(cè)單元而使得裂紋識(shí)別產(chǎn)生不完整的情況。OLIVEIRA等[2]提出了基于形態(tài)學(xué)特征的裂紋檢測(cè)算法,但該算法需要對(duì)裂紋邊緣特征進(jìn)行多個(gè)閾值選取,增大了時(shí)間與運(yùn)算成本的同時(shí)還易造成裂紋圖像的不完整。該類方法由于只能提取圖像較為底層的特征,因此無法進(jìn)一步獲取清晰的裂紋圖像。隨著深度學(xué)習(xí)在目標(biāo)檢測(cè)中的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(CNN)可分別從圖像底層特征和高層特征的角度,為裂紋特征提取提供更為全面的支持,其中,ZHAO等[3]通過對(duì)AlexNet模型的微調(diào),提出了一種基于CNN的裂紋檢測(cè)方法。FENG等[4]提出了一種基于深度殘差網(wǎng)絡(luò)的主動(dòng)學(xué)習(xí)系統(tǒng),解決了裂紋圖像及其標(biāo)簽難以獲取的問題。由此可見,怎樣通過CNN獲取圖像更多的顯著性特征依舊值得探索。針對(duì)裂紋檢測(cè)其邊界不夠清晰、區(qū)域信息不夠完善的問題,本文基于深度殘差網(wǎng)絡(luò)模型,結(jié)合編解碼形式的特征提取模塊與邊界精修模塊,對(duì)軌枕裂紋進(jìn)行顯著性檢測(cè),從而提高裂紋顯著圖的精度。
所提出的軌枕裂紋識(shí)別方法由2個(gè)模塊組成,如圖1所示。CEDNet通過融合裂紋圖像低層特征和高層特征的方式,獲取更多的顯著性特征;CRRNet通過融合網(wǎng)絡(luò)特征層的輸出,捕捉到裂紋粗顯著性圖中更豐富的顯著性信息以達(dá)到優(yōu)化目的。軌枕裂紋區(qū)域檢測(cè)部分則采用灰度投影法[5]與SSD網(wǎng)絡(luò)[6]進(jìn)行定位分割。
圖1 軌枕裂紋定位分割及識(shí)別方法流程Fig.1 Sleeper crack location segmentation and identification method flow
道床上的軌枕垂直于鋼軌且與周圍道砟存在一定的灰度差異,使得軌枕區(qū)域邊緣特征較為明顯,因此可使用灰度投影法對(duì)軌枕區(qū)域進(jìn)行提取。軌枕區(qū)域中,軌枕裂紋目標(biāo)較小,且相似于混凝土軌枕背景,使得裂紋檢測(cè)的精度受到影響。由于SSD網(wǎng)絡(luò)密集采樣的方式和金字塔式的多尺寸特征映射提取,對(duì)裂紋檢測(cè)具有較好效果,因此采用其從裂紋圖像特征的多尺度圖進(jìn)行回歸,從而預(yù)測(cè)得到軌枕裂紋區(qū)域。
SSD網(wǎng)絡(luò)首先對(duì)輸入的軌枕裂紋圖片進(jìn)行特征提取,如圖3所示,特征提取層中包含的有效特征 層 有:Conv4-3,Conv7,Conv8-2,Conv9-2,Conv10-2和Conv11-2。其次為先驗(yàn)框的設(shè)置,該有效特征層根據(jù)相應(yīng)圖片尺寸及步長(zhǎng)進(jìn)行區(qū)域劃分得到對(duì)應(yīng)的網(wǎng)格,同時(shí),在Conv4-3,Conv8_2和Conv9_2這3層上對(duì)每個(gè)網(wǎng)格使用4個(gè)不同大小的特征圖做預(yù)測(cè),其他特征提取層的先驗(yàn)框數(shù)量設(shè)為6,如圖2,先驗(yàn)框示意圖選自4個(gè)先驗(yàn)框時(shí)的特征提取層。
圖2 網(wǎng)格上的先驗(yàn)框Fig.2 Prior box on grid
最后,通過對(duì)不同特征層融合得到的先驗(yàn)框使用回歸預(yù)測(cè)、分類預(yù)測(cè)以及非極大值抑制,對(duì)先驗(yàn)框的位置和種類進(jìn)行調(diào)整,并去除一部分錯(cuò)誤或重疊的框圖以生成最終的檢測(cè)結(jié)果,如圖3所示。
圖3 SSD網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 SSD network structure
特征提取采用的骨干網(wǎng)絡(luò)為裂紋粗顯著性特征提取網(wǎng)絡(luò)CEDNet,是一種同時(shí)關(guān)注前景區(qū)域和前景邊界的編解碼網(wǎng)絡(luò),該網(wǎng)絡(luò)采用編解碼形式搭建而成,將裂紋圖像淺層信息傳遞至相應(yīng)的解碼過程中,使得高層復(fù)雜語義與低層細(xì)節(jié)特征得以融合來提高網(wǎng)絡(luò)特征提取性能,其結(jié)構(gòu)如圖4所示。
圖4 裂紋粗顯著性特征提取網(wǎng)絡(luò)Fig.4 Crack encoder decoder network
網(wǎng)絡(luò)具體結(jié)構(gòu)和運(yùn)行步驟如下:
1)編碼部分包括一個(gè)輸入卷積層和由基本殘差塊組成的6個(gè)階段,輸入卷積層和前4個(gè)卷積階段采用改進(jìn)的ResNet-34結(jié)構(gòu),其改進(jìn)主要包括使用3*3大小的卷積濾波器和步長(zhǎng)(stride)為1的卷積核。同時(shí),輸入卷積層后去掉池化操作使得第1階段的特征圖與輸入圖像具有相同的空間分辨率。而原始ResNet網(wǎng)絡(luò)中第1個(gè)特征圖只有輸入圖的1/4的分辨率,該處更改盡管減小了整體感受野,但使得網(wǎng)絡(luò)能夠在較早的層中獲得更高分辨率的特征映射。因此,為了能更大程度獲取原圖上的目標(biāo)檢測(cè)區(qū)域,達(dá)到和原ResNet一樣的感受野,在這里增加了2個(gè)由512個(gè)濾波器和3個(gè)基本殘差塊所組成的卷積階段Conv5和Conv6;
2)為進(jìn)一步獲取裂紋全局信息,采用了橋連接結(jié)構(gòu)。橋連接結(jié)構(gòu)包含的3個(gè)模塊皆由一個(gè)Conv層、一個(gè)BN層和一個(gè)ReLU激活函數(shù)所組成,其中每個(gè)卷積層又由512個(gè)3*3的空洞卷積構(gòu)成;
3)解碼部分每一級(jí)的輸入由上一級(jí)和編碼部分中相應(yīng)級(jí)的下采樣輸出級(jí)聯(lián)而成。每一層在使用雙線性上采樣之后添加了sigmoid函數(shù),最終在該模塊中會(huì)產(chǎn)生7個(gè)顯著性映射,包含了6個(gè)級(jí)聯(lián)后的特征映射與最終輸出的特征映射,且都被上采樣到與輸入圖像相同的大小,但只有具備最高精度的最后一個(gè)特征圖可被輸入到裂紋邊界精修網(wǎng)絡(luò)CRRNet中。同時(shí),為減少過度擬合,在每個(gè)解碼部分階段的最后一層加入真值圖的監(jiān)督。
軌枕裂紋經(jīng)目標(biāo)檢測(cè)網(wǎng)絡(luò)SSD的定位與裂紋粗顯著性特征提取網(wǎng)絡(luò)CEDNet的特征提取后,可得到預(yù)測(cè)的裂紋粗顯著性圖,如圖5所示,列舉了裂紋圖像及其經(jīng)過CEDNet后的粗顯著性圖與真值圖的對(duì)比。
圖5 裂紋粗顯著性Fig.5 Coarse saliency of crack
粗顯著性圖存在的缺陷包括裂紋邊界模糊及部分顯著區(qū)域的丟失、錯(cuò)誤地將背景標(biāo)記為目標(biāo)而未能準(zhǔn)確定位,故使得裂紋預(yù)測(cè)顯著性圖不完整。因此,將其輸入到帶有一維濾波器的CRRNet中以進(jìn)一步優(yōu)化。
該網(wǎng)絡(luò)通過捕捉粗顯著性圖中更高層次的顯著性信息,學(xué)習(xí)其殘差從而達(dá)到優(yōu)化效果,采用2個(gè)一維濾波器(即3*1和1*3的卷積層)來替代3*3的大小,在避免較大計(jì)算量的同時(shí)可提高網(wǎng)絡(luò)優(yōu)化性能。同時(shí),使用恒等映射分支的殘差模塊傳播方式,融合了堆疊輸出和該模塊粗特征圖的輸入。最后在sigmoid函數(shù)作用下,將達(dá)到最高精度的特征映射作為最終網(wǎng)絡(luò)輸出的顯著性圖,其結(jié)構(gòu)如圖6所示。
圖6 裂紋邊界精修網(wǎng)絡(luò)Fig.6 Crack residual refinement network
編碼部分包含的4個(gè)階段皆由2個(gè)一維濾波器和1個(gè)用于下采樣且能減少計(jì)算量的最大池化層組成,搭建的卷積層順序?yàn)?*1在前,1*3的卷積置后,且在前者后只添加一個(gè)ReLU層,而在后者卷積層之后放置一個(gè)BN層和一個(gè)ReLU層。該設(shè)計(jì)在網(wǎng)絡(luò)向更深層搭建時(shí),可使網(wǎng)絡(luò)性能不易退化,在一定程度上減輕了梯度彌散對(duì)網(wǎng)絡(luò)訓(xùn)練造成的影響,平衡了網(wǎng)絡(luò)優(yōu)化性能和計(jì)算效率。
解碼部分則是由用于上采樣以匹配特征維數(shù)的雙線性插值單元和2個(gè)與編碼部分相同的一維濾波器所構(gòu)成,一維濾波器的搭建順序與編碼部分相反。同樣由4個(gè)階段組成,該網(wǎng)絡(luò)編解碼模式體現(xiàn)在解碼部分中每個(gè)階段1*3的卷積與編碼部分相應(yīng)階段中3*1卷積的級(jí)聯(lián)。
橋連接部分包含一個(gè)Conv層、一個(gè)BN層和一個(gè)ReLU層,卷積大小為3*3。
本文的訓(xùn)練損失函數(shù)定義為所有顯著性特征映射輸出的總和:
其中:l(k)是第k個(gè)側(cè)邊輸出的損失,αk是每個(gè)損失的權(quán)重,k取8,表示存在8個(gè)監(jiān)督軌枕裂紋識(shí)別網(wǎng)絡(luò)的輸出,該輸出中的7個(gè)來自于CEDNet,其余來自CRRNet。同時(shí),為獲得局部信息完善且邊界清晰的高質(zhì)量目標(biāo)檢測(cè),使用了一種混合BCE,SSIM和IOU 3種損失的混合損失函數(shù)l(k):
選用1 900張采集到的有砟軌道軌枕裂紋圖片作為數(shù)據(jù)集,其類型分為軌枕表面有裂紋和無裂紋2種。將數(shù)據(jù)集劃分成訓(xùn)練集和測(cè)試集,其中1 200張軌枕圖片作為訓(xùn)練集,剩余700張作為測(cè)試集。
選用的評(píng)價(jià)參數(shù)包括F度量值(F-measure),F(xiàn)權(quán)重值(F-weighted)[10],平均絕對(duì)誤差(MAE)[11]和曲線下方面積AUC(Area Under the Curve)[12]。其中,F(xiàn)度量值是綜合性指標(biāo);F權(quán)重值中,P R值的權(quán)重為對(duì)不同樣本類別賦予的該類樣本在總樣本數(shù)中的占比,數(shù)值越大,網(wǎng)絡(luò)性能越強(qiáng);MAE用來度量檢測(cè)結(jié)果的誤差;AUC值表示網(wǎng)絡(luò)對(duì)裂紋與背景分類性能高低,越接近1,說明網(wǎng)絡(luò)分類效果越好。
該指標(biāo)具體計(jì)算公式如下:
P為精確率,R為召回率,λ2取0.3[10];ω-1,ω0和ω1分別為各個(gè)精確率的權(quán)重比值,同樣計(jì)算得出召回率后,由式(3)得到F權(quán)重值;W和H用來表示待處理軌枕裂紋圖像的長(zhǎng)度和寬度。
為驗(yàn)證所提出的混合損失函數(shù)l具有較好性能,本文對(duì)單個(gè)損失函數(shù)進(jìn)行實(shí)驗(yàn)后,再選取效果較好的lbce和liou進(jìn)行組合分析,如表1所示,可看出:只有同時(shí)使用3個(gè)損失函數(shù)時(shí),網(wǎng)絡(luò)性能才可達(dá)到最優(yōu)。對(duì)于Fweighted,本文的混合損失函數(shù)相較于lbce+liou,lbce,liou,lssim分別提升了68.4%,74.8%,84.1%和9.0%,且本文損失函數(shù)的MAE值為0.015,證明了本文算法對(duì)于裂紋檢測(cè)的誤差最小,準(zhǔn)確率最高的優(yōu)點(diǎn)。
表1 不同損失函數(shù)性能對(duì)比Table 1 Performance comparison of different loss functions
為驗(yàn)證SSD網(wǎng)絡(luò)對(duì)軌枕裂紋目標(biāo)定位效果高低,本文采用同為檢測(cè)主流框架之一的YOLOv3與之對(duì)比,如表2所示,軌枕區(qū)域分別輸入YOLOv3和SSD后可知:SSD較YOLOv3而言,裂紋精確度提升了11.2%,召回率提升了5%,MAP提升了4.6%,證明了采用的SSD對(duì)軌枕裂紋具有更優(yōu)越的檢測(cè)精度。
表2 YOLOv3和SSD300性能對(duì)比Table 2 Performance comparison between YOLOv3 and SSD300
與其他幾種網(wǎng)絡(luò)模型相比較,模型包括:BAS[13],R2Net[14],SOD100k[15],EDR[16],PFA[17],HED[18],POOLNet[19]。可以看出,本文算法在多種情境下,均對(duì)裂紋具有較好的檢測(cè)效果,包括低對(duì)比度(1st,4th,6th columns),目標(biāo)較小(4th,6th columns),背景復(fù)雜(2nd,3rd,5th,7th columns)等,如圖7所示。
圖7 (a)原圖;(b)真值圖;(c)本文算法;(d)SSD-CEDNet;(e)EDR;(f)POOLNet;(g)R2Net;(h)BAS;(i)SOD 100k;(j)HED;(k)PFAFig.7 (a)image;(b)GT;(c)Ours;(d)SSD-CEDNet;(e)EDR;(f)POOLNet;(g)R2Net;(h)BAS;(i)SOD 100k;(j)HED;(k)PFA
對(duì)網(wǎng)絡(luò)性能做出定量分析,見表3和圖8。對(duì)于AUC,本文算法相較于SSD-CEDNet,EDR,POOLNet,R2Net,BAS,SOD 100k,HED和PFA,分別提升了6.0%,0.2%,0.7%,3.8%,0.2%,15.5%,50.9%,10.4%。相比于其他網(wǎng)絡(luò),本文算法具有較好的顯著性預(yù)測(cè)性能。此外,Preccsion與recall組成的曲線越靠近右上角說明網(wǎng)絡(luò)分類效果越好;F曲線與水平軸所圍面積越大說明該網(wǎng)絡(luò)性能越強(qiáng)。同時(shí),經(jīng)與SSD-CEDNet框架的對(duì)比可知,本文邊界精修網(wǎng)絡(luò)CRRNet可改善裂紋檢測(cè)效果,提高檢測(cè)精度。
表3 各算法性能對(duì)比Table 3 Performance comparison of each algorithm
圖8 各算法性能對(duì)比Fig.8 Performance comparison diagram of each algorithm
1)利用SSD網(wǎng)絡(luò)對(duì)采集到的軌枕背景裂紋圖像進(jìn)行裂紋區(qū)域檢測(cè)與定位,較YOLOv3而言,其精確度提升了11.2%,召回率提升了5%,MAP提升了4.6%。
2)為提高軌枕裂紋檢測(cè)識(shí)別準(zhǔn)確率,采用一種編解碼模式的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,且在優(yōu)化部分采用了恒等映射分支的殘差模塊傳播方式,融合了堆疊輸出和該部分裂紋粗特征圖的輸入以完善裂紋顯著性圖。
3)經(jīng)實(shí)驗(yàn)驗(yàn)證,本文級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)結(jié)果的F權(quán)重值為0.831,平均絕對(duì)誤差為0.015 7,AUC值為0.945 3,對(duì)軌枕裂紋具有較好的檢測(cè)精度。