鄭英杰 李舒婷 吳松榮 劉 東 韋若禹
1(磁浮技術(shù)與磁浮列車教育部重點實驗室 四川 成都 610031)
2(西南交通大學(xué)電氣工程學(xué)院 四川 成都 611756)
城市軌道交通的建設(shè)和發(fā)展為解決交通擁堵、污染等問題提供有效途徑[1],但列車運營里程數(shù)和速度不斷增加,交通事故的發(fā)生率也隨之提升[2]。在列車運行控制系統(tǒng)中,列車的定位技術(shù)占據(jù)著非常重要的地位,因為它直接關(guān)系到列車的運行安全,從而影響著城市軌道交通整體的工作效率[3-4]。
準確和安全地定位列車是當今的一大挑戰(zhàn)[5]。目前,列車的絕對定位方法主要有軌道電路法、信標定位法、全球定位系統(tǒng)(GPS)等。其中:軌道電路法的優(yōu)點是經(jīng)濟、方便、可靠性高等,缺點是定位精度較低,且依賴于軌道長度[6];信標定位法的優(yōu)勢在于定位精度高[7],使用壽命長,但信標的布置間距與投資規(guī)模相矛盾;GPS的定位精度較高,一般誤差小于2 m,且設(shè)備體積小,維護成本低,缺點是在惡劣環(huán)境下無法對列車進行定位[8]。綜上所述,這三種列車絕對定位方法之間存在優(yōu)勢互補的情況。為能保證列車運行安全的同時,減少資金投入,現(xiàn)亟需一種低成本、高精度且抗干擾能力強的定位手段。
Hinton等[9]首次提出深度學(xué)習(xí)的概念后,卷積神經(jīng)網(wǎng)絡(luò)(CNN)就憑借著出色的表征學(xué)習(xí)能力而受到廣泛的關(guān)注。近些年來,隨著深度學(xué)習(xí)技術(shù)發(fā)展和硬件設(shè)備性能的不斷提升,一系列基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標檢測算法先后被提出。目前應(yīng)用最為廣泛的目標檢測算法分為兩大類,第一類是兩階段算法:先產(chǎn)生候選區(qū)域后再利用CNN分類,例如Mask-RCNN[10]、Fast-RCNN[11]、Faster-RCNN[12]等,該類算法對于目標的檢測準確率較高,但是檢測速度卻很慢,并不適用于軌道定位點檢測。第二類是單階段算法:直接對輸入圖像應(yīng)用算法并輸出目標的類別及其位置,比如YOLO[13]、YOLO 9000[14]、YOLOv3[15]、SSD[16]等,其檢測速度要比前類算法快得多,其中YOLOv3算法憑借又快又準的檢測性能而受到廣大學(xué)者的青睞。
本文以基于Darknet-53框架的YOLOv3算法為基礎(chǔ),實現(xiàn)對軌道路徑上具有獨立特征物體(即定位點)的識別。首先,從收集到的廣州地鐵8號線軌道圖片中選擇定位點圖片,并根據(jù)定位點目標尺寸優(yōu)化YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)及其輸入尺寸。其次,由于定位點樣本數(shù)量較少,故利用伽馬等變換手段對樣本集擴充;并使用K-means算法對訓(xùn)練集聚類分析后,通過手肘法確定了三組最優(yōu)的先驗框尺寸。最后,參考官方的網(wǎng)絡(luò)參數(shù)說明及軌道圖片特征,調(diào)整網(wǎng)絡(luò)的相關(guān)訓(xùn)練參數(shù)。實驗結(jié)果表明,改進后YOLOv3算法在召回率和檢測速度方面都有明顯改善。
為了避免因網(wǎng)絡(luò)的加深而導(dǎo)致訓(xùn)練過程中出現(xiàn)梯度消失或爆炸等情況,Redmon在YOLOv2的特征提取網(wǎng)絡(luò)Darknet-19基礎(chǔ)上,引入了殘差網(wǎng)絡(luò)(Residual Network)的跳層連接結(jié)構(gòu),即殘差單元,從而進一步加深了網(wǎng)絡(luò),最終該網(wǎng)絡(luò)包含52個卷積層和1個全連接層,并命名為Darknet-53。YOLOv3的特征提取網(wǎng)絡(luò)采用的是Darknrt-53的前52個卷積層,并不包含全連接層。YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)
Darknet-53網(wǎng)絡(luò)中包含5個殘差塊(Residual Block),每一個殘差塊由多個殘差單元(Residual Unit)組成。殘差單元結(jié)構(gòu)如圖2所示,它的輸出量(Output)等于輸入量(In)與其經(jīng)過兩個DBL單元計算后的結(jié)果之和,即殘差操作。
圖2 殘差單元結(jié)構(gòu)
其中DBL單元包括卷積運算、批量歸一化及激活函數(shù)Leaky ReLU,如圖3所示。
圖3 DBL單元結(jié)構(gòu)
YOLOv3網(wǎng)絡(luò)是利用步長為2的卷積運算對輸入圖片進行5次下采樣,且每一次下采樣后輸入圖片尺寸就會縮小2倍。在進行目標檢測時,YOLOv3借鑒了SSD的思想,分別在最后3次下采樣輸出的3個不同尺度特征圖上進行預(yù)測,這三個尺度特征圖對應(yīng)圖1中的scale3、scale2、scale1(尺度大小排列為scale3>scale2>sacle1)。小尺度特征圖可提供語義信息,且感受野大,可用來檢測大目標;大尺度特征圖提供更細粒度信息(比如位置信息等),且感受野小,可用于檢測小目標。為了能同時充分利用這二者信息,進而提高目標的檢測性能,YOLOv3通過上采樣與Route層(即拼接操作)來實現(xiàn)三個不同尺度特征圖之間的特征融合。最終模型對大、小目標都可以做出較好的檢測。
通過深度學(xué)習(xí)技術(shù)識別軌道路徑上具有獨立特征的物體(比如線路上的一排電纜組、道岔區(qū)域的特殊零件等)進而實現(xiàn)對列車的絕對定位,由于不受環(huán)境等因素影響,故定位可靠性高。同時,由于前期基礎(chǔ)建設(shè)投入小(只需收集定位點圖像),因此還能降低成本。在實際工程應(yīng)用中,可通過人工在軌道線路上布置特征物體(如形狀、顏色各異的標識牌等)。在選取好相應(yīng)的特征物體作為定位點后,每一個特征物體都應(yīng)該被給定一個絕對位置信息,且通過軟件程序設(shè)計,使每個特征物體的類別與其位置信息相關(guān)聯(lián),即當模型識別到圖片中的特征物體時,就可以通過其輸出的類別信息,判斷所要讀取的位置信息,最終實現(xiàn)列車的絕對定位。檢測流程如圖4所示。首先,利用列車底部安裝的軌道巡檢系統(tǒng)中高速相機對道床區(qū)域進行拍照;其次,將所拍攝的圖片輸入到目標檢測模型中實現(xiàn)對線路上特征物體的識別;最后,通過判斷模型輸出的類別信息來讀取該類別所對應(yīng)的位置信息。
圖4 列車位置的檢測流程
為了提高特征物體的檢出率,所選擇的特征物體尺寸不能太小,即不能是小目標,否則容易出現(xiàn)漏檢的情況?;诖饲疤?,模型只需在Darknet-53的后兩個尺度特征圖(scale1和scale2)上進行目標檢測,這樣可減少網(wǎng)絡(luò)的計算量,提高目標檢測速度,保證任務(wù)的實時性。為更進一步提高檢測速度,本文還將網(wǎng)絡(luò)輸入尺寸由默認的416×416縮小至256×256。改進后的特征提取網(wǎng)絡(luò)Darknet-53如圖5所示。
圖5 改進后的特征提取網(wǎng)絡(luò)Darknet-53
從取自廣州地鐵8號線的大量軌道圖片中收集具有獨立特征物體圖片時,發(fā)現(xiàn)其樣本數(shù)量非常少,如果直接就采用小樣本集進行訓(xùn)練,會使得最終模型在訓(xùn)練集上的檢測性能很好,但是在測試集上的表現(xiàn)就會很差,即出現(xiàn)過擬合現(xiàn)象。為了避免這種情況的發(fā)生,可通過旋轉(zhuǎn)、裁剪、調(diào)節(jié)對比度、亮度、色調(diào)、增噪,以及伽馬變換手段對樣本集進行擴充。
本文選取軌道路徑上的2個特征物體用于實驗,如圖6所示,分別是一排電纜組(1號樣本)和1個帶有粗焊縫背景的電線護套(2號樣本)。對所采集到的80幅上述特征物體圖片進行樣本擴充,得到400幅樣本,其中1號和2號樣本各占一半。選取其中的300幅作為訓(xùn)練數(shù)據(jù)集,剩余100幅用于檢測。為了保證樣本的均衡性,再選取300幅其他任意位置的軌道圖片加入到訓(xùn)練集中。最終訓(xùn)練集有600幅圖片,測試集有200幅圖片(其中的100幅圖片也是其他任意位置的)。
圖6 2個特征物體
YOLOv3算法中默認使用的先驗框(anchor box)尺寸是在COCO訓(xùn)練集的基礎(chǔ)上通過K-means聚類算法計算獲得的。如果直接使用默認的anchor box尺寸用于訓(xùn)練,不僅會對模型的檢測性能造成影響,還可能使訓(xùn)練過程長時間不收斂。故需要對自制的訓(xùn)練集重新聚類分析,得到合適的anchor box尺寸,使深度卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程更為順利,從而能夠做出更好的檢測。
本文選用K值(即先驗框數(shù)量)為1~9來分別對訓(xùn)練集中所有樣本進行聚類分析,最終得到K值與Avg IOU(平均交并比)之間的關(guān)系,如圖7所示。
圖7 K-means算法聚類結(jié)果
根據(jù)圖7中的曲線特性,本文決定通過手肘法來選取最佳的K值,即在某一個臨界點(肘部)過后曲線就逐漸趨于平緩,則該點對應(yīng)的K值就是最佳聚類數(shù)。由圖7可知,在K=3之后曲線便趨于平緩,故可認為最佳anchor boxes的個數(shù)為3,對應(yīng)的聚類中心的寬與高分別為(72,66)、(75,70)、(63,180)。
本次實驗由于涉及到深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN),相應(yīng)計算量會很大,故對硬件的配置要求較高,具體配置情況如表1所示。在硬件平臺基礎(chǔ)上,所搭建的軟件環(huán)境主要有Windows10、OpenCV3.4.0、CUDA8.0及CuDNN5.1等。
表1 實驗硬件平臺配置屬性表
在參考YOLOv3官方配置文件中的默認參數(shù)及其相關(guān)說明后,本文實驗采用如表2所示的訓(xùn)練參數(shù),可使訓(xùn)練過程能夠較為穩(wěn)定快速的進行。由于所采集的軌道圖片都是灰度圖像,故修改網(wǎng)絡(luò)的輸入通道數(shù)為1,可以減少數(shù)據(jù)冗余,使網(wǎng)絡(luò)計算過程更為集中。
表2 模型的訓(xùn)練參數(shù)表
在調(diào)整好網(wǎng)絡(luò)的訓(xùn)練參數(shù)后,再分別使用改進前后的YOLOv3算法以及相應(yīng)的擴充前后樣本訓(xùn)練集進行訓(xùn)練。在大約迭代了14 000次后,兩者模型的Avg loss(平均損失值)都下降至0.16左右。改進后的YOLOv3算法在訓(xùn)練過程中的Avg loss曲線圖如圖8所示。
圖8 Avg loss曲線圖
為了驗證樣本擴充、網(wǎng)絡(luò)參數(shù)調(diào)整及其結(jié)構(gòu)優(yōu)化對模型檢測性能的影響,本文利用2.2節(jié)所訓(xùn)練出的兩個模型分別對200幅測試集圖片進行檢測,該測試集中所包含的特征物體共有100個。從定位可靠性與實時性的角度出發(fā),選用Recall(召回率)、FPS(每秒轉(zhuǎn)輸幀)二項指標作為衡量模型性能好壞的標準。
Recall的定義如下:
(1)
式中:TP表示目標被檢測出來的個數(shù);FN表示目標沒有被檢測出的個數(shù)。
由表3可知,相較于YOLOv3,改進后YOLOv3算法的召回率(Recall)由72%提高到95%,即減少了漏檢的數(shù)目,從而提高定位的可靠性;其檢測速度FPS由45幀/s提高至76幀/s,即每一幅圖片的檢測時間現(xiàn)只需13 ms左右,這樣每小時就能處理約166 km左右的軌道圖片,可以滿足目前軌道巡檢系統(tǒng)在列車最高運行時速160 km/h下的實時檢測要求。
表3 改進前后算法的目標檢測性能對比
改進前后的YOLOv3算法在測試集上的檢測結(jié)果如圖9所示。其中:(a)、(c)是原YOLOv3算法對特征物體的檢測結(jié)果;(b)和(d)是改進YOLOv3算法對特征物體的檢測結(jié)果。對比圖9(a)、圖9(b)與圖9(c)、圖9(d),可看出改進后YOLOv3算法可檢測到原YOLOv3算法所漏檢的特征物體(電纜組、電線護套)。
圖9 改進前后算法在測試集上的檢測結(jié)果對比
為了進一步驗證改進后YOLOv3算法的性能優(yōu)勢,本文使用了文獻[12]中的Faster R-CNN算法和文獻[16]中的SSD算法進行對比,還是以Recall值、FPS這二項指標作為算法性能好壞的評判標準,其檢測結(jié)果如表4所示。
表4 不同算法的檢測結(jié)果對比
依據(jù)表4所示結(jié)果,先對比分析YOLOv3、Faster R-CNN、SSD三種算法的檢測性能。由于這三種算法使用未擴充前的訓(xùn)練集展開訓(xùn)練,訓(xùn)練集數(shù)目不足,所以網(wǎng)絡(luò)不能進行很好的學(xué)習(xí),其召回率都比較低,即漏檢率高。其中Faster-RCNN算法的召回率比YOLOv3高5百分點,但是其檢測速度只有5幀/s,遠遠不能滿足軌道巡檢系統(tǒng)的實時性要求;而YOLOv3和SSD系列算法屬于單階段算法,其檢測速度快,但是改進前YOLOv3算法的檢測速度也只能達到45幀/s,還是無法滿足實時性的要求。最后與本文算法的檢測結(jié)果進行比較,可以發(fā)現(xiàn)改進的YOLOv3算法在使用擴充的訓(xùn)練集進行訓(xùn)練后,其召回率達到95%,檢測速度為76幀/s,即在滿足實時性要求的同時,提高了列車定位的可靠性。
本文提出一種基于改進YOLOv3算法的軌道定位點檢測方法。首先,根據(jù)定位點目標尺寸來調(diào)整特征提取網(wǎng)絡(luò)Darknet-53的結(jié)構(gòu);其次,通過增噪、伽馬變換等手段對樣本集進行擴充,并對擴充后的訓(xùn)練集聚類分析得到合適的anchor box尺寸;最后,調(diào)整網(wǎng)絡(luò)的參數(shù)使訓(xùn)練過程更為穩(wěn)定快速。從實驗結(jié)果來看,改進的YOLOv3算法在召回率、檢測速度二項性能指標上都有了明顯的提升,即在提高定位可靠性的同時,達到了軌道巡檢系統(tǒng)在列車最高運行時速下所要求的實時檢測速度;且相較于Faster R-CNN和SSD算法也均表現(xiàn)出明顯的性能優(yōu)勢。但是隨著定位點類別數(shù)的不斷增加,模型可能會出現(xiàn)誤檢的情況,如何在保證模型檢測性能前提下,不斷擴大定位點類別數(shù)將是后續(xù)的主要研究方向。