盧艷東,李積英,王筱婷
(1.蘭州交通大學(xué)電子與信息工程學(xué)院,蘭州 730070; 2.甘肅省工業(yè)交通自動(dòng)化工程技術(shù)研究中心,蘭州 730070)
近年來(lái),由于鐵路運(yùn)輸?shù)目焖侔l(fā)展導(dǎo)致所承擔(dān)的客運(yùn)和貨運(yùn)急劇上升,保障鐵路基礎(chǔ)設(shè)施的安全運(yùn)營(yíng)越來(lái)越重要[1-2]。作為鐵路基礎(chǔ)設(shè)施的重要組成部分,軌道緊固件將鋼軌和軌枕連接并固定在道床上,以保持軌道的穩(wěn)定性;由于機(jī)車車輪與軌道之間的摩擦、振動(dòng)和環(huán)境因素影響,鐵路線路上軌道緊固件可能會(huì)出現(xiàn)螺栓松動(dòng)或彈條丟失等情況,極大影響著鐵路系統(tǒng)的可用性和安全性[3]。因此,軌道緊固件檢測(cè)就成為一項(xiàng)重要工作。傳統(tǒng)緊固件檢查主要是依賴經(jīng)過(guò)培訓(xùn)的工程師,其沿著軌道線路行走,定期檢查緊固件的健康狀態(tài),但由于該巡檢方式周期過(guò)長(zhǎng)、效率低下、存在安全隱患等,已無(wú)法滿足現(xiàn)在鐵路基礎(chǔ)設(shè)施檢查的高精度、高效率要求[4]。
為解決這一現(xiàn)狀問(wèn)題,不少緊固件檢測(cè)方法已相繼被提出。如在前期軌道緊固件檢測(cè)研究階段,MAZZEO等[5]將小波變換(WT)和獨(dú)立分量分析(ICA)表示的系數(shù)作為支持向量機(jī)(SVM)輸入,并對(duì)2種預(yù)處理方法的檢測(cè)率和假陽(yáng)率進(jìn)行比較評(píng)價(jià);RUVO等[6]提出一種基于FPGA的原型架構(gòu),可自動(dòng)檢測(cè)緊固件螺栓的存在與否,采用哈爾變換(Haar Transform)和多層感知器神經(jīng)分類器(MLPNC)進(jìn)行分類識(shí)別;SINGH等[7]提出使用自動(dòng)視頻分析的軌道緊固件檢測(cè)技術(shù),將圖像處理和分析方法相結(jié)合進(jìn)行檢測(cè),可代替監(jiān)察人員的人工目視檢查;LI等[8]提出基于視覺(jué)的自動(dòng)實(shí)時(shí)鐵路檢測(cè)系統(tǒng),將圖像中緊固件狀態(tài)評(píng)估機(jī)制引入到軌道檢測(cè)系統(tǒng),以提高對(duì)檢測(cè)精度影響;FENG等[9]提出采用哈爾特征的概率主題模型,檢測(cè)緊固件磨損或缺失的自動(dòng)視覺(jué)檢查系統(tǒng)。
為提高對(duì)緊固件圖像特征的提取,開(kāi)始將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到緊固件檢測(cè),用來(lái)代替淺層學(xué)習(xí)網(wǎng)絡(luò)。GIBEN等[10]采用一種基于材料類型和深度卷積神經(jīng)網(wǎng)絡(luò)的語(yǔ)義分割,與人工設(shè)計(jì)的淺層網(wǎng)絡(luò)相比,該算法獲得了更高的精度,并在多任務(wù)框架中使用多個(gè)檢測(cè)器,包括SVM分類器和全卷積網(wǎng)絡(luò)(FCN),有效地降低了緊固件檢測(cè)誤差;CHEN等[11]提出一種新的基于視覺(jué)的深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)方法,來(lái)檢測(cè)軌道扣件圖像中的缺陷,該系統(tǒng)基于離散余弦神經(jīng)網(wǎng)絡(luò)以由粗到細(xì)的方式級(jí)聯(lián)三級(jí);LIU等[12]提出一種基于在線模板匹配的緊固件區(qū)域定位方法,然后采用基于相似度的深度學(xué)習(xí)網(wǎng)絡(luò)對(duì)緊固件進(jìn)行分類。以上所述方法的檢測(cè)精度提升了不少,但很少考慮內(nèi)存,在保持高精度的前提下,檢測(cè)速度需進(jìn)一步提升。
隨著深度學(xué)習(xí)領(lǐng)域的發(fā)展,出現(xiàn)了多種卷積神經(jīng)網(wǎng)絡(luò),并把目標(biāo)檢測(cè)分為2類。第一類是two stage檢測(cè)算法,如R-CNN(Region Conventional Neural Network)[13]、FPN(Feature Pyramid Networks)[14]、FastR-CNN[15]及FasterR-CNN[16]等。首先,生成一系列候選區(qū)域作為候選目標(biāo)的樣本和特征信息;然后,預(yù)測(cè)目標(biāo)的定位信息和區(qū)域分類。MIAO等[17]提出一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)和連續(xù)小波變換(CWT)的兩階段曲線識(shí)別方法;WEI等[18]為了提高檢測(cè)速度和準(zhǔn)確率,利用FasterR-CNN進(jìn)行緊固件缺陷檢測(cè)。雖然這種網(wǎng)絡(luò)達(dá)到了一定的檢測(cè)精度,但由于生成候選區(qū)域時(shí)存在大量的重疊區(qū)域,嚴(yán)重影響了網(wǎng)絡(luò)檢測(cè)速度。第二類是one stage檢測(cè)算法,如SSD(Single Shot Multibox Detector)[19]、YOLO(You Only Look Once)[20]、YOLO9000[21]、YOLOv3[22]等,LI等[23]提出將深度可分離卷積和特征金字塔結(jié)合的YOLOv3-Lite檢測(cè)算法。這種網(wǎng)絡(luò)不用生成候選區(qū)域,直接將目標(biāo)檢測(cè)作為回歸問(wèn)題處理,從而獲得比兩階段網(wǎng)絡(luò)更高的檢測(cè)速度,但檢測(cè)精度有所降低。
針對(duì)以上檢測(cè)算法中檢測(cè)精度低或檢測(cè)速度慢等缺點(diǎn),提出一種基于YOLOv3-tiny改進(jìn)的輕量級(jí)軌道緊固件檢測(cè)算法,它結(jié)合了輕量級(jí)檢測(cè)網(wǎng)絡(luò)YOLOv3-Tiny,具有線性瓶頸和反向殘差的主干,以提高檢測(cè)精度和效率,采用一種混合卷積方法,將深度可分離卷積和傳統(tǒng)卷積相結(jié)合,可有效降低計(jì)算機(jī)復(fù)雜度和模型大小的效果,并改進(jìn)預(yù)測(cè)網(wǎng)絡(luò)多尺度檢測(cè)和損失函數(shù),在提高檢測(cè)精度的同時(shí),檢測(cè)效率得到有效提升。
YOLOv3-tiny算法是YOLOv3算法的簡(jiǎn)化版本,因其減少了大量的卷積層而對(duì)硬件要求也降低了,雖然在速度上有了很大提升,但檢測(cè)精度較低。如圖1為YOLOv3-tiny的算法結(jié)構(gòu),首先將輸入圖像分割成S×S的網(wǎng)格,如果某個(gè)對(duì)象的中心落在某個(gè)單元格,則該單元格負(fù)責(zé)檢測(cè)該對(duì)象。對(duì)于每個(gè)單元格預(yù)測(cè)B個(gè)邊界框,每個(gè)邊界框包含邊界框坐標(biāo)信息、類別概率和置信度,置信度由網(wǎng)格檢測(cè)的目標(biāo)類別概率和準(zhǔn)確度決定,其計(jì)算公式為

