張澤寧 鄭樹彬 李立明
(上海工程技術(shù)大學(xué)城市軌道交通學(xué)院 上海 201600)
軌道扣件作為連接鋼軌與軌枕的重要部分,其是否處于工作狀態(tài)會直接影響鋼軌與軌枕的連接強(qiáng)度進(jìn)而影響列車行車安全。軌道扣件狀態(tài)巡檢更是鐵路工務(wù)部門對鐵路線路日常維護(hù)的重要工作。在傳統(tǒng)軌道扣件檢測算法中,張雯柏等[1]提出改進(jìn)的Sobel算子結(jié)合二值化形態(tài)學(xué)的軌道扣件分割算法。邊緣特征和形態(tài)學(xué)分割對亮度十分敏感;DOU Yunguan等提出首先運(yùn)用模板匹配算法根據(jù)軌道的幾何關(guān)系來定位扣件,然后采用最近鄰分類器判斷扣件是完整狀態(tài)還是丟失狀態(tài)。模板匹配需要消耗大量計算資源無法做到實(shí)時檢測,同時極易遭受干擾而致使匹配失敗。其他利用淺層特征進(jìn)行扣件定位的方法,如HOG(histogram of oriented gradient)特征[2]、紋理特征[3]、SIFT特征[4]都非常容易受到光照和對比度等因素影響,并且需要根據(jù)不同特征進(jìn)行不同的預(yù)處理,難以廣泛使用。
目前,隨著計算機(jī)視覺、深度學(xué)習(xí)等領(lǐng)域的不斷發(fā)展,圖像中更深層次的特征被廣泛應(yīng)用,愈來愈多優(yōu)秀的目標(biāo)檢測算法隨之出現(xiàn)。在軌道交通行業(yè),利用抗干擾能力更強(qiáng)、適應(yīng)性更廣、準(zhǔn)確率更高的深度學(xué)習(xí)目標(biāo)檢測算法來輔助人工巡檢已是重點(diǎn)研究方向。在計算機(jī)視覺和深度學(xué)習(xí)如火如荼的發(fā)展中主要出現(xiàn)了兩類目標(biāo)檢測算法,即two stage目標(biāo)檢測算法和one stage目標(biāo)檢測算法。前者主要思路是先通過啟發(fā)式方法或者卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)在圖片中產(chǎn)生大量稀疏的候選區(qū)域(region proposals),再將每個候選區(qū)域送入多層CNN中進(jìn)行分類和回歸[5];后者不需要生成候選區(qū)域,直接將圖片送入CNN,根據(jù)特征圖以不同尺度和寬高比對圖片進(jìn)行密集抽樣,再利用CNN提取特征后進(jìn)行分類和回歸?,F(xiàn)階段SSD作為優(yōu)秀的one stage算法在voc2007數(shù)據(jù)集中目標(biāo)檢測的準(zhǔn)確率和速率(77%mAP/46FPS)均領(lǐng)先two stage算法中性能較好Faster R-CNN算法(73%mAp/7FPS)[6]。
本文充分利用SSD算法優(yōu)勢,結(jié)合軌道扣件快速彈條狀態(tài)檢測任務(wù)的特點(diǎn),優(yōu)化先驗框尺度和寬高比,并且使用遷移學(xué)習(xí)的方法提高了訓(xùn)練速度和檢測精度。最終能夠準(zhǔn)確識別軌道扣件快速彈條和鋼軌表面的具體位置,為軌道扣件快速彈條狀態(tài)檢測提出一種新方法。
SSD算法使用多層神網(wǎng)絡(luò)提取一系列不同尺度的特征圖,利用不同寬高比的先驗框?qū)θ珗D各子區(qū)域進(jìn)行分類和回歸。其在VGG-16基礎(chǔ)上刪除dropout層和全連接層并增加更多卷積層以獲得不同大小的特征圖。保存經(jīng)過卷積層Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2所得到的六個特征圖,將其作為物體類別和位置坐標(biāo)預(yù)測的基礎(chǔ)。在SSD算法中不同大小的特征圖負(fù)責(zé)檢測的物體大小不同,較大的特征圖中包含更多細(xì)節(jié)特征,適合檢測較小的物體,較小的特征圖有更大的感受野,適合檢測較大的物體[7]。SSD優(yōu)于其他深度學(xué)習(xí)目標(biāo)檢測算法的原因就在于SSD算法為不同大小的特征圖設(shè)置不同尺度和寬高比的先驗框(同一個特征圖中每個單位的先驗框數(shù)量相同)[8]。使得不同尺度和寬高比的先驗框能夠囊括更多大小各異的物體。
對于尺度,其遵循線性遞增的規(guī)則,即隨著特征圖大小的降低,先驗框尺度線性增加:
其中,m指特征圖數(shù)量,sk指先驗框尺度相對于輸入圖片的比例,而smin和smax分別表示該比例的最小值和最大值(取0.2和0.9)。一般情況下將第一個先驗框尺度比例設(shè)置為s1=smin/2=0.1。
圖1 SSD網(wǎng)絡(luò)整體結(jié)構(gòu)
進(jìn)一步,根據(jù)損失函數(shù)計算l與g的綜合損失,利用梯度下降的方法更新卷積層參數(shù)權(quán)重[11]。在訓(xùn)練過程中,對于圖片中每一個已經(jīng)標(biāo)注的真實(shí)框找到與其交并比(Intersection-over-Union,IoU)大于0.5的先驗框。將這些先驗框所對應(yīng)的邊界框作為正樣本,而沒有與之匹配的邊界框則與背景匹配,將這些邊界框作為負(fù)樣本[12]。由于圖片中標(biāo)注的真實(shí)框一般僅有幾個而負(fù)樣本數(shù)量非常多,為解決正負(fù)樣本不平衡的問題,以正負(fù)樣本1∶3的比例篩選負(fù)樣本中背景置信度較高的邊界框[13]。
SSD算法需要對物體的類別和位置坐標(biāo)進(jìn)行預(yù)測,因此其損失函數(shù)由類別置信度損失(confidence loss,conf)和位置坐標(biāo)損失(locatization loss,loc)兩部分加權(quán)而成[14]。在本文中類別置信度損失采用softmax損失函數(shù)進(jìn)行計算,而位置坐標(biāo)損失由smoothL1損失函數(shù)獲得,兩者的權(quán)重相同取權(quán)重系數(shù)α=1??傮w損失函數(shù)可表達(dá)為
其中,x表示輸入,c表示邊界框中物體類別的得分值,l表示邊界框的編碼值,g表示真實(shí)框,N表示正負(fù)樣本整體個數(shù)。
3.2.1 類別置信度損失
特別地,SSD算法將圖片的背景定義為特殊的類別,若邊界框置信度最高的一項為背景類,那么該邊界框沒有檢測到目標(biāo)物體。
3.2.2 位置坐標(biāo)損失
在位置坐標(biāo)損失中,邊界框位置預(yù)測其實(shí)是一個回歸問題,通?;貧w問題可以使用L2(平方)損失函數(shù)。但是本網(wǎng)絡(luò)層次較深,多次迭代容易產(chǎn)生梯度消失現(xiàn)象,而且L2損失函數(shù)對離群點(diǎn)十分敏感,對較大的損失懲罰很高。L1(絕對)損失函數(shù)沒有上述問題,不過L1損失函數(shù)在0點(diǎn)不可導(dǎo),反向傳播計算梯度的時候容易出現(xiàn)無法求導(dǎo)的問題。因此,本文結(jié)合L2損失函數(shù)和L1損失函數(shù)的優(yōu)點(diǎn)選用smoothL1函數(shù)作為位置坐標(biāo)損失函數(shù)。
smoothL1函數(shù)在自變量x∈(-1,1)時為平方函數(shù),其他位置為絕對函數(shù),函數(shù)圖像如圖2所示。
圖2 s moot hL1函數(shù)
在使用smoothL1作為損失函數(shù)時,第i個預(yù)測框與第j個真實(shí)框關(guān)于類別p的位置坐標(biāo)損失可表示為
快速彈條軌道扣件系統(tǒng)作為新扣件產(chǎn)品,代表著鐵路扣件技術(shù)的最新水平和發(fā)展方向,已經(jīng)被廣泛應(yīng)用于德國、法國、日本、澳大利亞及北美等國家的鐵路上。目前在我國合武、石太等客運(yùn)專線均鋪設(shè)了這樣的軌道扣件系統(tǒng)[16]。
根據(jù)石太客運(yùn)專線現(xiàn)場CCD線陣相機(jī)采集到的圖片如圖3所示,左側(cè)快速彈條在水平方向上向左彈出,其與鋼軌的水平距離較遠(yuǎn)未扣緊鋼軌,存在安全隱患;右側(cè)快速彈條扣緊鋼軌處于正常狀態(tài),不存在安全隱患。實(shí)驗使用1336張石太客運(yùn)專線現(xiàn)場軌道扣件圖片作為實(shí)驗原始數(shù)據(jù),其中有32張圖片中存在快速彈條未扣緊的情況。
圖3 石太客運(yùn)專線現(xiàn)場圖片
SSD目標(biāo)檢測需要大量數(shù)據(jù)作為支持,同時為了使網(wǎng)絡(luò)具有更強(qiáng)的泛化能力,參考常用的數(shù)據(jù)增強(qiáng)與擴(kuò)展方法,對原始圖片進(jìn)行隨機(jī)水平翻轉(zhuǎn),隨機(jī)尺度變換,隨機(jī)對比度和亮度調(diào)整,使得最終數(shù)據(jù)量達(dá)到原始數(shù)據(jù)量的5倍[17]。之后,將所有圖片轉(zhuǎn)換成300像素×300像素圖片。使用labelImg程序標(biāo)注扣件快速彈條區(qū)域和鋼軌區(qū)域。生成包含圖片名稱、物體位置、物體類別等信息的xml文件。最終,取數(shù)據(jù)集中80%的圖片作為訓(xùn)練集進(jìn)行訓(xùn)練。
考慮到軌道扣件快速彈條狀態(tài)檢測任務(wù)的一致性和特定性,有針對性的設(shè)置SSD網(wǎng)絡(luò)參數(shù)與超參數(shù)顯得尤為重要。由于待檢測的對象只有扣件、鋼軌、背景,同時原始的圖片大小統(tǒng)一,待檢測對象的形狀、大小固定不變,僅有鋼軌與軌道扣件快速彈條的相對位置發(fā)生變化。在使用先驗框進(jìn)行密集抽樣時,可以有針對性地設(shè)置先驗框的尺度和寬高比,減少生成先驗框的數(shù)量,提高運(yùn)行速度。同時,更少的先驗框可以大大減少負(fù)樣本數(shù)量,改善傳統(tǒng)SSD模型中正負(fù)樣本極不平靜的問題,有利于提高模型精度。
模型訓(xùn)練分為兩個階段進(jìn)行,第一階段使用VGG16預(yù)訓(xùn)練權(quán)重參數(shù)作為SSD算法的初始化權(quán)重參數(shù)。雖然VGG16預(yù)訓(xùn)練權(quán)重參數(shù)所使用的物體類別和數(shù)量與本實(shí)驗不同,但相比初始化形成的隨機(jī)權(quán)重參數(shù),預(yù)訓(xùn)練權(quán)重參數(shù)能使模型更快收斂減少過擬合現(xiàn)象的發(fā)生,大大節(jié)省了算力和訓(xùn)練時間;第二階段使用本網(wǎng)絡(luò)對預(yù)訓(xùn)練網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)訓(xùn)練,設(shè)置迭代次數(shù)為5000次,批數(shù)據(jù)量設(shè)置為32。使用均方根反向傳播(Root Mean Square Prop,RMSProp)[18]優(yōu)化算法進(jìn)行優(yōu)化。
實(shí)驗使用GPU為GTX1080ti,tensorflow-gpu版本為1.13.1,CUDA版本為10.0并配置cuDNN 7.4。實(shí)驗采用優(yōu)化后的先驗框參數(shù),配合遷移學(xué)習(xí)的方法對模型進(jìn)行訓(xùn)練。同時,以傳統(tǒng)SSD網(wǎng)絡(luò)作為對比實(shí)驗。兩種方法均在本文構(gòu)建的數(shù)據(jù)集上進(jìn)行訓(xùn)練,隨著迭代次數(shù)增加損失值變化如圖4所示。
圖4 損失值隨迭代次數(shù)變化情況
由于傳統(tǒng)SSD算法訓(xùn)練5000次時損失值仍高于2,識別率僅為54.8%,損失值還在下降過程中,因此繼續(xù)訓(xùn)練至20000次后損失值穩(wěn)定在0.33附近。本文算法訓(xùn)練5000次時已經(jīng)穩(wěn)定,識別結(jié)果如圖5所示。能以較高的準(zhǔn)確率識別定位到快速彈條和鋼軌的具體位置,取得了很好的識別效果。
圖5 本文算法識別結(jié)果
在交叉驗證集上使用訓(xùn)練好的模型參數(shù)對兩種方法進(jìn)行驗證,識別結(jié)果如表1所示。
表1 檢測準(zhǔn)確率與速率
實(shí)驗結(jié)果表明,本文方法即使用了遷移學(xué)習(xí)并優(yōu)化網(wǎng)絡(luò)參數(shù)的SSD算法在迭代5000次時損失值趨近0.16,識別率達(dá)到95.2%。而沒有使用遷移學(xué)習(xí)的傳統(tǒng)SSD算法在迭代5000次時模型還沒有收斂,直到迭代20000次時損失值穩(wěn)定在0.33附近,此時識別率為87.1%。
進(jìn)一步,使用本文算法的識別結(jié)果,根據(jù)扣件快速彈條與鋼軌的相對位置距離,以本次實(shí)驗的300×300像素圖片為依據(jù)。在水平方向上,處于扣緊狀態(tài)的快速彈條識別框的中心坐標(biāo)與軌道識別框的中心坐標(biāo)之差小于78像素,換言之水平方向上兩者中心距離大于78像素的快速彈條被認(rèn)為處于未扣緊狀態(tài)。對于準(zhǔn)確定位的快速彈條和鋼軌,依據(jù)此相對位置可以完全準(zhǔn)確地判斷出快速彈條的狀態(tài)。
本文使用遷移學(xué)習(xí)方法,利用已經(jīng)訓(xùn)練好的其他模型參數(shù)作為訓(xùn)練初始化參數(shù),在此基礎(chǔ)上使用現(xiàn)場軌道扣件數(shù)據(jù)集進(jìn)行再訓(xùn)練,大大減少了訓(xùn)練時間、節(jié)約算力,提高了識別精度。除此之外,本文根據(jù)待檢測的快速彈條和鋼軌形狀調(diào)整先驗框尺度和寬高比,減少了負(fù)樣本數(shù)量,使先驗框更容易擬合到待檢測物體,相比傳統(tǒng)SSD算法有更高的檢測準(zhǔn)確率和速率。
本文以傳統(tǒng)SSD目標(biāo)檢測算法為基礎(chǔ),在軌道扣件快速彈條檢測項目上對一千余張現(xiàn)場實(shí)際照片進(jìn)行分析。結(jié)合軌道扣件快速彈條的形態(tài)特點(diǎn),提出基于SSD的軌道扣件快速彈條狀態(tài)檢測方法。該方法通過調(diào)整先驗框尺度和寬高比使之能夠更好地框選待檢測物體。同時運(yùn)用遷移學(xué)習(xí)的方法對數(shù)據(jù)集進(jìn)行訓(xùn)練,有效地提高了訓(xùn)練速度和檢測準(zhǔn)確度。在準(zhǔn)確定位快速彈條與鋼軌的位置坐標(biāo)后,通過設(shè)定兩者在水平方向上的距離閾值可以準(zhǔn)確檢測出快速彈條是否處于扣緊狀態(tài)。未來會將此方法運(yùn)用到實(shí)際扣件檢測系統(tǒng)中,并對其進(jìn)一步完善。