張 林,沈 拓,2,張軒雄
(1. 上海理工大學 光電信息與計算機工程學院, 上海 200093;2. 同濟大學 鐵路基礎設施和系統安全上海重點實驗室, 上海 201804)
近年來,隨著國內各個城市軌道交通的快速發展,自動化運營成為軌道交通的發展方向。自動檢測列車前方的障礙物,從而提前制動,降低行車風險非常重要。因此,國內外專家采取了不同的方法來研究列車前方的障礙物檢測。
列車運行軌道上的障礙物檢測一直都是研究熱點,早在20世紀90年代,日本在其新干線上使用相機作為圖像采集工具,利用模板匹配的方法,檢測列車前方的障礙物[1],但是,其需要依賴先驗信息。之后,眾多學者提出通過多數據融合的方案[2],提高障礙物檢測的準確性。隨著深度學習的發展,使用神經網絡進行障礙物檢測已經成為目標檢測方向不可或缺的一個分支,在自動駕駛、行人檢測等諸多場景都獲得了大規模的應用[3-4]。雖然這些方法對于大型障礙物有著良好的檢測準確率,但是,對于小型障礙物的檢測很不理想。
本文針對小型障礙物檢測效果不理想的問題,提出一種基于卷積神經網絡(convolutional neural network, CNN )的檢測算法。
城市軌道列車的運行環境復雜多變,列車既可能運行在地面,也可能運行在隧道,同時還面臨著雨雪、霧霾等惡劣天氣的影響,所以,直接用其他通用的數據來訓練模型不太合適。本文通過攝像機、網絡爬蟲等方式,建立特定的數據集來訓練模型,并通過實驗來比對各種數據集的效果。
通過以上多種方式,共采集圖像3 812張。為了提升模型的泛化能力,數據集包含不同環境下的圖像,例如:隧道內的圖像、地面運行時的圖像、光污染時的圖像及雨雪霧霾天氣下的圖像,如圖1所示。義大小型障礙物的標準[5],對數據集中大小型障礙

圖1 不同環境下的軌道圖像Fig. 1 Track images in different environments
在采集到的數據集中,依據COCO數據集定物的分布情況進行統計,統計結果如表1所示。
從表1中的統計結果來看,大小型障礙物在不同場景下的分布極不均勻,小型障礙物的數量非常少,小型障礙物對模型訓練時的損失函數貢獻小,導致小型障礙物的檢測率低下[6]。所以,本文針對小型障礙物數量少的問題,利用數據增強策略,提升小型障礙物的數量。

表1 障礙物的分布Tab.1 Distribution of obstacles %
小型障礙物檢測性能低下,主要由兩個原因導致[5]:a. 只有少數圖片包含小型障礙物;b. 即使圖中有小型障礙物,但是,小型障礙物在整幅圖中的占比很小。針對這兩大問題,采用過采樣的方法,對圖片中的小型障礙物進行過采樣,同時利用復制、粘貼的方式,提升小型障礙物的數量。
針對小型障礙物樣本數量非常少的問題,通過簡單的復制、粘貼策略,改變粘貼規則的方式來模擬實際的場景,提升小型障礙物的檢測率。針對圖中所有的小型障礙物,在隨機位置復制、粘貼多次,同時保留原始的樣本。在對小型障礙物進行粘貼之前,需要對小型障礙物的狀態作相應的規則限制。首先對待粘貼障礙物的大小進行隨機的放大或者縮小20%,同時將待粘貼障礙物隨機旋轉15°;其次,粘貼到圖中的障礙物不能覆蓋到圖中其他障礙物;最后,粘貼到圖中的障礙物必須距圖像邊緣5個像素以上。部分圖樣粘貼效果如圖2(a)和2(b)所示。

圖2 粘貼后的效果圖Fig.2 Pasted figure
在解決了小型障礙物數量少的問題之后,大小型障礙物樣本不均的問題依然沒有得到有效的解決。通過采樣法來解決樣本不均的問題,采樣法不僅能從數據的角度改變模型的閾值,而且能改變模型收斂優化等一系列過程。常見的采樣方法有欠采樣和過采樣兩種[7]。欠采樣通過在負樣本中選取一些樣本與正樣本進行結合,從而弱化數據集中負樣本帶來的影響,但是,欠采樣容易造成數據偏差、模型過擬合等一系列問題。過采樣與欠采樣正好相反,在正樣本中選取一些樣本與負樣本進行結合,強調正樣本所帶來的影響,但是對于標記錯誤的正樣本,會成倍地放大噪聲。
針對以上問題,采用SMOTE (synthetic minority over-sampling technique) 算法[8],SMOTE屬于過采樣方法,SMOTE利用插值法為少數類人工合成新樣本,然后加入到數據集中,從而解決樣本分布不均的問題。SMOTE算法流程如下:
a. 針對少數類的樣本x,以歐式距離(式(1))為標準計算該樣本到同類樣本xi的距離,獲取其k個近鄰樣本;
b. 根據樣本不平衡的比例,確定采樣的倍率N,對于每一個少數類樣本x,從其k個近鄰中選取若干個樣本,假設選取的近鄰樣本數為xn;
c. 對于每個樣本選出的xn,分別與原樣本按照式(2)構建新的樣本xnew。

