麻哲旭,楊 峰,2,喬 旭
1.中國礦業(yè)大學(北京)機電與信息工程學院,北京100083
2.中國礦業(yè)大學 煤炭資源與安全開采國家重點實驗室,北京100083
截至2019 年底,我國鐵路里程達到13.9 萬公里以上,居世界第一位。隨著鐵路技術的快速發(fā)展,鐵路路基病害影響鐵路安全運營的問題日漸突出,其中路基下沉和翻漿冒泥尤為常見[1]。車載地質(zhì)雷達檢測方法以其輕便快捷、抗干擾能力強、分辨率高、快速無損等優(yōu)點,已成為各國鐵路路基檢測的一種常用工具[2-4]。圖1 為車載地質(zhì)雷達檢測青藏鐵路路基現(xiàn)場照片。如圖2 所示為采集地質(zhì)雷達檢測數(shù)據(jù)需要借助的車載地質(zhì)雷達控制系統(tǒng)。鐵路路基車載地質(zhì)雷達的檢測數(shù)據(jù)量非常龐大,平均每30公里產(chǎn)生約23 GB 的地質(zhì)雷達數(shù)據(jù),然而,目前對于地質(zhì)雷達數(shù)據(jù)的解釋仍以人工為主,效率低,無法形成統(tǒng)一標準,且依賴于經(jīng)驗豐富的專家。因此,如何對鐵路病害進行自動識別,提高識別的效率和精度具有重要意義。
圖1 青藏鐵路路基車載地質(zhì)雷達
圖2 車載地質(zhì)雷達控制系統(tǒng)
目前對于鐵路路基病害的識別算法研究主要分為對探地雷達B-scan 剖面顯示圖像和A-scan 單道數(shù)據(jù)進行對比識別兩種。其中針對探地雷達B-scan 剖面顯示圖像的識別方法大多基于雷達圖像剖面灰度圖,針對灰度圖像人工設計病害特征,隨后將特征利用支持向量機、淺層神經(jīng)網(wǎng)絡等分類算法訓練,得到雷達圖像識別結果。鐵路路基病害的形態(tài)和尺寸多種多樣,人工設計的特征無法充分提取路基病害特征,SVM(支持向量機)和淺層神經(jīng)網(wǎng)絡[5-7]識別精度難以滿足實際應用需要。隨著深度學習在圖像分類任務[8-10]中取得廣泛成功后,基于卷積神經(jīng)網(wǎng)絡的圖像分類算法開始被應用到鐵路路基病害分類任務[11],但單純對病害圖像進行分類無法給出病害具體位置。近年來,許多基于卷積神經(jīng)網(wǎng)絡的方法應用到目標檢測任務中,這些方法可以分為基于候選區(qū)域的雙階段檢測方法(Two-stage)和基于回歸單階段檢測方法(One-stage)兩大類?;诤蜻x區(qū)域的雙階段檢測方法主要為R-CNN[12]系列算法,例如SPP-Net[13]、FastR-CNN[14]、Faster R-CNN[15]和Cascade R-CNN[16]等。這些方法使用選擇性搜索[17]與區(qū)域建議網(wǎng)絡[15]產(chǎn)生物體建議框,導致具有較高的計算復雜度。Faster R-CNN和Cascade R-CNN算法開始應用于鐵路路基病害檢測任務中[18-19],但由于探地雷達數(shù)據(jù)屬于海量數(shù)據(jù),該方法無法實現(xiàn)實時檢測,且對大尺度路基病害檢測效果不佳。
為了在保障精度的同時能兼顧檢測速度,一些通過使用卷積神經(jīng)網(wǎng)絡直接預測不同目標類別與位置的方法被提出。這類方法被稱為端到端的單階段檢測方法,具有檢測快速,可以從圖像中直接回歸出檢測結果的特點,主要包括YOLO[20]、SSD[21]、YOLOv2[22]與YOLOv3[23]等。YOLOv3的性能在精度上最佳,但由于YOLOv3在512×512 的輸入分辨率下最小特征圖尺寸為16×16,相比SSD 的最小特征圖尺寸較大,導致YOLOv3 對一些大尺寸物體的檢測效果不佳,難以檢測大尺度的鐵路基病害。
由于檢測算法的復雜性,算法實現(xiàn)實時檢測往往需要昂貴的計算資源。為了滿足在嵌入式平臺上的實時檢測需求,一些輕量化的目標檢測算法被提出,如Tiny YOLOv2、Tiny YOLOv3,分別對應YOLOv2和YOLOv3的精簡版本。其中,Tiny YOLOv3 的檢測速度比Tiny YOLOv2略低,精度上優(yōu)于Tiny YOLOv2。由于對模型進行了精簡,輕量化YOLO 模型檢測精度不及原始版本,但檢測速度較快。Tiny YOLOv3 模型主要由卷積層和池化層構成,沒有殘差結構,只使用兩個不同尺度的輸出層。鐵路路基病害的形態(tài)復雜,輕量化YOLO模型雖滿足實時檢測的需要,但由于特征提取網(wǎng)絡較淺,不能充分提取病害特征。輕量化的卷積神經(jīng)網(wǎng)絡模型適合嵌入式工程中的應用,雷達數(shù)據(jù)后期處理對于準確率要求較高,一旦發(fā)生錯檢和漏檢,不利于后續(xù)的鐵路路基病害整治。
綜上所述,現(xiàn)有的鐵路路基病害檢測方法可分為人工設計特征與傳統(tǒng)機器學習分類算法結合、利用基于候選區(qū)域的卷積神經(jīng)網(wǎng)絡進行識別。人工設計特征無法充分提取鐵路路基病害特征,傳統(tǒng)的機器學習分類算法難以應對復雜的路基環(huán)境,而基于候選區(qū)域的卷積神經(jīng)網(wǎng)絡無法實現(xiàn)實時檢測,難以滿足工程需要。
如圖3所示,本文對YOLOv3網(wǎng)絡結構進行改進以適應鐵路路基病害特點,提出了LS-YOLOv3 檢測模型。針對特征圖尺度偏大的特點設計了深度殘差網(wǎng)絡來更好地提取鐵路路基病害特征,并利用深度殘差主網(wǎng)絡特征圖構建4 個尺度上的特征金字塔,在512×512 輸入分辨率下使YOLOv3 的最小特征圖從16×16 縮小為8×8,從而使網(wǎng)絡有更大的感受野,并在4個尺度上與深度殘差網(wǎng)絡進行特征融合,形成鐵路路基病害實時檢測模型。提出的LS-YOLOv3模型可以針對鐵路路基病害特點更好地檢測,在保證精度的同時極大地縮短了檢測時間,可以實現(xiàn)鐵路路基病害在高性能GPU 計算平臺上的實時檢測。
圖3 提出的LS-YOLOv3網(wǎng)絡結構示意圖
本文提出的鐵路路基病害實時智能檢測方法流程為:首先,對車載探地雷達獲取的鐵路路基病害B-scan剖面灰度圖標注病害位置和病害類別,生成標注文件,并劃分數(shù)據(jù)集為訓練集和測試集;為了避免過擬合并提升模型性能,采用了混合(mixup)[24],隨機翻轉和隨機裁剪的方式對訓練集數(shù)據(jù)進行擴充;隨后,使用LSYOLOv3網(wǎng)絡預測鐵路路基病害位置坐標、類別和置信度,具體方法如下:設計了深度殘差網(wǎng)絡提取雷達圖像病害特征,并將其分成4個分支,在4個尺度上與深度殘差網(wǎng)絡進行特征融合,形成多尺度預測網(wǎng)絡并輸出預測的邊界框,利用非極大值抑制的方法剔除重復的邊界框,通過梯度下降法迭代計算獲得鐵路路基病害檢測模型;最后,使用均值平均精度(mAP)和每秒傳輸幀數(shù)(FPS)兩項指標評價模型,選擇最佳的模型檢測路基病害,得到鐵路路基病害檢測結果。
車載地質(zhì)雷達探測以電磁波在有耗介質(zhì)中傳播規(guī)律為理論基礎,利用天線向鐵路路基中發(fā)射高頻率、寬頻帶的短脈沖電磁波。鐵路路基是由級配碎石、空氣、路基土、水等不均勻介質(zhì)構成[5],這些不同的介質(zhì)之間會形成介電性質(zhì)不同的界面。病害路基與正常路基在含水量和形態(tài)上有所不同,同時存在界面混雜,路基深部結構的介電性質(zhì)也會發(fā)生變化。電磁波在遇到介電性質(zhì)不同的介面時,會發(fā)生反射和透射,雷達接收機的天線可以接收反射的電磁波;透射的電磁波會繼續(xù)向路基深部傳播,當再次遇到介電性質(zhì)不同的界面時又發(fā)生反射和透射;地面上的接收機天線通過不斷接收反射信號即可獲得一道雷達數(shù)據(jù),當車載地質(zhì)雷達在沿測線移動時,通過組合多道雷達數(shù)據(jù),就會形成一張雷達剖面圖。
如圖4所示,通過車載地質(zhì)雷達對鐵路路基進行實地探測掃描,從而獲得了鐵路路基B-scan 剖面灰度圖。鐵路路基地質(zhì)構造復雜,路基病害形狀和尺寸各異,對于病害的識別需要借助有豐富經(jīng)驗的專家。如圖5 所示,通過專家對雷達數(shù)據(jù)進行解釋并標注翻漿冒泥和路基下沉兩種病害。圖6和圖7為典型的翻漿冒泥病害和路基下沉病害雷達圖。對于專家也無法準確判斷的鐵路路基病害圖,將其從數(shù)據(jù)集中剔除。通過專家判斷并人工標注,構建了鐵路路基病害數(shù)據(jù)集,數(shù)據(jù)集中共有鐵路路基病害圖403張,其中翻漿冒泥261處,路基下沉279處,由于一張鐵路路基病害圖中可能含有多種病害,故樣本總計數(shù)目小于各類別樣本數(shù)目的和。鐵路路基病害數(shù)據(jù)集中的數(shù)據(jù)分布如表1所示。
圖4 車載地質(zhì)雷達實地探測
圖5 專家解釋雷達數(shù)據(jù)
圖6 翻漿冒泥病害
圖7 路基下沉病害
表1 鐵路路基病害數(shù)據(jù)集中數(shù)據(jù)分布
為了避免過擬合并提升模型性能,類似于光學影像中混合(mixup)[24]的數(shù)據(jù)擴充的方法,對訓練集數(shù)據(jù)進行了擴充,具體的擴充方法為:
其中,(pi,li)和(pj,lj)為從訓練集中隨機選取的樣本,pi和pj為擴充前的病害圖,li和lj為擴充前標簽中病害類別信息,x~ 為擴充后的病害圖,為擴充后的標簽信息,α為混合系數(shù),其取值范圍在0到1之間。擴充結果如圖8所示。同時,在訓練過程中采用隨機翻轉和隨機裁剪的方式進行數(shù)據(jù)擴充。通過擴充數(shù)據(jù)集可以使卷積神經(jīng)網(wǎng)絡擁有更好的魯棒性,提高識別精度。
圖8 混合(mixup)擴充方法
網(wǎng)絡的深度越深,往往精度就越高,為了使深層卷積神經(jīng)網(wǎng)絡更加容易訓練,有關學者提出了殘差網(wǎng)絡(ResNet)[25]。如圖9 所示,在殘差網(wǎng)絡中采用殘差塊結構,每隔三層使用一次快捷連接(shortcut connection),把第一層的輸出特征加至第三層特征層中,使網(wǎng)絡在反向傳播過程中梯度不會為0,更加有助于神經(jīng)網(wǎng)絡中的信息流動,且易于訓練。
圖9 殘差塊
圖10 設計深度殘差網(wǎng)絡提取鐵路路基病害特征
針對鐵路路基病害通常尺度較大的特點,LS-YOLOv3設計了深度殘差網(wǎng)絡提取鐵路路基病害特征,其具體結構如圖10 所示。在深度殘差網(wǎng)絡中,第一個卷積層利用32 個3×3 大小的卷積核對分辨率為512×512 分辨率的雷達圖像進行卷積,得到512×512×32維度的輸出;隨后,用64個3×3大小的卷積核對上層網(wǎng)絡的輸出進行步長為2 的下采樣操作,并在其后添加殘差塊,得到256×256尺寸的特征圖;然后,對上層輸出再進行步長為2的下采樣操作,并添加了多組殘差層。在深度殘差網(wǎng)絡中,總共進行了6 次下采樣操作,所以深度殘差網(wǎng)絡的輸入分辨率應為64 的倍數(shù)。在所有的卷積層上,均添加了批量標準化層(batch normalization layer)[26]。
另外,在第4章中,LS-YOLOv3選取分辨率為64×64、32×32、16×16、8×8的特征圖構成特征金字塔[27],對特征圖上采樣并進行特征融合,并在四個尺度上分別進行病害檢測。
與Darknet-53相比,設計的深度殘差網(wǎng)絡可以更好地提取雷達病害特征,實驗表明針對鐵路路基病害雷達圖像,LS-YOLOv3顯著地提高了模型性能,詳見第4章。
LS-YOLOv3 采用多尺度預測網(wǎng)絡在4 個尺度的特征圖上回歸鐵路路基病害的類型和位置。如圖3 右側部分所示,在深度殘差網(wǎng)絡中將8×8、16×16、32×32、64×64的特征圖分成4個分支并進行特征融合,其中4個分支均可檢測病害,以適應不同尺度病害的檢測。在4個分支中,均添加了卷積層,并對分辨率為8×8、16×16、32×32 的分支進行2 倍大小的上采樣操作,從而使上采樣后的數(shù)據(jù)可以進行特征融合。對3 個分辨率下的上采樣數(shù)據(jù)進行了級聯(lián),使不同分支中可以共享多個尺度下的語義信息,并對深度殘差網(wǎng)絡中提取的特征進行特征融合,增強了網(wǎng)絡的預測能力。
對于每張輸入的雷達病害圖,預測一個包含病害邊界框位置、病害類型和病害置信度的三維張量。具體地,LS-YOLOv3將特征圖劃分成N×N的網(wǎng)格(不同尺度的特征圖,N大小不同),網(wǎng)絡通過預測病害位置相對于網(wǎng)格的坐標偏移量從而得到病害的實際位置坐標,即預測4個坐標:tx、ty、tw、th,其定義如下:
其中,cx和cy表示一個網(wǎng)格與圖像左上角的橫縱距離,pw和ph表示錨點框的寬和高,通過k-means 聚類的方法對訓練數(shù)據(jù)集的邊界框做聚類得到。
為每個網(wǎng)格預測3個不同的邊界框,其輸出的維度為N×N×(3×(4+1+2)),即4 個邊界框的偏移量,1 個病害置信度和2個病害類型。最后,通過非極大值抑制的方法剔除重復的檢測框,得到最終的鐵路路基病害檢測結果。
表2 不同方法在測試集上的檢測結果
本實驗在Linux(Ubuntu18.04)系統(tǒng)環(huán)境下基于TensorFlow深度學習框架[28]實現(xiàn),在配置有英特爾酷睿i7-7800X CPU,英偉達GeForce RTX 2080Ti GPU,16 GB內(nèi)存的PC機上運行。
在相同的尺度下訓練模型,將鐵路路基雷達圖像縮放到512×512像素輸入卷積神經(jīng)網(wǎng)絡,由深度殘差網(wǎng)絡提取鐵路路基病害特征,使用4個不同尺度的卷積特征圖預測病害的位置坐標、類型和置信度。通過k-means聚類的方法對訓練數(shù)據(jù)集進行聚類自動產(chǎn)生錨點框,LS-YOLOv3 使用4 個尺度12 個錨點,分別為:(100×120)、(152×150)、(155×38)、(212×95)、(243×53)、(314×39)、(316×132)、(346×71)、(481×55)、(616×36)、(663×82)、(904×49)。
由于訓練集樣本較少,在實驗中首先加載Darknet-53[23]在COCO 數(shù)據(jù)集[29]上的預訓練模型用來初始化深度殘差網(wǎng)絡中的參數(shù),在此基礎上,應用自制的數(shù)據(jù)集對模型進行進一步優(yōu)化。
整個訓練過程中,訓練輪次Epoch 為500,在前50個Epoch中凍結加載的預訓練模型參數(shù),訓練深度殘差網(wǎng)絡中的后5層參數(shù)和網(wǎng)絡的預測部分進行微調(diào)(Finetune)。在50個Epoch后,解凍模型訓練全部的參數(shù)。訓練中批量大小(Batch_Size)設置為3,動量(momentum)設置為0.9,權重衰減(weight decay)設置為0.000 5,學習率初始為10-3,在第100個Epoch時減小為10-4。
本文使用均值平均精度(mAP)與每秒傳輸幀數(shù)(FPS)兩項指標評價模型。對于平均精度,選取AP50作為評價標準,即檢測框與真值框的交并比(IoU)閾值為50%。
表2顯示了HOG+SVM、Faster R-CNN、Cascade RCNN、YOLOv3、Tiny YOLOv2、Tiny YOLOv3,以及LSYOLOv3的對比實驗。LS-YOLOv3以82.67%的均值平均精度(mAP)領先其他算法,并且在512×512的輸入分辨率下FPS達到32.26 frame/s,滿足實時檢測要求。
加入了傳統(tǒng)的HOG(方向梯度直方圖)特征結合SVM分類器的算法進行對比實驗。從自制的路基缺陷數(shù)據(jù)集中裁剪出每種缺陷類型的正樣本,從非目標區(qū)域隨機裁剪出負樣本,隨后,將訓練樣本的大小調(diào)整為224×224,這與Faster-RCNN 中輸入特征檢測網(wǎng)絡的尺寸一致。選擇了線性核函數(shù)的SVM分類器以保證實時性。由于SVM 分類器是二元分類器,分別訓練了2 個線性SVM分類器用來分類提取的翻漿冒泥病害和路基下沉病害HOG 特征。在雷達圖像的檢測階段,使用224×224大小的滑動窗口進行檢測,并利用非極大值抑制的方法剔除重復的檢測框。
從表2中可以看出,傳統(tǒng)的HOG+SVM算法在鐵路路基病害數(shù)據(jù)集上獲得了34.96%的mAP,與LS-YOLOv3(82.67%)存在較大差距,且檢測速度較慢,無法實現(xiàn)實時檢測。Faster-RCNN 算法和Cascade R-CNN 算法分別獲得了65.32%與78.36%的mAP,分別比LS-YOLOv3低17.35與4.31個百分點。在速度上,F(xiàn)aster-RCNN算法和Cascade R-CNN 算法檢測速度相近,均無法實現(xiàn)實時檢測。YOLO 系列的算法均實現(xiàn)了實時性能,其中Tiny YOLOv2 與Tiny YOLOv3 的檢測速度分別達到232.24 frame/s 與208.76 frame/s,輕量化的檢測模型的檢測速度很高,適合需要在嵌入式平臺上部署模型的場景。相比于其他非輕量化的目標檢測算法,Tiny YOLOv2 與Tiny YOLOv3 的檢測精度較低,分別為45.17%和53.86%。對于鐵路路基病害檢測,較低的檢測精度不利于后續(xù)的鐵路路基病害整治。YOLOv3 算法在數(shù)據(jù)集上獲得了不錯的檢測精度并實現(xiàn)了實時檢測,這是因為YOLOv3算法相比Faster-RCNN擁有更深層的特征提取網(wǎng)絡并采用了多尺度預測,從而獲得更好的檢測結果,且沒有產(chǎn)生候選區(qū)域的步驟,可以實現(xiàn)實時檢測。
提出的LS-YOLOv3算法在檢測精度上比其他算法高,且以32.26 frame/s 實現(xiàn)了實時檢測,與YOLOv3 算法相比,LS-YOLOv3 采用了更深層次的殘差網(wǎng)絡且融合了更豐富的語義信息進行預測,所以在檢測速度上低于YOLOv3 算法。相比YOLOv3 算法,LS-YOLOv3 在翻漿冒泥病害和路基下沉病害上的準確率更高,分別領先4.05 和6.84 個百分點,說明LS-YOLOv3 可以更好地針對鐵路路基病害的特點進行檢測。LS-YOLOv3 算法在路基下沉病害上領先YOLOv3 較多,這是由于LSYOLOv3在特征提取網(wǎng)絡中擁有更大的感受野,能更好地適應路基下沉病害尺度較大的特點。
圖11 顯示了LS-YOLOv3 方法在測試集上的檢測效果。可以看到,本文提出的模型對鐵路路基翻漿冒泥病害和路基下沉病害的檢測具有較好的魯棒性。
圖11 LS-YOLOv3在測試集上的檢測效果(紅色框為路基下沉,藍色框為翻漿冒泥)
本文提出了一種鐵路路基病害智能檢測方法,在配有英偉達GeForce RTX 2080Ti GPU 的計算平臺上實現(xiàn)了實時檢測,設計了一種鐵路路基病害檢測模型:LS-YOLOv3。該方法利用混合等方法擴充數(shù)據(jù)集,針對鐵路路基的特點設計了深度殘差網(wǎng)絡提取鐵路路基病害特征,并采用多尺度預測網(wǎng)絡在4個尺度上進行特征融合,使不同尺度上的卷積特征可以共享語義信息,利用特征金字塔進行病害預測,形成鐵路路基病害實時檢測模型。與傳統(tǒng)方法和現(xiàn)有的目標檢測方法相比,LS-YOLOv3在保證實時檢測的同時達到了最大的檢測精度。在后續(xù)工作中,將實現(xiàn)對雷達原始數(shù)據(jù)的識別,并將算法推廣到其他類型鐵路路基病害的研究中。