(1)

YOLOv3-tiny算法是將YOLOv3算法的darknet53精簡(jiǎn)為7個(gè)3×3的卷積層和6個(gè)最大池化層,每個(gè)卷積層是由BN層、卷積運(yùn)算和Leaky ReLU激活函數(shù)3部分組成,池化層的前5層采用步長(zhǎng)為2來(lái)降低輸入特征圖的維數(shù),并在尺度大小為13×13(第16層)檢測(cè)相對(duì)大目標(biāo)物體;然后進(jìn)行上采樣與特征提取層26×26層特征進(jìn)行特征融合,通過(guò)卷積后在26×26 (第23層)尺度上對(duì)小目標(biāo)進(jìn)行預(yù)測(cè),YOLOv3-tiny算法網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。

圖2 YOLOv3-tiny網(wǎng)絡(luò)結(jié)構(gòu)
傳統(tǒng)的卷積網(wǎng)絡(luò)隨著卷積層數(shù)逐漸增加導(dǎo)致參數(shù)計(jì)算量會(huì)大幅度增長(zhǎng),使用深度可分離卷積將傳統(tǒng)卷積分解為2個(gè)可分離的層,即深度方向卷積和點(diǎn)方向卷積,如圖3所示。圖3(a)是使用BN層和Relu激活層來(lái)提取特征的傳統(tǒng)卷積層,圖3(b)是深度可分離卷積層,使用3×3的卷積層將輸入的特征圖在深度方向進(jìn)行卷積分割,1×1卷積在點(diǎn)方向擴(kuò)展輸出特征圖的維數(shù),通過(guò)此方法可有效減少模型的計(jì)算量,有利于提高網(wǎng)絡(luò)收斂速度。

