張雯柏,鄭樹彬,李鵬程,郭 訓
(1.上海鐵大電信科技股份有限公司研究與發展中心,上海 200070; 2.上海工程技術大學城市軌道交通學院,上海 201620)
近20年來,根據扣件的特征及布設位置提出的定位算法較多,核心的處理前提是應用軌道扣件的空間布設表征進行定位。扣件位于鋼軌與軌枕交叉位置,鋼軌灰度沿水平方向變化,軌枕灰度沿豎直方向變化。用濾波器去除軌道圖像噪點信息,Sobel梯度檢測,將得到的黑白圖像投影到水平、豎直兩個方向;以掃描的方式對兩個方向上的圖像投影進行區域積分,篩選積分最小值定位鋼軌與軌枕的位置;再由先驗知識以及扣件與鋼軌、軌枕的相對布設條件獲得扣件坐標[1-2]。
傳統的扣件識別定位算法大多是通過灰度的顯著性差異和鋼軌、軌枕互相垂直的空間關系確定軌道位置,從而進一步確定扣件位置。這種扣件檢測思路有其局限性,要求軌道與圖像嚴格垂直,旋轉后的圖像在水平豎直方向上的投影無法反映鋼軌和軌枕的真實位置[3];鐵路軌道不僅只有直線段,還有彎道和道岔區段,在這些區域鋼軌與軌枕的空間關系并非垂直關系,故算法在該區段檢測缺少魯棒性。
本文通過對近些年來深度學習的研究,提出一種新的扣件檢測思路。利用深度學習的YOLO目標檢測算法對軌道扣件進行自動檢測與定位。網絡通過自主學習扣件特征,直接從圖像的全局信息中提取扣件特征,識別扣件位置,從本質上打破軌道部件空間關系對扣件識別算法的束縛。
卷積神經網絡(CNN)實質上是一種考慮圖像數據特征的稀疏連接型BP網絡。局部感受也保留了像素間的區域空間關系,減少了模型參數數量,加快學習速率,同時在一定程度上也減少了過擬合的可能;為了盡可能地減少參數數量與網絡規模,在模型特征提取時避免考慮特征位置,引入了共享權值的概念。其原理是,認為圖像小區域內像素聯系更加緊密,較遠的像素對當前區域影響更小,故每個神經元只收集圖像一小塊區域信息,學習圖像的局部特征,高層神經元對相鄰小塊區域圖像信息進行匯總,形成一個由小到大的整體映射[4-5]。應用在本文中,即經過訓練的底層神經元提取軌道圖像的紋理、邊緣、角點等基本特征(扣件的點、線信息),中層神經元對得到基本特征進行篩選重組等處理,得到螺母、彈條、擋板肩等部件信息,經高層神經元匯總,提取出更加復雜的扣件區域的整體特征。
卷積層、激活層、最大池化層組成了一個典型的分類卷積網絡,其中,末端接入全連接層和Softmax分類層[6]。在網絡激活層使用Sigmoid激活函數容易出現梯度飽和,為了避免該問題,本文使用與線性修正單元ReLU相類似的Leaky ReLU作為網絡的激活層。
圖像的卷積運算過程可以看成一種線性運算,多層卷積經線性變換可以化歸到單層卷積,因而這樣的卷積層只能擬合線性函數[7-8]。引入非線性變換的激活層在網絡理論上可以擬合任何函數。經試驗驗證,以線性修正單元(Rectified Linear Unit,ReLU)作為非線性激活函數可以達到更好的特征提取效果[9],ReLU函數如圖1所示。
數學定義如下

(1)
如果不再將函數輸出值域限制于[-1,1]之間,就能極大地改善深度增長與梯度消失相悖的問題,當輸入>0時輸出的梯度恒為1,克服梯度上限飽和,說明ReLU函數能夠優于Sigmoid處理梯度飽和問題。但當網絡輸入<0時,函數輸出為0,造成下限硬飽和,使得網絡權重不再更新。為避免這種情況,在隨后的實驗中本文采用ReLU函數的變種Leaky ReLU

(2)
其中,a為一個極小值(如0.01),其主要目的是當輸入為負時,輸出梯度極小但不至于為0。
在端到端檢測網絡出現之前,已經存在R-CNN、Fast R-CNN等算法使用分類器對目標物體進行檢測。核心思想是將檢測任務考慮為目標分類問題,在圖像中提出大量候選框,用分類器依次對候選框內容進行判斷[10-11]。分類器思路將目標檢測劃分為多個模塊,每個模塊都需要大量計算,耗時較長,無法達到實時檢測,且由于各塊獨立無法做到系統的全局最優化。
YOLO(You Only Look Once)是由Girshick Redmon于2016年提出的一種針對目標識別的新算法。其核心思想是:將檢測任務考慮為回歸問題,利用全局信息直接對目標的Bounding Box和類別進行預測,實現單個CNN網絡的端對端檢測[12]。能夠做到全局優化,在滿足較高mAP(Mean Average Precision,平均精度均值)的同時極大提高檢測速度。YOLO檢測流程見圖2。
(1)將圖像劃分為S×S個網格。若待識別目標的中心包含在某格中,則此格應該對該目標進行回歸預測。
(2)每個網格預測B個邊框。每個邊框預測x:邊框中心點的橫坐標;y:邊框中心點的縱坐標;w:邊框的寬度;h:邊框的高度;confidence:邊框的置信度得分等5個值。confidence評分包括網格所包含目標的置信度以及網格信息預測的精準度,數學表達式如下

(3)

圖2 YOLO流程架構模型

