吳福培,謝曉揚(yáng),黃耿楠,吳 濤,李昇平
(1.汕頭大學(xué) 工學(xué)院,廣東 汕頭 515063;2.廣州特種機(jī)電設(shè)備檢測研究院,廣東 廣州 510180)
鐵路鋼軌與列車接觸并長期遭受列車的摩擦和沖擊,易產(chǎn)生各種表面和內(nèi)部傷損,極可能對列車的安全運(yùn)行帶來隱患[1-3]。當(dāng)前常用的無損檢測方法主要包括視覺檢測、超聲波檢測和漏磁檢測等[4]。超聲波檢測因具有穿透力強(qiáng)、指向性好和靈敏度高等特點(diǎn)已被廣泛用于鋼軌內(nèi)部傷損檢測[5]。
當(dāng)前鋼軌傷損檢測方法分為兩類:一類是利用高速攝像機(jī)獲取鋼軌表面圖像,并采用紋理和灰度等方法檢測鋼軌表面?zhèn)麚p[6-7]?;诖祟惙椒?閔永智等[8]設(shè)計了鋼軌表面缺陷檢測裝置和提出了基于圖像灰度梯度特征的鋼軌表面缺陷檢測方法,可檢測不同環(huán)境的鋼軌疤痕和裂紋傷損,但其缺陷漏檢率和誤檢率分別為5.79%和6.84%。彭方進(jìn)[9]提出一種高魯棒性的鋼軌表面缺陷檢測算法,對不同拍攝條件下檢測鋼軌表面缺陷的準(zhǔn)確率不低于93%,且具有較高的魯棒性。此外,通過考慮鋼軌的特定特征,文獻(xiàn)[10]設(shè)計了一種面向背景的缺陷檢測器以檢測鋼軌表面缺陷。試驗結(jié)果表明,該方法具有客觀的檢測能力,且可避免外部因素對檢測結(jié)果的干擾。盡管上述方法可取得較好的傷損檢測效果,但總體上仍存在準(zhǔn)確率較低和泛化能力較差等問題。另一類是利用超聲波探傷儀采集的B型圖像檢測鋼軌內(nèi)部傷損。該方面研究的文獻(xiàn)相對較少,其研究成果主要體現(xiàn)在一些單位開發(fā)的鋼軌探傷系統(tǒng)中。如SPERRY公司的探傷車可對各種類型的鋼軌缺陷進(jìn)行檢測和分類[11]。美國鐵路協(xié)會的超聲波探傷系統(tǒng)可檢測整個鋼軌部分,包括軌頭、腹板和底座[12]?;趯型圖像中各傷損特征的研究,本文課題組提出一種傷損檢測及其參數(shù)學(xué)習(xí)方法[13]。該方法的檢測準(zhǔn)確率高于97%,檢測效果良好。此外,為進(jìn)一步提高鋼軌內(nèi)部傷損的智能化檢測,本文課題組曾提出一種基于傷損特征分析的鋼軌傷損智能識別與分類方法[14]。該方法的檢測準(zhǔn)確率高于97%,平均檢測時間為0.2 s/幀,可用于實(shí)時檢測。盡管該類方法具有高效率和高自動化的特點(diǎn),但仍存在魯棒性差和受限于特定傷損特征等問題。
綜上所述,準(zhǔn)確率較低、泛化能力不足、魯棒性不高和受限于特定傷損特征是當(dāng)前鋼軌傷損檢測方法面臨的主要問題。隨著深度學(xué)習(xí)在目標(biāo)檢測和分類領(lǐng)域的快速發(fā)展,上述問題有望得以解決。目前已有基于深度學(xué)習(xí)的表面缺陷檢測方法成功應(yīng)用于工業(yè)場景中[15]。黃鳳榮等[16]為提高發(fā)動機(jī)零件表面缺陷的檢測準(zhǔn)確率和效率,提出一種基于聚類算法生成Anchors的Faster R-CNN表面缺陷檢測方法,可準(zhǔn)確有效地檢測零件的表面缺陷,滿足智能制造的生產(chǎn)需求。為檢測鋼軌表面裂縫,文獻(xiàn)[17]設(shè)計了一種基于深度遷移學(xué)習(xí)的檢測算法,可有效降低圖像噪聲對檢測結(jié)果的影響,召回率高,且可檢測大、小尺寸的裂紋。Yang等[18]提出一種基于深度學(xué)習(xí)的鐵路檢測方法,其精確率和召回率分別可達(dá)70%和80%以上,可實(shí)現(xiàn)鋼軌接頭或缺陷的良好檢測。此外,文獻(xiàn)[19]提出一種基于貝葉斯CNN和注意力網(wǎng)絡(luò)的鋼軌表面缺陷檢測算法,旨在復(fù)雜多樣的鋼軌場景下提高缺陷的檢測精度和速度。試驗結(jié)果表明,該算法的分割精度可達(dá)91.46%,運(yùn)行時間為0.18 s/幀。
從上述分析可知,深度學(xué)習(xí)算法可自動獲取圖像中豐富的特征信息,具有檢測準(zhǔn)確率高、魯棒性強(qiáng)和泛化能力好等優(yōu)點(diǎn),可有效檢測鋼軌傷損。因此,為準(zhǔn)確地檢測鋼軌內(nèi)部傷損,提出一種基于Anchors設(shè)計和模型遷移的鋼軌內(nèi)部傷損檢測方法。首先,采用圖像數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充現(xiàn)有的傷損圖像數(shù)據(jù)集,避免所提模型發(fā)生過擬合。其次,采用K-means聚類算法設(shè)計新的Anchors多維度約束,提高傷損的檢測精度。最后,在基于改進(jìn)Faster R-CNN模型的遷移學(xué)習(xí)方法和擴(kuò)充的樣本數(shù)據(jù)集的基礎(chǔ)上,訓(xùn)練并檢驗所提的鋼軌傷損檢測模型。
超聲波鋼軌探傷儀檢測鋼軌內(nèi)部傷損時,其探頭向鋼軌內(nèi)部發(fā)射一定頻率的聲波。聲波在鋼軌內(nèi)部傳播以檢測內(nèi)部傷損。當(dāng)遇到不同阻抗的傷損時,聲波會產(chǎn)生一次反射和二次反射[20]。然后,通過分析反射波的大小、數(shù)量和波形,可對各類鋼軌傷損進(jìn)行成像和顯示[21],成像后的圖像即為B型圖像,見圖1。
圖1 鋼軌內(nèi)部傷損的B型圖像
B型圖像顯示了傷損在鋼軌內(nèi)部的水平和深度信息。在使用探傷儀檢測傷損時,不同角度的探頭檢測不同位置的傷損,并采用不同的顏色進(jìn)行區(qū)分。此外,受檢測位置和環(huán)境等因素的影響,檢測過程產(chǎn)生的雜波也在B型圖像中顯示。
結(jié)合超聲波成像方式、傷損位置、傷損特征和傳統(tǒng)的鋼軌傷損分類方法[22],將鋼軌內(nèi)部傷損歸類為11種,見表1。
表1 鋼軌內(nèi)部傷損分類
圖2為各種類型傷損的集合。圖2中標(biāo)識的傷損序號與表1對應(yīng),其中,黑色橢圓內(nèi)的圖像為各種類型雜波,黃色三角形內(nèi)的圖像為接頭。由圖2可知,軌頭核傷的成像長短不一,且單獨(dú)或成對出現(xiàn)。螺孔下裂圖像位于正常螺孔圖像下方。軌底橫裂圖像的粗細(xì)程度和長度均有差異,但以成對形式實(shí)現(xiàn)超聲波成像。
圖2 鋼軌內(nèi)部傷損集合
檢測時,此類傷損圖像主要存在以下檢測難點(diǎn):受鋼軌表面平滑度和探傷車靈敏度等因素的影響,B型圖像的噪聲無明顯規(guī)律,對傷損的檢測帶來干擾;在B型圖像中,不同類型傷損分布在不同區(qū)域,易對B型圖像的數(shù)據(jù)增強(qiáng)引入不確定因素,如使用旋轉(zhuǎn)方式對B型圖像進(jìn)行數(shù)據(jù)增強(qiáng)時,檢測效果可能適得其反;B型圖像中傷損標(biāo)注誤差大。B型圖像中,通常需要結(jié)合多個通道的圖像來判斷傷損的類別。然而,各個通道的圖像形狀并不固定,人工標(biāo)注邊界框時會產(chǎn)生比普通圖像更大的標(biāo)注誤差。在深度學(xué)習(xí)的邊界框回歸階段可能會發(fā)生邊界框定位偏離的現(xiàn)象。為此,擬通過提出基于Anchors設(shè)計和改進(jìn)Faster R-CNN模型的遷移學(xué)習(xí)傷損檢測方法,解決B型圖像中存在的噪聲干擾、傷損分類困難和定位誤差大的問題,提高傷損檢測精度。
綜合上述分析可知,鋼軌內(nèi)部傷損種類多、顏色組成和位置特征差異大。此外,傷損所在的區(qū)域僅為整幅圖像極小的一部分。若采用經(jīng)典Faster R-CNN架構(gòu)檢測鋼軌傷損,可能存在以下問題:現(xiàn)有的Anchors約束針對原檢測目標(biāo)設(shè)置,無法滿足和應(yīng)用于復(fù)雜多樣的鋼軌內(nèi)部傷損檢測;僅使用最后一層特征圖檢測傷損,無法有效提取鋼軌傷損的特征信息。由于最后一層特征圖分辨率小且對應(yīng)原圖的視場范圍較大,易丟失關(guān)鍵的細(xì)節(jié)信息,不利于檢測鋼軌傷損(小目標(biāo))。
針對上述問題,提出一種基于Anchors設(shè)計的改進(jìn)Faster R-CNN架構(gòu),見圖3,以檢測鋼軌內(nèi)部傷損。該架構(gòu)采用ResNet-50[23]為特征提取網(wǎng)絡(luò),并設(shè)計新的Anchors約束以檢測鋼軌傷損。首先,將鋼軌內(nèi)部傷損圖像輸入ResNet-50網(wǎng)絡(luò),結(jié)合特征金字塔結(jié)構(gòu)提取不同大小的特征圖并進(jìn)行融合處理。其次,采用K-means聚類算法設(shè)計與鋼軌內(nèi)部傷損相關(guān)的Anchors多維度約束。然后,通過RPN(Region Proposal Network)網(wǎng)絡(luò)得出候選區(qū)域,并將不同大小的特征圖和候選區(qū)域輸入到RoI (Region of Interest) Align中進(jìn)行區(qū)域校準(zhǔn)池化。最后,將得到的特征圖送入兩個全連接層進(jìn)行分類和邊框回歸。
圖3 基于Anchors設(shè)計的改進(jìn)Faster R-CNN架構(gòu)
現(xiàn)有的Anchors無法直接用于當(dāng)前的鋼軌內(nèi)部傷損數(shù)據(jù)集,因此,需對Anchors進(jìn)行重新設(shè)計,以適應(yīng)檢測目標(biāo)的實(shí)時變化。由于人工設(shè)計Anchors需要進(jìn)行大量的統(tǒng)計試驗并進(jìn)行驗證,且設(shè)計不合理易對檢測結(jié)果造成較大的標(biāo)注誤差。為解決上述問題,擬采用K-means聚類算法設(shè)計適用于檢測鋼軌內(nèi)部傷損的Anchors多維度約束。
首先,以交并比為距離度量對數(shù)據(jù)集中各類型傷損進(jìn)行聚類。然后,根據(jù)聚類結(jié)果重新設(shè)計Anchors,以更好地檢測鋼軌傷損。度量該距離為
D(x,y)=1-IOU(x,y)
(1)
當(dāng)使用式(1)作為度量時,標(biāo)注框與聚類中心越接近,交并比IOU越大,此時距離度量D(x,y)越小,越容易被歸為一類,聚類結(jié)果越準(zhǔn)確。
結(jié)合鋼軌傷損特點(diǎn)和所提改進(jìn)Faster R-CNN模型的結(jié)構(gòu)特征,并通過試驗測試結(jié)果分析,可得聚類中心為5。經(jīng)過10次聚類分析,對聚類后的Anchors面積進(jìn)行向上取整后可得圖4。同時,對聚類后的Anchors寬高比進(jìn)行統(tǒng)計和分析后可得圖5。在此基礎(chǔ)上,設(shè)計Anchors的面積取值分別為82、102、152、172和232,且每種面積的Anchor具有0.5∶1、1.8∶1、2.5∶1三種不同的寬高比。
圖5 Anchors寬高比統(tǒng)計
由于ResNet-50特征提取網(wǎng)絡(luò)在訓(xùn)練時需要大量的樣本圖像才能學(xué)習(xí)到合適的參數(shù)權(quán)重,而研究中鋼軌內(nèi)部傷損圖像通常有限,在訓(xùn)練網(wǎng)絡(luò)時參數(shù)權(quán)重容易過擬合,導(dǎo)致模型訓(xùn)練不理想。為此,論文擬采用基于改進(jìn)Faster R-CNN模型的遷移學(xué)習(xí)方法實(shí)現(xiàn)小樣本下鋼軌內(nèi)部傷損檢測。與經(jīng)典Faster R-CNN相比,改進(jìn)Faster R-CNN模型重新設(shè)計了新的Anchors約束和分類器,結(jié)合了ResNet-50特征提取網(wǎng)絡(luò)和特征金字塔,并采用ROI Align操作以最終實(shí)現(xiàn)鋼軌傷損檢測。
圖6為基于改進(jìn)Faster R-CNN模型的遷移學(xué)習(xí)方法示意。首先,在樣本數(shù)據(jù)充足的源域上進(jìn)行預(yù)訓(xùn)練,可得模型A的網(wǎng)絡(luò)參數(shù)權(quán)重。然后,將該參數(shù)權(quán)重遷移至模型B中。最后,利用數(shù)據(jù)量有限的目標(biāo)域?qū)δP虰進(jìn)行訓(xùn)練。
基于上述分析,提出基于改進(jìn)Faster R-CNN模型的遷移學(xué)習(xí)方法,見圖7。首先,采用COCO數(shù)據(jù)集對模型進(jìn)行訓(xùn)練,得到模型的預(yù)訓(xùn)練參數(shù)權(quán)重。其次,保留模型特征提取層的參數(shù)權(quán)重。然后,根據(jù)鋼軌內(nèi)部傷損的特點(diǎn)設(shè)計新的Anchors多維度約束和分類器。最后,在擴(kuò)充的傷損圖像數(shù)據(jù)集上繼續(xù)進(jìn)行訓(xùn)練,得到鋼軌內(nèi)部傷損檢測模型。
圖7 基于改進(jìn)Faster R-CNN模型的遷移學(xué)習(xí)方法
2.3.1 損失函數(shù)
訓(xùn)練過程中,為使所提模型正確預(yù)測傷損類別和位置,使用多任務(wù)損失函數(shù)對模型進(jìn)行訓(xùn)練,其表達(dá)式為
(2)
Lcls(pi,si)=-ln[pisi+(1-si)(1-pi)]
(3)
Lreg(ti,yi)=smoothL1(ti-yi)
(4)
(5)
式中:L({pi},{ti})為RPN的損失函數(shù),用于衡量模型所作出的預(yù)測值與真實(shí)值之間的偏離程度;Lcls為分類損失,用于衡量模型所作出的類別預(yù)測與真實(shí)類別之間的偏離程度;Lreg為回歸損失,用于衡量模型預(yù)測值與真實(shí)值之間距離的偏離程度;i為Anchors索引;pi為第i個Anchors 被預(yù)測為真實(shí)標(biāo)簽的概率;si為0或1,當(dāng)Anchors為正樣本時,si取1;當(dāng)Anchors為負(fù)樣本時,si取0;ti為預(yù)測第i個Anchor的邊界框回歸參數(shù);yi為第i個Anchor對應(yīng)的真實(shí)標(biāo)注框的邊界框回歸參數(shù);Ncls為一個mini-batch中的樣本數(shù)量,其值為256;Nreg為Anchors位置的個數(shù);λ為分類和回歸的平衡參數(shù)。
2.3.2 評價指標(biāo)
采用F1-Measure (F1)、召回率和精確率三個指標(biāo),以準(zhǔn)確和全面地評價所提模型的傷損檢測能力,其表達(dá)式為
(6)
(7)
(8)
式中:P為精確率;R為召回率;F1為P和R的調(diào)和平均值,F1值可驗證模型對測試集中每個標(biāo)簽的分類效果,并進(jìn)一步考慮分類結(jié)果中的假陽性和假陰性錯誤;TP(正陽性)為正確識別為傷損的數(shù)量;FP(假陽性)為被誤識別為傷損的數(shù)量;FN(假陰性)為漏識別的傷損數(shù)量。
采用的硬件環(huán)境主要為:Intel i7-10700K八核處理器,GeForce RTX 2080Ti顯卡。軟件環(huán)境主要為:基于64位的Windows10操作系統(tǒng),基于CUDA10.1和PyCharm的集成開發(fā)環(huán)境,基于PyTorch1.6的深度學(xué)習(xí)框架,運(yùn)行環(huán)境為PyThon 3.7。
反復(fù)調(diào)試參數(shù)后,得到最終的超參數(shù)設(shè)置為:優(yōu)化器采用隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD),優(yōu)化器的初始學(xué)習(xí)率設(shè)置為0.005,動量為0.9,權(quán)值衰減為0.000 5。批量大小設(shè)置為4,Epoch設(shè)置為30。每次訓(xùn)練3個Epochs后,學(xué)習(xí)率將進(jìn)行衰減,衰減因子為0.33。
在上述試驗環(huán)境和超參數(shù)設(shè)置的基礎(chǔ)上,建立鋼軌內(nèi)部傷損數(shù)據(jù)庫。首先,通過數(shù)據(jù)增強(qiáng)技術(shù)使數(shù)據(jù)庫圖像擴(kuò)充至1 500張(圖像分辨率均為1 000×400),且每張圖像至少含有一種類型的傷損。需要特別說明的是,本試驗所用原始圖像均基于課題組與合作單位共同研制的鋼軌探傷儀于高速軌道現(xiàn)場和合作單位的試驗線上采集。其次,將該數(shù)據(jù)庫按照6∶2∶2的比例分別劃分為訓(xùn)練集、驗證集和測試集。然后,利用標(biāo)注工具按PASCAL VOC數(shù)據(jù)集的標(biāo)注格式對訓(xùn)練集和驗證集圖像進(jìn)行標(biāo)注,生成XML類型的標(biāo)注文件。最后,將已標(biāo)注的數(shù)據(jù)集按圖7所示流程進(jìn)行訓(xùn)練。
圖8為訓(xùn)練時的總損失和學(xué)習(xí)率變化情況。由圖8可知,訓(xùn)練共進(jìn)行了30個Epochs。訓(xùn)練過程中,所提模型的網(wǎng)絡(luò)總損失函數(shù)在第15個Epoch之前呈現(xiàn)下降趨勢,15個Epochs之后基本趨于穩(wěn)定,模型達(dá)到收斂。與此同時,模型學(xué)習(xí)率基本趨于0。
圖8 總損失函數(shù)和學(xué)習(xí)率變化情況
利用已訓(xùn)練好的模型對測試集的傷損圖像進(jìn)行檢測,以檢驗?zāi)P偷男阅?。檢測結(jié)果見圖9。由圖9可知,對于不同類型的鋼軌傷損,模型均能達(dá)到良好的檢測效果,可準(zhǔn)確地識別出傷損的大小和位置,并具有較高的類別預(yù)測能力。進(jìn)一步地,統(tǒng)計測試集中各類型傷損的檢測結(jié)果和分析相關(guān)的評價指標(biāo),見表2和表3。
表2 各類型傷損的檢測結(jié)果統(tǒng)計 個
表3 各類型傷損的評價指標(biāo)分析 %
圖9 所提模型的傷損檢測結(jié)果
從表2可知,測試集中共含有2 660個傷損,其中,所提模型能正確檢測出2 624個傷損,誤將40個非傷損目標(biāo)識別為傷損,未檢測出36個傷損。基于上述分析,模型整體的平均預(yù)測概率可達(dá)97%,精確率、召回率和F1均達(dá)到99%。另一方面,在檢測單一類型傷損時,精確率最低為97%,最高可達(dá)100%;召回率最低為94%,最高可達(dá)100%;F1最低為97%,最高可達(dá)100%,表明所提模型可有效檢測鋼軌內(nèi)部各類型傷損,并為鋼軌內(nèi)部的傷損檢測提供借鑒意義。
然而,所提模型仍存在不足之處。如檢測個別傷損時,將非傷損目標(biāo)誤識別為傷損的次數(shù)較多(如表2中的Li和Hs等),其原因可能是非傷損目標(biāo)在形狀、位置和顏色等特征上與某類型傷損非常接近,導(dǎo)致在較高的概率上被識別為目標(biāo)傷損。另一方面,所提模型仍存在傷損漏檢問題,其原因可能是訓(xùn)練樣本中相關(guān)類型傷損的數(shù)量不足,導(dǎo)致模型的泛化能力略差,未能識別所有傷損。
與本課題組前期研究所提的傷損檢測方法比較,可得表4和表5。表4中,文獻(xiàn)[13]和文獻(xiàn)[14]所提方法檢測的傷損類型較少,而本文所提方法可檢測鋼軌中常見的11種類型傷損。從表5可知,在檢測更多類型傷損的基礎(chǔ)上,本文方法的精確率和召回率均可達(dá)到99%,具備更好的傷損檢測性能。
表4 不同方法的數(shù)據(jù)分析 個
表5 不同方法的性能對比 %
進(jìn)一步地,將本文所提方法與文獻(xiàn)[24]中的方法進(jìn)行對比分析。文獻(xiàn)[24]中的傷損類型與本文相比略有不同。因此,分析后可將傷損歸納為軌頭核傷、螺孔裂紋和軌底裂紋三種類型進(jìn)行對比,其結(jié)果見表6,其中,識別準(zhǔn)確率Ts和誤報率Fs的表達(dá)式為
表6 本文方法與文獻(xiàn)[24]所提方法的對比 %
(9)
(10)
式中:N為傷損總數(shù)。
從表6可知,在同類型傷損中,文獻(xiàn)[24]所提方法的識別準(zhǔn)確率低于本文所提方法。本文方法在識別準(zhǔn)確率方面優(yōu)勢明顯。同時,本文所提方法的誤報率低于文獻(xiàn)[24]所提方法,傷損檢測性能更優(yōu)。
試驗結(jié)果與文獻(xiàn)對比分析表明,本文所提方法具有較高的精確率、召回率和F1,可有效檢測鋼軌內(nèi)部傷損。同時,該方法的識別準(zhǔn)確率高,誤報率低,傷損檢測性能更優(yōu)。
為準(zhǔn)確檢測鋼軌內(nèi)部傷損,提出一種基于Anchors設(shè)計和模型遷移的傷損檢測方法,得出以下主要結(jié)論:
(1)ResNet-50特征提取網(wǎng)絡(luò)可從B型圖像中提取豐富的特征信息,并能準(zhǔn)確檢測現(xiàn)有的鋼軌內(nèi)部傷損。
(2)采用K-means聚類算法設(shè)計Anchors的多維度約束,可有效解決經(jīng)典Faster R-CNN對鋼軌內(nèi)部傷損定位不準(zhǔn)確的問題。
(3)引入基于改進(jìn)Faster R-CNN模型的遷移學(xué)習(xí)方法,旨在解決訓(xùn)練樣本少和模型訓(xùn)練時間較長等問題。試驗結(jié)果表明,以小樣本數(shù)據(jù)集訓(xùn)練時,所提方法可在較短時間內(nèi)達(dá)到收斂,且具有良好的傷損檢測性能。
(4)試驗結(jié)果表明,所提方法在測試集上獲得的精確率、召回率和F1均可達(dá)99%,檢驗了該方法的有效性。同時,在檢測單一類型傷損時,該方法的精確率、召回率和F1最高可達(dá)100%,具有較高的傷損檢測性能。此外,所提方法的識別準(zhǔn)確率高,誤報率低,可為鋼軌內(nèi)部傷損的智能化檢測提供借鑒。
本文所提方法仍存在傷損漏檢問題,主要原因在于小樣本下模型所學(xué)習(xí)到的傷損特征未能滿足所有傷損的檢測要求,導(dǎo)致其在工程應(yīng)用方面仍有不足。如何避免傷損漏檢和進(jìn)一步提高所提方法的傷損檢測性能,是后續(xù)的研究方向。