圖3 卷積層結(jié)構(gòu)
引入MobileNet V2中提出一種具有反向殘差的線性瓶頸結(jié)構(gòu),與深度可分離卷積相比,其中包括1×1卷積額外的加法計(jì)算量[24]。如圖4所示,圖4(a)為傳統(tǒng)的殘差卷積結(jié)構(gòu),是先降維提取圖像特征再放大,圖4(b)為深度可分離反殘差塊結(jié)構(gòu)。首先,通過(guò)1×1卷積運(yùn)算放大特征圖的維數(shù);然后,使用3×3的卷積在深度方向提取高維空間緊固件特征,再用1×1點(diǎn)方向的卷積減小特征圖的維數(shù)[25]。該模塊的詳細(xì)參數(shù)如表1所示,對(duì)于輸入尺寸為h×w×k的特征圖,通過(guò)擴(kuò)展通道進(jìn)行1×1卷積得到更多的緊固件特征,同時(shí)使用3×3深度方向的卷積提取高維特征并降低計(jì)算量,然后通過(guò)1×1點(diǎn)方向的卷積運(yùn)算生成尺寸為h/s+w/s+kout的特征圖。擴(kuò)展因子t用于通過(guò)卷積層的運(yùn)算放大輸出通道。輸入和輸出通道分別為k和kout。

圖4 殘差結(jié)構(gòu)

表1 反殘差模塊參數(shù)
為解決YOLOv3-tiny算法對(duì)軌道緊固件漏檢率高、準(zhǔn)確率低的問(wèn)題,在原YOLOv3-tiny網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,用深度可分離卷積和具有反向殘差的瓶頸卷積進(jìn)行改進(jìn),以減小細(xì)微特征的丟失,從而提高緊固件檢測(cè)精度,同時(shí)減小內(nèi)存消耗[26]。改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。首先,輸入層是大小為416×416的緊固件圖像,骨干網(wǎng)絡(luò)使用傳統(tǒng)卷積和具有反向殘差的瓶頸結(jié)構(gòu)組合來(lái)提取緊固件的輸入粗粒度特征,用步長(zhǎng)為2的具有反向殘差的瓶頸卷積代替最大池化層進(jìn)行下采樣,降低特征圖的維數(shù),并減少了骨干網(wǎng)權(quán)重參數(shù)的數(shù)量。此外,在檢測(cè)層采用深度可分離卷積提取緊固件的深度特征,減少了計(jì)算量,然后,采用上采樣使特征圖加倍,并在骨干網(wǎng)絡(luò)中連接相同大小的特征圖,最后,生成3個(gè)Yolo檢測(cè)層來(lái)進(jìn)行軌道緊固件檢測(cè)。

