王寧 柴雪松 暴學(xué)志 李健超 馬學(xué)志 田德柱
1.中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司鐵道建筑研究所,北京 100081;2.中鐵科學(xué)技術(shù)開發(fā)有限公司,北京 100081
隨著高速鐵路運(yùn)營(yíng)時(shí)間增長(zhǎng),部分無砟道床出現(xiàn)了裂縫、離縫、掉塊等表觀傷損,嚴(yán)重影響軌道結(jié)構(gòu)穩(wěn)定性和耐久性。目前無砟軌道表觀傷損的檢測(cè)主要依靠人工巡檢,受鐵路檢修天窗限制,夜晚光照不良,工作效率低,漏檢較多,難以做到全面、有效檢查。
隨著圖像采集、人工智能等技術(shù)的發(fā)展,圖像技術(shù)逐漸應(yīng)用于鐵路基礎(chǔ)設(shè)施智能檢測(cè)的研究,涵蓋軌道、橋梁、隧道等工程領(lǐng)域,例如隧道襯砌表觀病害智能檢測(cè)系統(tǒng)、車載智能軌道巡檢系統(tǒng)、高速車載式軌道圖像巡視系統(tǒng)等。但在無砟道床表觀裂縫、掉塊等表觀傷損的自動(dòng)識(shí)別方面還缺乏有效手段。在我國(guó)鐵路運(yùn)維的智能化發(fā)展趨勢(shì)下,迫切需要研制面向鐵路無砟道床表觀傷損的智能檢測(cè)識(shí)別系統(tǒng),提高鐵路無砟道床巡檢的自動(dòng)化、智能化水平。
在語義分割和卷積神經(jīng)網(wǎng)絡(luò)中有許多優(yōu)秀的網(wǎng)絡(luò)應(yīng)用在混凝土裂縫的識(shí)別上[1-6]。Cha等[7]利用Region-CNN模型對(duì)裂縫、銹病等多種混凝土傷損進(jìn)行檢測(cè),但由于不能得到裂縫的幾何邊緣,只能用于裂縫的粗檢測(cè),無法定量描述裂縫表面幾何尺寸。李良福等[8]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的DBCC(Deep Bridge Crack Classify)分類模型,用于橋梁背景面元和橋梁裂縫面元的識(shí)別。瞿中等[9]提出基于融合特征圖的全U型網(wǎng)絡(luò)的裂縫檢測(cè)算法,精確率比于U-net提升了1.48%。王紀(jì)武等[10]提出了基于改進(jìn)Faster RCNN+ZF模型的鐵路橋梁裂縫自動(dòng)分類方法,在Faster R-CNN網(wǎng)絡(luò)模型前添加一層Prewitt算子銳化卷積層,以提升模型特征提取能力。盧佳祁等[11]提出基于遞進(jìn)式級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的方法對(duì)混凝土表面裂縫進(jìn)行識(shí)別,先采用全卷積神經(jīng)網(wǎng)絡(luò)提取出含有裂縫的窗口區(qū)塊作為感興趣區(qū)域,再使用輕量化的U-Net圖像分割網(wǎng)絡(luò)作用于感興趣區(qū)域,實(shí)現(xiàn)裂縫區(qū)域的精確提取。
既有研究已經(jīng)提出了不同的裂縫檢測(cè)技術(shù)和算法,但針對(duì)無砟道床表觀傷損的檢測(cè)精度和計(jì)算效率尚待驗(yàn)證。在我國(guó)鐵路智能化運(yùn)維發(fā)展大趨勢(shì)下,迫切需要研究可以進(jìn)行全周期全覆蓋檢測(cè)的無砟道床表觀傷損智能檢測(cè)識(shí)別系統(tǒng),實(shí)現(xiàn)無砟軌道表面裂縫、缺損以及離縫傷損的精細(xì)化識(shí)別,滿足周期性巡檢以及Q/CR 803—2020《高速鐵路無砟道床傷損評(píng)定》中0.1 mm的精度要求,提高鐵路無砟道床巡檢的自動(dòng)化、智能化水平。
無砟道床表觀傷損識(shí)別的技術(shù)難點(diǎn)包括:①存在細(xì)長(zhǎng)形和面積形傷損,形態(tài)差異大;②存在0.1 mm和100 cm傷損,尺度差異大;③圖片上絕大部分是背景,裂縫圖像占比小,屬于細(xì)小目標(biāo)特征識(shí)別;④背景復(fù)雜,存在陰影、水漬和污漬的干擾;⑤需要識(shí)別尺寸為30 000×17 000以上的不定長(zhǎng)圖片,單張圖像數(shù)據(jù)量超過30 M,對(duì)內(nèi)存和識(shí)別速度影響非常大。
在圖像識(shí)別算法方面,主要研究方法包括傳統(tǒng)的圖像處理、機(jī)器學(xué)習(xí)以及深度學(xué)習(xí)技術(shù)。傳統(tǒng)圖像處理和機(jī)器學(xué)習(xí)依賴人工設(shè)計(jì)特征,表達(dá)能力較弱;需要復(fù)雜的人工調(diào)參過程;場(chǎng)景定制性強(qiáng),模型泛化性較差,難以對(duì)應(yīng)實(shí)際場(chǎng)景中的復(fù)雜情況。深度學(xué)習(xí)技術(shù)可以在大量數(shù)據(jù)的訓(xùn)練中自動(dòng)提取最適合的特征,圖像識(shí)別能力遠(yuǎn)超人類肉眼,但是離不開大規(guī)模的標(biāo)注數(shù)據(jù)集。采用基于深度學(xué)習(xí)的像素級(jí)語義分割算法可以獲取形態(tài)、長(zhǎng)度和位置,符合裂縫目標(biāo)小、識(shí)別要求更精細(xì)的特點(diǎn)。
無砟道床表觀傷損智能識(shí)別算法流程如圖1所示,包括訓(xùn)練和預(yù)測(cè)兩部分。
圖1 傷損智能識(shí)別算法流程
訓(xùn)練流程:首先建立樣本庫,使用標(biāo)注工具對(duì)每張圖像進(jìn)行像素級(jí)語義分割標(biāo)注,建立傷損特征分布均衡且滿足一定規(guī)模的傷損樣本數(shù)據(jù)集,按一定比例分為訓(xùn)練集和驗(yàn)證集;然后構(gòu)建基于編碼-解碼架構(gòu)的深度神經(jīng)網(wǎng)絡(luò)傷損分割模型,將訓(xùn)練集的圖片輸入到分割模型的編碼網(wǎng)絡(luò)提取特征,再輸入到解碼網(wǎng)絡(luò)中將提取的特征生成對(duì)象分割結(jié)果,持續(xù)進(jìn)行模型訓(xùn)練;最后通過驗(yàn)證集對(duì)模型識(shí)別能力進(jìn)行評(píng)估,找到最優(yōu)的模型參數(shù)。
預(yù)測(cè)流程:首先采用圖像拼接重構(gòu)獲取拼接大圖,對(duì)圖像進(jìn)行預(yù)處理;再通過最優(yōu)模型對(duì)現(xiàn)場(chǎng)圖片進(jìn)行快速檢測(cè),識(shí)別裂縫、離縫、掉塊等傷損的像素級(jí)類別和位置;然后將識(shí)別結(jié)果輸入到后處理模塊進(jìn)行刪減、合并,優(yōu)化識(shí)別結(jié)果;最后依據(jù)之前建立的圖像尺度提取傷損幾何尺寸信息,實(shí)現(xiàn)對(duì)無砟道床表觀傷損的自動(dòng)化檢測(cè)、傷損趨勢(shì)分析和狀態(tài)評(píng)定。
通過樣本收集,目前樣本庫中裂縫、離縫、掉塊的樣本數(shù)量共約6 000個(gè),圖片尺寸為1 024×1 024。對(duì)樣本庫進(jìn)行標(biāo)注,包括兩種形式。
1)利用標(biāo)注工具label-image-PRIV對(duì)每張圖像進(jìn)行像素級(jí)語義分割標(biāo)注,使用不同顏色標(biāo)注傷損數(shù)據(jù),構(gòu)造傷損樣本庫,如圖2所示。
圖2 傷損樣本標(biāo)注示例
2)由于裂縫、離縫、掉塊的顏色信息非必要特征,因此圖像均轉(zhuǎn)換為單通道灰度圖像。背景的像素值設(shè)置為0,裂縫、掉塊、離縫的像素值分別為1、2、3,這樣可以提高神經(jīng)網(wǎng)絡(luò)運(yùn)算速度。為了進(jìn)一步增加樣本和顯化傷損,經(jīng)過旋轉(zhuǎn)、翻轉(zhuǎn)、直方圖均衡化、Gamma變換等方法進(jìn)行數(shù)據(jù)增強(qiáng)。
將樣本庫分為訓(xùn)練集、驗(yàn)證集及測(cè)試集,其中訓(xùn)練集與驗(yàn)證集的比例為4∶1。訓(xùn)練集用于訓(xùn)練、優(yōu)化模型;驗(yàn)證集用于驗(yàn)證訓(xùn)練好的模型的性能,選擇最優(yōu)參數(shù);測(cè)試集可以測(cè)試模型的各項(xiàng)指標(biāo)。最終窗口圖像訓(xùn)練集6 000張,驗(yàn)證集1 000張,測(cè)試集2 000張。由于圖像中背景區(qū)域面積大于傷損區(qū)域面積,設(shè)置正負(fù)樣本比例為1∶3。
常 用 的 語 義 分 割 網(wǎng) 絡(luò) 有FCN、UNet、SegNet、DeepLab以及PSPNet??紤]到裂縫特征、掉塊特征屬于不同尺寸的特征,采用PPM結(jié)構(gòu)作為分割網(wǎng)絡(luò)的預(yù)測(cè)分支,融合4種不同金字塔尺度的特征,其中PSPNet是由ResNet101和空間金字塔池化模塊組成的網(wǎng)絡(luò),可識(shí)別不同尺度的目標(biāo)。由于ResNet101參數(shù)量較多,會(huì)導(dǎo)致訓(xùn)練速度、推理速度變慢,且對(duì)于裂縫特征,深層網(wǎng)絡(luò)容易導(dǎo)致模型過擬合,因此對(duì)PSPNet網(wǎng)絡(luò)進(jìn)行修改,采用ResNet18作為分割網(wǎng)絡(luò)的特征提取網(wǎng)絡(luò)(主干網(wǎng)絡(luò)),通過選取合適的編碼和解碼結(jié)構(gòu),最終的分割網(wǎng)絡(luò)可以生成精確的分割圖。整體結(jié)構(gòu)如圖3所示,其中CNN為卷積網(wǎng)絡(luò),POOL為池化層,CONV為卷積層,CONCAT為拼接合并層。
編碼網(wǎng)絡(luò)結(jié)構(gòu)是圖像特征提取器,將輸入圖像轉(zhuǎn)換為由多維特征表示。編碼網(wǎng)絡(luò)主要從圖像分類網(wǎng)絡(luò)中提取出來,只需經(jīng)過簡(jiǎn)單改動(dòng)就可作為分割網(wǎng)絡(luò)的編碼網(wǎng)絡(luò)。
ResNet網(wǎng)絡(luò)殘差結(jié)構(gòu)的輸入?yún)?shù)x經(jīng)過了兩條支路。一條是普通的卷積網(wǎng)絡(luò)層,用來學(xué)習(xí)輸入的特征表達(dá);另一條是捷徑,直接將輸入x跳過卷積網(wǎng)絡(luò)層,即恒等映射。假設(shè)所需的映射輸出為H(x),在一個(gè)殘差結(jié)構(gòu)里堆疊的卷積網(wǎng)絡(luò)層來擬合另一個(gè)映射F(x)=H(x)-x,則原來的映射H(x)轉(zhuǎn)化為H(x)=F(x)+x。這一轉(zhuǎn)化可以通過前饋神經(jīng)網(wǎng)絡(luò)的shortcut連接來實(shí)現(xiàn)。
Shortcut連接就是跳過一個(gè)或者多個(gè)層簡(jiǎn)單地執(zhí)行恒等映射,再將其輸出與堆疊的卷積網(wǎng)絡(luò)層的輸出疊加。恒等的shortcut連接并不增加參數(shù)和計(jì)算復(fù)雜度。更重要的是,由于shortcut連接的存在,網(wǎng)絡(luò)層數(shù)在變得很深時(shí),梯度在從最后一層往前傳時(shí)不會(huì)變得極小甚至為0,使得網(wǎng)絡(luò)可以收斂。
表1為ResNet18網(wǎng)絡(luò)的詳細(xì)結(jié)構(gòu),共4個(gè)殘差模塊,每個(gè)模塊之間都進(jìn)行一次下采樣操作,即特征圖的輸出尺寸降低50%,同時(shí)輸出特征圖維度增加1倍。表中3×3、7×7是卷積核的大小,64、128、256、512是特征圖的維度,stride2是下采樣的步長(zhǎng)。
表1 ResNet18網(wǎng)絡(luò)結(jié)構(gòu)
為了減少網(wǎng)絡(luò)的參數(shù),基于特征圖范數(shù)的裁剪準(zhǔn)則,提出了對(duì)ResNet18網(wǎng)絡(luò)冗余卷積核剪枝的壓縮算法。
首先,基于采集的無砟道床圖像提取ResNet18網(wǎng)絡(luò)模型中的每個(gè)卷積層的特征圖矩陣。編碼網(wǎng)絡(luò)提取的特征圖如圖4所示。
圖4 編碼網(wǎng)絡(luò)提取的特征圖
然后進(jìn)行算法修改,步驟如下。
1)計(jì)算ResNet18網(wǎng)絡(luò)模型中各層卷積核的特征圖L1范數(shù)均值。
2)基于特征圖L1范數(shù)均值的大小對(duì)卷積核進(jìn)行排序,剪去L1小于預(yù)設(shè)值的冗余卷積核,記錄被剪去的卷積核的原始位置,提取該卷積核在網(wǎng)絡(luò)中的層級(jí)權(quán)值。
3)剔除該卷積核原始位置對(duì)應(yīng)的參數(shù)連接值,同時(shí)對(duì)該卷積核的輸入通道進(jìn)行剪裁,組成新的參數(shù)連接,完成對(duì)ResNet18網(wǎng)絡(luò)模型的冗余卷積核的裁剪。
此外,刪掉了ResNet模型的全連接層,且最后兩個(gè)殘差模塊不進(jìn)行下采樣,改為空洞卷積,保留圖像的分辨率同時(shí)增加感受野。
對(duì)裁剪后的網(wǎng)絡(luò)模型中的權(quán)值進(jìn)行微調(diào)訓(xùn)練,通過反復(fù)訓(xùn)練、驗(yàn)證、調(diào)參以及優(yōu)化后,得到一個(gè)性能最優(yōu)的分割模型;將預(yù)處理后的圖像輸入到訓(xùn)練好的分割模型中,通過像素級(jí)的分割獲得待識(shí)別區(qū)域的識(shí)別結(jié)果。
解碼網(wǎng)絡(luò)結(jié)構(gòu)是編碼網(wǎng)絡(luò)結(jié)構(gòu)的鏡像版本,主要有FCN、ASPP、PPM等等。解碼網(wǎng)絡(luò)結(jié)構(gòu)是一個(gè)形狀生成器,可以從卷積神經(jīng)網(wǎng)絡(luò)中提取特征生成對(duì)象分割結(jié)果,網(wǎng)絡(luò)的最終輸出是與輸入圖像大小相同的概率圖像。在解碼階段,最重要的操作是向上采樣,通過跟蹤原始位置并強(qiáng)激活回到圖像空間來捕獲對(duì)象的特有結(jié)構(gòu)。因此,可以有效地以更高的分辨率重建對(duì)象的詳細(xì)結(jié)構(gòu)。
由于傷損中的裂縫、離縫、掉塊的尺度相差較大,故采用金字塔池化模塊PPM網(wǎng)絡(luò)(Pyramid Pooling Module)作為解碼網(wǎng)絡(luò),處理不同尺度的池化特征。通過4個(gè)平行的卷積層支路來融合4個(gè)不同金字塔尺度的特征。這4個(gè)支路分別由1×1、2×2、3×3和6×6大小卷積核組成,在原始特征圖上使用不同尺度的池化,得到多個(gè)不同尺寸的池化特征圖,再通過雙線性插值獲得未池化前的大小,在通道維度上拼接這些特征圖(含原始特征圖),最終輸出一個(gè)糅合了多種尺度的復(fù)合特征圖,作為最終的金字塔池化全局特征,從而達(dá)到兼顧全局語義信息與局部細(xì)節(jié)信息的目的。
準(zhǔn)確率是指在一定試驗(yàn)條件下的多個(gè)測(cè)定值中滿足限定條件的測(cè)定值所占的比例。評(píng)測(cè)深度學(xué)習(xí)模型的識(shí)別效果時(shí),采用識(shí)別準(zhǔn)確率指標(biāo)衡量,通常準(zhǔn)確率越高,分類器越好,計(jì)算式為
將樣本分為四種:TP(被模型預(yù)測(cè)為正的正樣本,真正)、TN(被模型預(yù)測(cè)為負(fù)的負(fù)樣本,真負(fù))、FP(被模型預(yù)測(cè)為正的負(fù)樣本,假正);FN(被模型預(yù)測(cè)為負(fù)的正樣本,假負(fù))。其中第一個(gè)字母表示本次預(yù)測(cè)的正確性,T代表正確,F(xiàn)代表錯(cuò)誤;第二個(gè)字母表示由分類器預(yù)測(cè)的類別,P代表預(yù)測(cè)為正例,N代表預(yù)測(cè)為反例。四種樣本的數(shù)量分別為STP、SFN、SFP、STN。顯然,這4個(gè)值的和即樣本總數(shù)。
查準(zhǔn)率(Precision,又稱精確率)是指在所有系統(tǒng)判定為真的樣本中確實(shí)是真的樣本的占比。查全率(Recall,又稱召回率)是指在所有確實(shí)為真的樣本中被判為真的占比。查準(zhǔn)率P和查全率R的表達(dá)式為
為了測(cè)試模型的識(shí)別準(zhǔn)確率,利用2080ti的GPU平臺(tái),在Pytorch深度卷積網(wǎng)絡(luò)框架下進(jìn)行識(shí)別試驗(yàn)。
從京津城際鐵路、京廣鐵路、石太鐵路三條線路現(xiàn)場(chǎng)采集的無砟道床圖像中抽取2 000個(gè)樣本,包括有典型表觀傷損的正樣本1 500個(gè),無傷損的負(fù)樣本500個(gè)。樣本尺寸為4 096×4 096。為保證樣本集的質(zhì)量以及裂縫特征識(shí)別效果,在圖像標(biāo)注集制作前進(jìn)行了初步篩選,保證裂縫特征的清晰度和對(duì)比度,背景特別復(fù)雜的裂縫圖像不納入標(biāo)注樣本集中[12]。
建立好的測(cè)試集用無砟道床表觀傷損檢測(cè)識(shí)別模型進(jìn)行測(cè)試,結(jié)果見表2。
表2 無砟道床測(cè)試集測(cè)試結(jié)果
由表2可知,無砟道床識(shí)別準(zhǔn)確率95.6%。對(duì)識(shí)別錯(cuò)誤的樣本進(jìn)行分析,裂縫類表觀傷損,主要由于表觀受到雨水、污漬等干擾導(dǎo)致識(shí)別錯(cuò)誤。離縫、掉塊類傷損,主要由于形態(tài)多樣,采集訓(xùn)練的樣本數(shù)量少,模型訓(xùn)練學(xué)習(xí)不足,導(dǎo)致識(shí)別錯(cuò)誤。部分樣本的識(shí)別結(jié)果如圖5所示。
圖5 部分測(cè)試集樣本識(shí)別結(jié)果
將智能識(shí)別算法應(yīng)用于無砟道床表觀傷損檢測(cè)系統(tǒng),其工作流程如下。
1)人工推動(dòng)軌道小車連續(xù)運(yùn)行,安裝在走行輪軸頭的觸發(fā)編碼器為采集相機(jī)提供觸發(fā)信號(hào),采集相機(jī)連續(xù)采集無砟道床表觀高清圖像。
2)處理單元利用智能識(shí)別算法對(duì)無砟道床表觀圖像快速檢測(cè),識(shí)別裂縫、離縫、掉塊等傷損像素級(jí)類別和位置,依據(jù)圖像尺度提取傷損幾何尺寸信息
3)依據(jù)Q/CR 803—2020,根據(jù)無砟道床類型、傷損部位、傷損類型以及幾何特征確定傷損等級(jí)。
4)將里程、傷損等級(jí)、傷損圖例、傷損數(shù)量等信息輸入數(shù)據(jù)管理平臺(tái),進(jìn)行智能化展示,便于歷史數(shù)據(jù)查詢、傷損劣化規(guī)律分析及存儲(chǔ)管理。
在京滬線進(jìn)行無砟道床現(xiàn)場(chǎng)試驗(yàn)。由人工對(duì)試驗(yàn)段無砟道床進(jìn)行精確檢測(cè),并對(duì)檢測(cè)出的裂縫、離縫、掉塊進(jìn)行測(cè)量和標(biāo)注,標(biāo)注出10條裂縫、8條離縫以及10處掉塊,共28處。
采集的圖片經(jīng)過圖片預(yù)處理拼接后得到大圖,全線等間距采樣,圖像按板切分,傷損定位到軌枕,如圖6所示。
圖6 預(yù)測(cè)大圖示例
利用本文建立的識(shí)別模型進(jìn)行自動(dòng)識(shí)別(圖7),檢測(cè)像素精度優(yōu)于0.1 mm,利用智能識(shí)別算法對(duì)表觀傷損識(shí)別精度可達(dá)0.05 mm,其中1條裂縫由于污漬遮蓋未識(shí)別出來,其余標(biāo)記傷損全部檢出,無砟道床表觀傷損檢出率為96.43%。
圖7 現(xiàn)場(chǎng)驗(yàn)證識(shí)別效果
本文開展了無砟道床表觀傷損智能識(shí)別算法研究,創(chuàng)新性地構(gòu)建了基于ResNet網(wǎng)絡(luò)冗余卷積核壓縮的多尺度多任務(wù)無砟軌道表觀傷損智能識(shí)別模型,實(shí)現(xiàn)了無砟軌道傷損的大尺度預(yù)測(cè)、多任務(wù)并行處理、像素級(jí)語義分割的智能識(shí)別,識(shí)別精度達(dá)0.05 mm,滿足Q/CR 803—2020的要求(0.1 mm)。該模型對(duì)2 000張測(cè)試圖像的識(shí)別準(zhǔn)確率為95.6%,無砟道床表觀傷損現(xiàn)場(chǎng)檢出率為96.4%,檢測(cè)效果良好。
識(shí)別復(fù)雜特征干擾的無砟道床圖像,特別是混合水漬、嚴(yán)重污漬覆蓋的惡劣環(huán)境圖像,是本領(lǐng)域的一個(gè)難點(diǎn)。后續(xù)更深入地研究算法理論和網(wǎng)絡(luò)結(jié)構(gòu),建立更加豐富和數(shù)據(jù)充足的樣本庫,來提高復(fù)雜惡劣圖像中裂縫的識(shí)別率。