圖3 YOLO網絡結構
(3)每個網格最多只能包含一個目標,用Pr(class|object)表示(即在目標存在的條件下屬于每種類別的概率),預測該目標屬于C個類別的概率值。例如,網絡對20種目標進行分類,網格預測其包含的目標屬于各個類別的概率值。
(4)損失函數
采用均方和誤差整合位置誤差、類別誤差作為損失函數(即網絡輸出的S×S×(B×5+C)維向量與標注圖像的對應S×S×(B×5+C)維向量均方和誤差)[13]。計算公式如下
(4)
其中,coordError是位置相關誤差,iouError是邊框置信度誤差,classError是目標類別誤差。將上式展開后為

(5)

(5)檢測階段,將邊框置信度和網格類別概率相結合,得到邊框含有某一特定類別目標的置信度。計算公式如下

(6)
YOLO的網絡結構與Googlenet類似,共有24個卷積層和2個全連接層組成。其中,前24層卷積層網絡用于特征提取,輸出S×S×(B×5+C)維向量[15]。網絡信息如表1所示。

表1 YOLO網絡信息
硬件環境:CPU Intel(R) Core(TM)i7-7700HQ @2.80GHz;內存16G;GPU卡NVIDIA GeForce 940MX。
實驗使用的數據集包含210張軌道圖像,其中100張訓練,60張驗證,50張測試。
實驗使用的軌道圖像數據來源于上海市龍陽路軌道實訓基地的實拍圖,考慮到攝影角度和光照條件的變化,以及樣本多樣性等因素,圖像采樣標準如表2所示。

表2 數據采集統計
使用開源標注軟件精靈標注助手(Colabeler)對扣件類別及位置進行標注,該軟件目前支持在Windows/Mac/Linux平臺下運行。標注結果為Pascalvoc的xml文件,其文本格式化信息如圖4所示。

圖4 圖像標注信息
基于TensorFlow構架構建32層的卷積網絡[16-17],其中包含24個卷積層、4個最大池化層,3個全連接層。

圖5 網絡結構代碼
網絡輸出層預測扣件的概率及其坐標范圍,網絡結構代碼見圖5。對預測框的高度和寬度、圖像的高度和寬度進行歸一化處理,取值區間在[0,1]之間;激活層改用帶泄露修正線性單元(Leaky ReLU)函數,使得當輸入為負時導數不至于為0,減少神經元靜默情況的發生。同時,不包含目標的預測框置信度為0,在回歸迭代時,其梯度更新相對于包含目標的預測框更加劇烈,易造成模型不穩定,網絡發散[18]。因此,調整損失函數中預測框坐標損失及不包含目標的預測框置信度的權重,即增加坐標預測權重,降低不包含目標的預測框置信度權重。本實驗令λcoord=5,λnoobj=0.5。

(7)
設置網絡訓練參數。每次訓練8幅圖像(BatchSize=8)。學習速率參數收斂速度,速率過大,容易使梯度下降過程中迭代值越過最優值,網絡難以收斂甚至發散[19];速率過小使得梯度下降過程中步長過小,算法收斂時間過長,也容易陷入局部最優值。本實驗訓練速率設置如表3所示。

表3 訓練次數與學習率
由于原始訓練數據有限,在數據預處理階段進行數據增強,隨機將原始圖像的灰度值增加[-50,50],將原始圖像的拍攝角度旋轉[-10,10];同時對目標數據進行歸一化處理,將像素灰度值[0,255]轉換到[0,1]區間[20]。
統計50幅軌道圖像的檢測結果,檢測正確率為94%,檢測速度達到54 fps(幀/s)。如圖6所示,當攝影角度為垂直攝影,同時扣件圖像清晰無遮擋,網絡檢測效果理想(如圖6(a)、6(b)、6(c)、6(d)所示);當扣件圖像被部分遮擋(如圖6(e)),網絡對該扣件無輸出;當扣件在圖像中像素占比小(即相比于圖像大小,目標極小,如圖6(f)),網絡輸出誤差較大。其原因在于YOLO的每個網格只能預測一個目標,當多個較小的目標物體位于同一個網格時,網絡預測不準確。最終結果顯示,YOLO扣件檢測算法能夠達到實時檢測的要求,但是誤檢率較高(達到6%),分析誤檢圖像可知,當扣件存在部分遮擋或檢測目標的像素量占比極小(如檢測結果圖6(f)),算法魯棒性差。考慮到實際中相機與軌檢車為剛性連接,相機聚焦與拍攝角度固定,可以排除獲得此兩種圖像的情況,因此YOLO卷積網絡能夠滿足實時檢測的需要。

圖6 YOLO卷積神經網絡扣件檢測結果
(1)針對基于軌道布設關系的已有扣件定位算法受攝影角度、光照條件影響大,在彎道和咽喉道岔集中區域魯棒性差的問題,提出了應用YOLO卷積神經網絡定位軌道扣件的算法,從根本上避免軌道布設對檢測算法的約束。實驗結果表明,該算法對光照條件改變的魯棒性強,在陰雨及晴天光照條件下,網絡輸出準確;同時算法要求攝影角度在75°~90°范圍內(即扣件無遮擋)。猜測該現象是由訓練數據的不平衡造成的,提高遮擋扣件在訓練集的比重有望提高算法性能。
(2)算法將軌道圖像劃分為7×7的網格,根據相鄰共享關系,每個網格負責預測兩個邊界框,通過對邊界框的位置信息、長度信息、高度信息進行回歸檢測,輸出扣件位置;同時網絡改用Leaky-ReLU作為激活函數,保證網絡梯度傳遞,減少神經元靜默情況的發生。
(3)通過檢測上海市龍陽路軌道實訓基地實拍圖,檢測結果表明,在保證相機與軌檢車剛性連接,相機對軌道拍攝角度固定的情況下,基于YOLO的卷積神經網絡定位扣件速度快(平均速度為54 fps),檢測結果穩定(準確率為94%),達到了實時檢測要求。