圖5 改進(jìn)的YOLOv3-tiny網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3-tiny算法的損失函數(shù)由目標(biāo)框坐標(biāo)的回歸損失、置信度和類別概率誤差構(gòu)成,其損失函數(shù)如下
LOSS=Ecoord+EConfidence+Eclass
(2)
式中,Ecoord為采用均方誤差(MSE)作為目標(biāo)框坐標(biāo)回歸過(guò)程損失函數(shù),Econfidence和Eclass為置信度和類別概率誤差上采用交叉熵。
交并比(Intersection Over Union,IOU)是一種常用度量距離的標(biāo)準(zhǔn),在目標(biāo)框坐標(biāo)回歸過(guò)程中度量預(yù)測(cè)邊界框和真實(shí)目標(biāo)框之間的交集,但在預(yù)測(cè)框和目標(biāo)框之間沒(méi)有交集時(shí),無(wú)法繼續(xù)用IOU進(jìn)行度量評(píng)估,同時(shí)IOU無(wú)法區(qū)分預(yù)測(cè)框與目標(biāo)框之間的對(duì)齊方式,當(dāng)二者IOU相同而檢測(cè)效果卻有很大不同。因此,采用GIOU作為目標(biāo)框定位回歸過(guò)程損失函數(shù),GIOU引入了一個(gè)懲罰項(xiàng),在二者沒(méi)有交集時(shí),GIOU仍可計(jì)算梯度,此時(shí)梯度不為零,并繼續(xù)優(yōu)化模型。GIOU的損失函數(shù)計(jì)算公式如下
(3)

(4)
LGIOU=1-GIOU
(5)
式中,A、B分別為目標(biāo)框和預(yù)測(cè)框的面積;C為兩個(gè)邊界框均包含的最小面積,可知當(dāng)預(yù)測(cè)框和目標(biāo)框越重合時(shí),C的大小越接近A∪B,則GIOU的值越和IOU相等。
本文實(shí)驗(yàn)環(huán)境為:NVIDIA GTX 2060 SUPER 8G顯卡;i5-10500CPU;基于Darknet深度學(xué)習(xí)框架;Cuda10.0,Cudnn7.6.5加速;模型開(kāi)始訓(xùn)練階段,權(quán)重衰減系數(shù)為0.000 5,動(dòng)量系數(shù)為0.9,批量設(shè)置為64,初始學(xué)習(xí)率設(shè)置為0.001,總的迭代次數(shù)為52 000次,在41 600次迭代之后學(xué)習(xí)率設(shè)置為0.000 1,46 000次迭代之后設(shè)置為0.000 01,在Ubuntu18.04 Linux操作系統(tǒng)改進(jìn)的算法進(jìn)行訓(xùn)練。
目前,鐵路系統(tǒng)軌道線路緊固件分為無(wú)砟軌道使用的Vossloh-300型、WJ-8型和WJ-7型緊固件,有砟軌道使用的WJ-2型和WJ-5型緊固件。本次研究的主要是有砟軌道WJ-2型緊固件,數(shù)據(jù)集采集于蘭州某車站區(qū)間有砟軌道緊固件1500張圖像作為數(shù)據(jù)集,如表2所示。數(shù)據(jù)集分為訓(xùn)練集(60%)、驗(yàn)證集(20%)和測(cè)試集(20%)共3部分,分別包括900、300和300幅圖像,使用名為L(zhǎng)abelImage標(biāo)記軟件,通過(guò)標(biāo)記緊固件的特定位置來(lái)生成真實(shí)邊界框,并將其轉(zhuǎn)化為類似PASCAL VOC和COCO格式的標(biāo)準(zhǔn)數(shù)據(jù)樣式,以用于訓(xùn)練和測(cè)試,如表3所示,數(shù)據(jù)集中有5505個(gè)緊固件真實(shí)邊界框,分別有4 425個(gè)正常緊固件和1 080個(gè)異常緊固件。