式中:L表示樣本之間的歐式距離;l表示樣本所在的維度;rand函數表示在數字0~1之間選擇一個隨機數。
經過SMOTE算法進行數據平衡之后,再次統計數據集中大小型障礙物的分布,結果如表2所示。

表2 采樣結束后的障礙物分布Tab.2 Obstacle distribution after sampling %
從表2中可以清晰地看出,經過SMOTE和復制、粘貼策略之后,大小型障礙物樣本的占比保持一致,同時不含障礙物的圖片比例大幅下降,樣本平衡良好。
卷積神經網絡是一種深度前饋式的神經網絡,可以對圖像特征信息進行有效提取,同時因其模型的復雜度低、權值參數少等特征,在圖像信息提取上具有良好的效果。本文基于卷積神經網絡提出自動化檢測算法,并針對小型障礙物檢測率低的問題作相應的算法改進。小型障礙物由于體積小,在特征提取的過程中信息容易丟失,導致模型對于小型障礙物的檢測率不高。特征融合的主要目的就是在卷積神經網絡提取小障礙物特征的過程中,使小型障礙物低層的位置信息和高層的語義信息相融合,從而提升小型障礙物的檢測率。本文基于原始的Faster RCNN (fast region based CNN)骨干網絡[9]加入FPN (feature pyramid network)網絡[10],使得整個網絡模型中,低層的特征擁有高層的語義,高層的特征擁有低層的位置信息,大大提升了小型障礙物的檢測率。
卷積神經網絡應用在目標檢測領域從RCNN[11](region CNN)到Fast RCNN[12],再到Faster RCNN。RCNN算法預先找到圖中可能出現目標的區域,即候選區域(region proposal),然后再進行目標檢測,大大提升了目標檢測率,但是,由于存在大量的重復計算,所以,RCNN的檢測速度很慢。Fast RCNN針對RCNN每一個候選區域都要經過CNN進行特征提取,提出共享卷積層,直接輸入一張圖片,一次性提取所有的特征,在保證檢測準確率的同時,大大提升了檢測的速度。但是,Fast RCNN在挑選候選網絡時,使用的是選擇性搜索,非常耗時,這時Faster RCNN提出使用單獨的一個區域候選神經網絡(region proposal network,RPN)來找到候選框,并將RPN直接放在卷積層的后面,在保證檢測精度的同時,大大提升了目標檢測的速度,因此,整個Faster RCNN網絡的性能取決于RPN網絡的性能。
RPN網絡的作用就是將區域候選的過程融合到Faster RCNN網絡框架中,RPN網絡和Faster RCNN網絡共用卷積網絡,減少網絡整體的計算量。RPN網絡提取候選區域的原理如圖3所示。

圖3 候選區域網絡Fig.3 Region proposal network
RPN網絡在卷積出來的特征層上建立滑動窗口,以圖中的每個點為中心,提取出9個大小不同的候選框。利用滑動窗口進行特征提取之后,得到一個256維的特征向量,然后將此向量輸入到全連接層,輸出每個候選框分類的得分及每個候選框的坐標。
在卷積神經網絡中,不同層級的神經元擁有不同大小的感受野。低層特征擁有更小的感受野,更加關注圖片中的位置信息,相反高層特征擁有更大的感受野,更加關注圖片的語義信息。小型障礙物在圖片中占比較小,通過卷積神經網絡提取到的語義信息有限,因此,需要更加關注低層的位置信息。而在原始的Faster RCNN網絡框架中,對于目標的檢測統一使用頂層特征顯然不合適,所以,本文利用FPN網絡融合小型障礙物的位置信息和語義信息,提升小型障礙物的檢測率。
FPN網絡主要分為兩個部分,一部分是自下而上的卷積,另一部分是自上而下的采樣和橫向連接部分。自下而上的部分是主干網絡Resnet卷積過程中的一部分。在Resnet中,本文將輸出同樣特征映射的多個層歸類成一個階段。在每個階段里,最后一層擁有最豐富的特征信息,所以,選擇最后一層作為每個階段的特征輸出。通過Resnet的框架結構,將整個特征金字塔分為5個部分,由于第一層卷積占用大量內存,所以,將它單獨拿出來看,剩下的4個部分根據特征的輸出分成4個部分{C2, C3, C4, C5},每一階段相對于輸入圖片的步長分別是{4, 8, 16, 32}。
自上而下的部分使用上采樣的方法將頂層的特征擴大到和自下而上部分同一階段的大小,橫向連接利用高層的語義信息和低層的位置信息,將多種特征信息融合起來,使得低層特征擁有高層的語義信息,高層特征擁有低層的位置信息。圖4展示了特征金字塔網絡的結構設計。