表2 數(shù)據(jù)集中不同緊固件尺寸和比例

表3 數(shù)據(jù)集中不同緊固件數(shù)量
為更好地評(píng)估改進(jìn)算法,使用不同的評(píng)估指標(biāo)來(lái)評(píng)估本文所提出的網(wǎng)絡(luò)模型的性能,包括平均精度(AP)、平均精度均值(mAP)、檢測(cè)速度(FPS)和模型大小。AP是用于計(jì)算每一類的預(yù)測(cè)精度,其值為Precision×Rcall曲線(即P-R曲線)與坐標(biāo)軸的面積,mAP是每個(gè)類別的AP值的平均值,計(jì)算公式如下。

(6)

(7)
式中,P(R)為P-R曲線;C為類別數(shù)。準(zhǔn)確率Precision和召回率Rcall的計(jì)算公式為
Precision=TP/(TP+FP)
(8)
Rcall=TP/(TP+FN)
(9)
式中,TP、FP和FN分別為模型正確檢測(cè)出緊固件數(shù)量、模型沒(méi)有檢測(cè)出緊固件數(shù)量和模型錯(cuò)誤檢測(cè)出緊固件數(shù)量。FPS用于評(píng)估模型的檢測(cè)速度,模型大小用于測(cè)量模型的內(nèi)存消耗。F1分?jǐn)?shù)(F1-score)是將準(zhǔn)確度和召回率二者相結(jié)合加權(quán)計(jì)算,由于精確度和召回率之間的矛盾特性,作為一種評(píng)估網(wǎng)絡(luò)分類性能的綜合評(píng)估指標(biāo),其計(jì)算公式為
(10)
使用不同檢測(cè)網(wǎng)絡(luò)的緊固件檢測(cè)的P-R曲線如圖6所示,其分別顯示了正常和異常緊固件檢測(cè)精確度和召回率之間的趨勢(shì)。從圖6可以看出,與YOLOv3-Tiny相比,改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)在查全率和查準(zhǔn)率有更好的表現(xiàn),在異常扣件檢測(cè)上的優(yōu)勢(shì)更加明顯。在2個(gè)網(wǎng)絡(luò)的召回率達(dá)到同一點(diǎn)之前,改進(jìn)的YOLOv3-Tiny網(wǎng)絡(luò)一直比YOLOv3有更高的準(zhǔn)確率。此外,在精度上的性能優(yōu)于YOLOv3-Tiny、YOLOv3和基于RCNN的檢測(cè)網(wǎng)絡(luò),且在目標(biāo)框坐標(biāo)回歸損失采用GIOU的網(wǎng)絡(luò)檢測(cè)精度上有較大提升,尤其是對(duì)異常緊固件的檢測(cè)。因此,該方法在保證較高召回率的情況下,對(duì)提高緊固件檢測(cè)精度有很好的效果。

圖6 不同檢測(cè)方法的P-R曲線
正常緊固件(N_F)和異常緊固件(U_F)的TP、FP、FN、準(zhǔn)確率、召回率和AP測(cè)試結(jié)果如表4所示,采用GIOU損失函數(shù)后有效提高了檢測(cè)精度,總的來(lái)說(shuō),本文改進(jìn)算法比YOLOv3-tiny高4.68%和8.03%,最后兩者的AP值分別提高到99.35%和98.26%。圖7所示為檢測(cè)結(jié)果,其中圖7(a)~圖7(e)為YOLOv3-tiny算法對(duì)緊固件檢測(cè)結(jié)果,圖7(f)~圖7(j)為改進(jìn)算法的檢測(cè)結(jié)果。圖7(a)中漏檢了右上方正常緊固件,圖7(f)中無(wú)漏檢且置信度均為1;圖7(b)中存在重復(fù)檢查且置信度較低,圖7(g)中準(zhǔn)確檢測(cè)緊固件置信度為1;圖7(c)中錯(cuò)檢為正常緊固件,圖7(h)中正確檢測(cè);圖7(d)中存在將異常緊固件檢測(cè)為正常又重復(fù)識(shí)別,圖7(i)中正確檢測(cè)并置信度較高;圖7(e)中存在錯(cuò)檢將異常識(shí)別為正常,圖7(j)中無(wú)緊固件錯(cuò)檢。可以看出,本文的改進(jìn)算法對(duì)緊固件有石頭或油污遮擋時(shí),均具有良好的檢測(cè)效果,表明改進(jìn)算法在現(xiàn)實(shí)鐵路軌道復(fù)雜環(huán)境均可使用,能精確檢測(cè)緊固件的缺失。

表4 緊固件測(cè)試結(jié)果AP值參數(shù)對(duì)比

圖7 緊固件檢測(cè)結(jié)果
不同緊固件檢測(cè)算法的檢測(cè)速度、mAP和模型大小如表5所示,可以看出,改進(jìn)YOLOv3-tiny的算法檢測(cè)速度明顯高于兩步檢測(cè)算法Faster R-CNN和Mask R-CNN,比YOLOv3-tiny稍低,但改進(jìn)的算法具有最高的mAP,其比YOLOv3高3.12%(采用GIOU達(dá)到3.57%),比YOLOv3-tiny高6.91%(采用GIOU達(dá)到7.36%),此外改進(jìn)算法的F1分?jǐn)?shù)比YOLOv3-tiny高8.6%,表明該模型顯著提高了召回率和檢測(cè)精度。從內(nèi)存消耗來(lái)說(shuō),改進(jìn)算法僅33.6MB,遠(yuǎn)低于Faster R-CNN、Mask R-CNN和YOLOv3,它們均需200MB以上,與YOLOv3相比,改進(jìn)后的網(wǎng)絡(luò)容量減少了86.3%,比YOLOv3-Tiny減少了0.02%,適用于搭載輕量級(jí)處理器的緊固件檢測(cè)系統(tǒng)。這些優(yōu)點(diǎn)主要是由于采用了深度可分離卷積和具有反殘差的線性瓶頸,速度和內(nèi)存消耗的提高為鐵路緊固件檢測(cè)的實(shí)時(shí)應(yīng)用奠定了基礎(chǔ)。

表5 不同檢測(cè)算法測(cè)試結(jié)果參數(shù)對(duì)比
提出一種基于YOLOv3-tiny改進(jìn)的輕量級(jí)軌道緊固件檢測(cè)算法,該網(wǎng)絡(luò)結(jié)構(gòu)包括2個(gè)關(guān)鍵部分,即深度可分離卷積和具有反向殘差的線性瓶頸,有效降低計(jì)算復(fù)雜度和模型尺寸,且降低了內(nèi)存消耗,同時(shí),增加到3個(gè)尺度和優(yōu)化損失函數(shù)來(lái)更好預(yù)測(cè)緊固件小目標(biāo)。雖然該方法能夠滿足鐵路檢測(cè)系統(tǒng)中緊固件檢測(cè)的實(shí)時(shí)性要求和較高的檢測(cè)精度,但如何在加入更多緊固件特征類型的前提下,應(yīng)用到緊固件檢測(cè)設(shè)備提高檢測(cè)速度和準(zhǔn)確率,是下一步努力的方向。