圖4 特征金字塔網絡Fig.4 Feature pyramid network
從圖4中可以看出,對于頂層的特征,采用了一個上采樣的方法來融合相關階段的特征,然而不同層之間的通道維數不一致,所以,采用一個1×1的全卷積網絡來降低通道的數目,使得不同層之間可以相互連接。針對上采樣,采用了最近鄰插值算法,算法公式為

式中:Xsrc和Ysrc分別是原始像素矩陣的索引;Xdst和Ydst是采樣過后像素矩陣的索引;W和H是像素矩陣的大小。
公式完全基于圖像的像素矩陣,為了消除上采樣帶來的重疊影響,另外采用了一個3×3的卷積神經網絡,作用在特征融合的階段,而且每一個階段都有各自的回歸器和檢測器,從而達到多尺度的檢測。
在Faster RCNN的框架中,區域候選網絡作為一個獨立的檢測器,使用一個3×3的滑動窗口在主干網絡的特征層上抽取目標的特征,然后將抽取到的特征送入2個1×1的卷積網絡中進行分類和回歸。分類器負責區分圖像中的背景和障礙物,回歸器負責返回那些還有障礙物的區域。
針對FPN使用單一尺度的特征,將FPN和RPN進行結合,如圖5所示,在每層增加一個3×3的卷積和一個1×1的卷積,并且低層的特征由高層特征采樣得到。對于每一層,均采用獨立的檢測器和回歸器,所以,在每個具體的層上面,不需要多種尺度的錨框,每一階段的錨框的大小被固定,{P2, P3, P4, P5}階段的錨框大小分別是{322, 642, 1282, 2562}個像素,每個階段錨框的比例均是{1∶2, 1∶1, 2∶1}。所以,每一窗口至少有12個錨框。經過以上的改進,特征金字塔的每一個特征既擁有障礙物低層的位置信息,也擁有高層特征的語義信息,模型的性能得到了很大的改善。同時,本文使用場景不需要確定障礙物的具體類型,所以,將原Faster RCNN網絡的細分類分支進行裁剪(如圖5黃色區域),以此來達到加速檢測的目的。

圖5 特征融合網絡結構圖Fig.5 Structure diagram of feature fusion network
為了驗證算法在不同環境下的有效性,在測試時選擇不同環境下的多種圖片,包括隧道環境、地表環境、軌道交叉口環境和雨雪霧霾等場景,通過對環境背景進行分類,分成白天和黑夜兩大類。同時與當前主流的算法YOLOv3[13]及SSD[14]進行對比,驗證實驗的有效性。
Faster RCNN采用公共的Resnet作為網絡主干,使用隨機梯度下降的方法,在ubuntu16.04系統,Intel i7 4核8線程的處理器、32 GB內存和Nvidia GTX1080TI顯卡,CUDA9.0的GPU加速庫環境下進行實驗。整個訓練過程是端到端的,每一批次只有一張圖像,并且每一張圖像只生成2 000個ROIs。訓練的學習率設置為0.02,權重為0.000 1,動量為0.9,以此來加速收斂。
通過不同環境下算法檢測的準確性和算法檢測的速度來衡量實驗結果的有效性。不同算法的實驗結果如表3所示。

表3 不同算法檢測結果對比Tab.3 Comparison of detection results with different algorithms
從表3中不難看出,本文的算法在檢測率上明顯高于其他算法,同時也驗證了小型障礙物在檢測時融合位置信息和語義信息的有效性。但是,本文的算法在檢測速度上明顯低于其他算法,在以檢測率為主的基礎上,本文的算法依然具有一定的優勢。
固定抽取4種不同環境的測試圖片各20張,使用本文的算法檢測,計算各個復雜環境下的檢測率,實驗結果如表4所示。從表4中可以直觀地看出,待檢測的圖片存在噪聲干擾時,算法的檢測性能下降得較快。尤其在存在光污染的情況下,算法的檢測性能直接降到原有的一半。實際檢測的效果圖如圖6(a)和6(b)所示。

圖6 檢測結果圖Fig.6 Results of detection

表4 算法在不同環境下的效果Tab.4 Effect of the algorithm in different environments
針對當前軌道列車前方障礙物檢測,提出了使用卷積神經網絡方法,有效地提升了檢測列車前方障礙物的效率,為列車自動化運營提供了一種可行的途徑。同時針對原有目標檢測算法的小型障礙物檢測率低的問題,提出特征融合策略,利用特征金字塔網絡,將低層的位置信息和高層的語義信息進行結合,大幅提升了小型障礙物的檢測率。但是,本文的方法也有不足,在檢測速度上未能達到實時的要求,在后續的研究中將繼續提升算法的性能。