陳雨潤,張軒雄
(上海理工大學 光電信息與計算機工程學院,上海 200093)
隨著科學技術的不斷進步,軌道交通的發(fā)展也受到了學界的高度重視,國內(nèi)在軌道交通的研究與建設上也取得了一系列可觀的成就。由于鐵路交通網(wǎng)的覆蓋網(wǎng)絡愈加復雜以及列車行駛速度的提升,軌道交通不僅在物流領域占據(jù)著舉足輕重的位置,在客運出行方面也發(fā)揮著日益重要的作用。與之相適應,社會各界對軌道交通安全性方面的要求也不斷提高。在各種軌道交通系統(tǒng)中,軌道交通事故大多是人為操作不當或列車與軌道區(qū)域內(nèi)發(fā)生障礙碰撞造成的。因此,使列車能夠主動感知障礙已成為一種趨勢。為了解決上述問題,軌道交通主動障礙物感知系統(tǒng)的基本功能之一就是軌道區(qū)域檢測,即確定列車前方的軌道區(qū)域。準確的軌道區(qū)域檢測不僅可以提供列車的精確行駛區(qū)域,還可以為檢測障礙物劃定感興趣區(qū)域。此外,準確的軌道區(qū)域檢測可以確定圖像中軌道面積的最大范圍,從而為列車提供速度推薦。因此,如何快速、準確地檢測軌道區(qū)域是本文研究的重點。
在過去的幾十年里,雖然軌道區(qū)域檢測的研究取得了豐富的成果,但仍存在許多挑戰(zhàn)亟待克服。如:在開放的軌道環(huán)境中運行,列車將面臨光線變化,主要表現(xiàn)在陰影、反射、進入隧道、與地面對比度差等方面;軌道區(qū)域除直線外,往往存在彎道較大,曲率不固定的問題;此外,多個軌道結構混亂也使得軌道區(qū)域的檢測更加困難。
盡管基于視覺的鐵路檢測方法仍然需要進行許多改進,但由于圖像信息豐富、視覺傳感器成本低,基于視覺的軌道區(qū)域檢測仍是一種有前景的方法。隨著計算機視覺的快速發(fā)展、尤其是深度學習的發(fā)展,使得利用視覺方法解決上述問題已成為可能。
目前,針對鐵路軌道區(qū)域的研究相對較少,而傳統(tǒng)的軌道區(qū)域檢測主要采用形態(tài)學的方法,提取出待檢測鐵路的軌道區(qū)域圖像和鐵路圖像的特征差異,如方向、紋理、輪廓、灰度等方面,針對差異對軌道區(qū)域進行檢測,并將結果進行閾值化處理;通過調(diào)整閾值參數(shù),分割出軌道內(nèi)區(qū)域和軌道外區(qū)域,最終配合提取的梯度特征,對真實軌道進行曲線擬合。傳統(tǒng)方法的原理,本質(zhì)上是將軌道區(qū)域檢測的研究抽象成為求解模型最優(yōu)參數(shù)的問題。文獻[4]中提出了一種通過對邊緣特征點進行聚類的檢測方法,提取出車道線的邊緣特征點,并對其進行聚類、從而擬合出車道線。文獻[5]改進了一種隨機抽樣一致性算法,實現(xiàn)軌道線識別。但此類型的算法仍然避免不了對噪聲的敏感性,在惡劣的場景下、如軌道區(qū)域模糊或受到遮擋時穩(wěn)定性不高。
近年來,隨著深度神經(jīng)網(wǎng)絡熱潮的興起,深度神經(jīng)網(wǎng)絡在軌道交通中的應用也受到研究學界的普遍青睞。雖然基于CNN 的方法通過強大的學習能力將場景理解推向了一個新的水平,但CNN 并沒有充分探索圖像行與列之間像素空間關系,而這些關系對于模型學習具有強形狀先驗、弱外觀(圖像像素)連貫性的語義對象來說是非常重要的。由于軌道線在圖像視頻中出現(xiàn)的形式一般是修長的細弧線或直線,所以需要高、低層次的特征融合來獲得大感受野的結構信息,以及精準定位細節(jié)處。SCNN改進了CNN 卷積層之間的卷積的方式,采用逐層卷積,使得上下文信息能夠在行與列之間傳遞。SCNN 的結構更適用檢測修長的連續(xù)形狀、但外觀線索較少的物體。例如,電線桿、墻壁和軌道線等,但其推理時間上也相應地有了明顯增加。VPGNet提出一個統(tǒng)一的端到端的可訓練多任務網(wǎng)絡,可以檢測到極端惡劣天氣下的消失點引導的車道和道路標記,并在其貢獻的數(shù)據(jù)集上取得了不錯的表現(xiàn)。但是此方法依賴于人工標注消失點信息,加大了研究的工作量。
為了高效解決軌道區(qū)域檢測的問題,并針對其場景復雜多變的特點,本文提出了一種多分支多尺度的軌道區(qū)域檢測算法。該方法通過對多尺度輸入的圖像進行語義分割,充分利用在編碼階段產(chǎn)生的大量特征信息,并將部分編碼后的結果進行實例分割,再融合兩分支結果得到分割的結果。方法中還加入輕量級CNN 分類網(wǎng)絡用于實例數(shù)量預測,最終得到圖像中多個軌道區(qū)域經(jīng)過分割后的實例。
本文以軌道區(qū)域為研究對象,設計了一種三分支軌道區(qū)域?qū)嵗指钌疃染矸e神經(jīng)網(wǎng)絡,模型整體結構如圖1 所示。算法基于laneNet的設計思想,將軌道區(qū)域的實例分割任務進行拆分。其中,一條分支用于語義分割,主要負責提取出軌道區(qū)域的特征;一條分支用于實例分割,主要負責在類別上區(qū)別軌道區(qū)域和背景,將特征映射到多維空間;一條分支用于對列車當前所處軌道進行預測。本文提出的多分支軌道區(qū)域檢測算法,根據(jù)語義分割分支所預測出的二值結果,提取實例分割結果中的車道線位置像素的多維特征,以實例數(shù)預測分支的結果為監(jiān)督信息,對結果進行多邊形擬合,最終得到預測的軌道預測區(qū)域。
圖1 模型整體架構Fig.1 Overall architecture of the model
語義分割分支作為整個網(wǎng)絡的主干分支,首要功能就是提取特征信息。語義分割是像素級別的分類任務,目前主流的方式是通過編碼-解碼網(wǎng)絡。FCN通過全卷積的方式保留了圖像空間信息,丟棄傳統(tǒng)CNN 的全連接層,網(wǎng)絡的輸出不再是類別標量而是heatmap。通過跳級、連接融合不同深度層的結果,即是提高模型整體的魯棒性和穩(wěn)定性。同時,F(xiàn)CN 網(wǎng)絡恢復階段采用上采樣的方式,來削減池化和卷積對于圖像尺寸所帶來的影響。語義分割分支的主體網(wǎng)絡結構由多尺度融合輸入與FCN 網(wǎng)絡結合改進的ASPP 模塊組成。在已有的軌道區(qū)域檢測研究基礎上,針對車載高清攝像頭清晰度不夠、列車嵌入式設備計算資源有限導致的精度受損、實時性較差等問題,本文語義分割分支在經(jīng)典FCN 像素級別語義分割網(wǎng)絡的基礎上進行了改進。整體采用輕量級的全卷積網(wǎng)絡,實現(xiàn)軌道區(qū)域的檢測;加入改進后的空間空洞金字塔池化模塊(ASPP)以保留上下文信息,而后又利用多尺度特征融合的方式,提高模型整體語義分割的效果。
多尺度的含義包括3 個方面:
(1)圖像輸入多尺度。網(wǎng)絡輸入圖像使用64×128 像素、128×256 像素、256×512 像素三種分辨率。
(2)串行融合多尺度。模型將淺層語義和深層語義進行跳接,將2 種尺度的信息進行融合。
(3)并行融合多尺度。通過改進空洞空間金字塔池化模塊,融合多個并行分支的特征信息。設計實現(xiàn)過程具體如下。
(1)編碼階段:首先對高分辨率、低輸入圖像進行33 卷積預提取特征,再使用ResNet 基礎模塊進行深度編碼和特征提取、并進行1/2 下采樣,同時又與經(jīng)過中分辨率預提取后的特征進行融合,融合后將以類似方式與低分辨率預提取后的特征進行融合。
(2)解碼階段:對融合特征圖使用改進后的ASPP 模塊提取深度特征的同時擴大感受野,使用反卷積進行上采樣;解碼過程中通過跳級連接的方式,融合淺層信息和原始信息,而后恢復特征圖,進而得到語義分割分支的結果。
池化是卷積神經(jīng)網(wǎng)絡中非常重要的基礎操作,能夠在保持特征圖尺度不變的情況下,增加特征圖的感受野,并減少神經(jīng)網(wǎng)絡的計算參數(shù)。在VGG這種中小規(guī)模級別的網(wǎng)絡中,常使用最大池化(max-pooling)或平均池化(average-pooling)的方式,而大型、重型規(guī)模的網(wǎng)絡中、如ResNet,往往選擇使用帶有步長的卷積來增大特征圖的感受野,但上述2 種下采樣方式均會丟失上下文的信息,最終影響模型精度??臻g金字塔池化(Spatial Pyramid Pooling)通過拼接上下多層特征圖的金字塔信息,用于進行全連接計算,在算法開銷幾乎不變的情況下,使精度得到提升。Chen 等人首次將ASPP 模塊引入到deeplab 系列中,使得在不進行下采樣的情況下能實現(xiàn)更精準的特征映射。增大了的卷積核的感受野,能夠收集到更大跨度的上下文語義信息,可以更有效地捕捉物體多尺度的特征,同時并行處理不同采樣率的空洞卷積,如此可達到加速運算目的。ASPP 模塊結構如圖2 所示。
圖2 ASPP 模塊結構圖Fig.2 The architecture of ASPP model
為了降低網(wǎng)絡的參數(shù)量、從而加速模型推理速度,本文對空洞卷積操作進行了簡化,使用采樣率8、4、2 的卷積層分別可得到31×31、15×15、7×7 尺寸的感受野,并且使用跳層連接的方式,既減少了上下文語義信息的丟失,同時也有助于模型訓練時加速收斂。改進后的ASPP 模塊如圖3 所示。
圖3 改進后的ASPP 模塊結構圖Fig.3 The architecture of improved ASPP model
Brabandere 等人提出一種基于度量學習用于實例分割的算法。研究中,訓練了CNN 神經(jīng)網(wǎng)絡并通過自定義的損失函數(shù)得到一種度量標準(Metric),其本質(zhì)是將圖像從像素空間映射到高維度空間。在高維度空間中,經(jīng)過映射后的像素點,若屬于相同的實例或者同類,則、距離接近,反之,、距離較遠,基于此將通過聚類的方式完成不同實例間的分割。為了使得圖像中同實例的像素在映射空間中的向量相互接近,不同實例的像素在映射空間中聚類的中心點要盡可能地相互遠離。損失函數(shù)設計的原理公式如下:
其中,為實例總數(shù)(軌道線);S為該實例(軌道線數(shù)目)的像素點數(shù); x為像素點映射之后在高維空間的坐標;μ為實例像素映射后在高維空間的中心坐標;C、C表示不同的實例;‖ * ‖ 表示距離;[] =max(0,);L表示該分支總損失;L表示方差損失;L表示距離損失;L為正則項;超參數(shù)設置為δ=0.75、δ=2.0、1、0.005。
在此方法基礎上,由于語義分割分支和實例分割分支特征大部分相同,為提高網(wǎng)絡推理速度,本文將實例分割分支和語義分割分支在網(wǎng)絡初始階段的部分編碼網(wǎng)絡進行共享,使得2 個分支在分別擁有獨立編碼網(wǎng)絡結構的情況下,整體網(wǎng)絡結構相似。2個不同任務分支的最大差別在于,實例分割分支最后一層卷積所使用的卷積核個數(shù)的含義是上述方法中多維空間所代表的維度數(shù)量。經(jīng)過實驗比對,選用X=5,在五維空間下的效果最好。
軌道區(qū)域預測分支的任務,是預測出當前視頻畫面中所存在的軌道數(shù)目。為了盡可能降低網(wǎng)絡的復雜度,提高網(wǎng)絡整體的運算速度,網(wǎng)絡整體的架構選為輕量級CNN 分類網(wǎng)絡,大量采用深度可分離卷積進行計算量上的優(yōu)化,并且該分支圖像的輸入尺寸縮小為原始圖像的1/4。研究給出的網(wǎng)絡設計如圖4 所示,網(wǎng)絡的最終輸出為預測的分支數(shù)量。
圖4 實例數(shù)預測分支網(wǎng)絡圖Fig.4 Example number prediction branch network diagram
由于訓練集中的軌道線數(shù)量的分布嚴重不平衡,多數(shù)情況下結果為1。日常圖像分類的場景下,損失函數(shù)大多選擇多分類交叉熵函數(shù)(cross entropy,CE)函數(shù),如下所示:
針對上述問題,本文對交叉熵函數(shù)引入正則項,避免部分標簽擁有過高的置信度,增加類別的內(nèi)聚,減少類間耦合。經(jīng)過修正后的函數(shù)如下所示:
其中,為修正系數(shù)。修正后的損失函數(shù)使用標簽平滑(Label Smoothing)技術,該技術在圖像分類任務上表現(xiàn)優(yōu)秀,結合本文方法的特點,本分支選用的損失函數(shù)為修正后的交叉熵損失函數(shù)。
網(wǎng)絡輸出及擬合后輸出如圖5 所示。通過本文的方法可以很好地提取出鐵路區(qū)域,但此時的區(qū)域邊緣并不是特別精確(參見圖5(b)),需要加以改進,其效果見圖5(c)。因此,本文改進了多邊形擬合方法,用于進一步優(yōu)化軌道區(qū)域。盡管多邊形擬合方法在曲線多邊形擬合中應用廣泛,但由于鐵路區(qū)域多邊形的特殊性,且對需要擬合的鐵路輪廓有豐富的先驗知識。本文通過擬合軌道區(qū)域的2 側來簡化擬合過程,提出了一種快速多邊形擬合方法來擬合道路區(qū)域??焖俣噙呅螖M合算法圖解如圖6所示。研究實現(xiàn)步驟具體如下:
圖5 網(wǎng)絡輸出及擬合后輸出Fig.5 The output image through convolutional neural network and the output image after fitting
由圖6(a)可知,提取鐵路區(qū)域輪廓的4 個邊界點,分別用、、、表示。
從直線中找出離直線最遠的點,計算到直線的距離。如果大于預設的距離閾值,則將設置為新的邊界點。
重復步驟2,繼續(xù)尋找曲線和曲線之間的邊界點,直至找到直線的所有邊界點。以同樣的方式尋找直線之間的邊界點。最終擬合出的多邊形見圖6(c)。
圖6 快速多邊形擬合算法圖解Fig.6 Illustration of fast polygon fitting
由于對鐵路軌道區(qū)域檢測的研究相對較少,相關的開源數(shù)據(jù)集十分有限,相比之下公路交通的車道線檢測研究上就豐富很多。本文數(shù)據(jù)來源于真實的鐵路軌道實驗段線路,利用專業(yè)高清攝像頭進行錄制采集,并通過專業(yè)軟件對視頻的每一幀進行截取。一般情況下,鐵路軌道區(qū)域處于圖像的中下部分,標注時盡量使圖片內(nèi)容與真實拍攝保持一致。此外,由于所采集的視頻中部分圖像幀比較模糊,需要刪除某些無法識別的幀。最終在盡可能保證不丟失原始場景細節(jié)的條件下,總計生成1 500張原始圖像,分辨率為1 920像素×1 080像素。部分圖像數(shù)據(jù)如圖7 所示。
圖7 數(shù)據(jù)樣例Fig.7 Data samples
本文使用的圖像數(shù)據(jù)的標注,主要借鑒公路無人駕駛領域的標注方式,使用專業(yè)的標注軟件labelme,由專業(yè)人士對每張圖片的上軌道區(qū)域逐張標注,最大程度地擬合軌道區(qū)域,符合肉眼所觀察的效果。此后,將標注點的坐標與每張圖片逐一對應,保存為數(shù)據(jù)-標簽對文件。
經(jīng)過數(shù)據(jù)處理與標注后,為了提高神經(jīng)網(wǎng)絡的訓練效果,本文結合實際情況,對圖像在垂直方向和水平方向上進行翻轉(zhuǎn),并適當調(diào)整圖像的對比度、亮度、飽和度,對數(shù)據(jù)進行擴充和增強處理,最終得到了3 000張圖像數(shù)據(jù)用于模型的訓練。
本文分割算法效果的評價標準選擇平均交并比()和類別平均像素準確率(),其計算公式如下:
其中,(1)表示類別總數(shù);p表示類的像素預計屬于類的個數(shù),即真正;p、p分別表示假正和假負像素的個數(shù)。由于本文算法的輸入分辨率是多尺度的,輸出分辨率為1 920×1 080 尺寸的圖像,評判結果時需要將圖像真實大小調(diào)整為與輸出相同的分辨率,以1 920×1 080 為基準分辨率進行計算評估。
研究階段結合傳統(tǒng)算法和深度學習相關理論完成算法構建,實驗階段基于Intel i7-8750、Nvidia Titan X、Nvidia GeForceGTX 960 顯卡、CUDA8.0,并采用Python3 編程語言、OpenCV 庫函數(shù)與Pytorch框架實現(xiàn)算法內(nèi)容。本文將準備好的訓練數(shù)據(jù)和標簽數(shù)據(jù)輸入到網(wǎng)絡中用來訓練模型。
實驗結果表明,在不同場景下都能很好地應用本文方法,包括陰影、反射、隧道環(huán)境、高架環(huán)境和軌道切換場景。為了進一步評價本文方法的有效性,特別是文中提出的多尺度融合方法和改進的ASPP模塊。這里分別對未采用多尺度輸入模塊的模型和未使用改進ASPP 模塊的模型進行了對比實驗。此外,將本文方法與目前最具代表性的語義分割方法SegNet、LaneNet、SCNN、Enet在SaQiang 數(shù)據(jù)集上進行了精度的比較,實驗比對結果見表1。部分實驗結果可視化如圖8、圖9 所示。
表1 不同算法檢測結果對比Tab.1 Comparison results of different detection methods %
圖8 實驗結果1Fig.8 Experimental results 1
圖9 實驗結果2Fig.9 Experimental results 2
由表1 所見,本文軌道區(qū)域檢測方法取得了較好的效果。文中提出的方法在SaQiang 數(shù)據(jù)集上取得了最好的精度,Mean達到94.54%,達到95.19%。主要原因是本文采用的多尺度融合和多分支方式,綜合考慮了軌道區(qū)域的整體特征和局部特征,從而充分挖掘了軌道區(qū)域的特征。此外,算法最后階段使用的多邊形擬合算法進一步優(yōu)化了網(wǎng)絡模型的輸出,從而使得推理出的軌道區(qū)域的邊緣更加精確。SegNet、SCNN 和Enet 是目前比較流行的語義分割網(wǎng)絡,據(jù)相關研究分析可知,這2 種網(wǎng)絡在大多數(shù)的語義分割任務中都能獲得很高的準確率,但是在鐵路區(qū)域的檢測中的準確率并不好,歸根究底就是這些網(wǎng)絡沒有充分考慮鐵路區(qū)域的特點,因此在軌道區(qū)域檢測上也未能獲得良好性能。
除了性能上的分析,還通過實驗評價了本文方法速度上的優(yōu)勢。實驗中測試了該方法在單個廣泛使用的NVIDIA Titan X GPU 上的運行性能,同時,為了評價該方法在普通配置平臺上的運行能力,還在Nvidia GeForceGTX 960 顯卡上進行了實驗。結果見表2。
表2 不同算法檢測速度對比Tab.2 Speed comparison of different detection methods
由表2 的對比結果可知,本文的方法在檢測速度方面達到了中等的性能。該網(wǎng)絡在單個Titan X上達到了23 幀以上的,在Nvidia GeForceGTX 960 上達到了6.5 幀以上的。雖然速度分數(shù)不是唯一的評價標準,但考慮到精度的原因,該方法在性能和速度之間取得了很好的平衡。
本文針對軌道區(qū)域檢測的問題,運用深度學習和傳統(tǒng)算法,提出了一種高性能的多分支的軌道區(qū)域檢測方法。該方法通過語義分割、實例分割、分類網(wǎng)絡以及多邊形擬合算法獲取軌道區(qū)域信息,得到優(yōu)異的鋼軌區(qū)域輪廓。實驗結果表明,該方法能夠在陰影、反射、隧道環(huán)境、高架環(huán)境和軌道切換場景等各種條件下實現(xiàn)高效的軌道區(qū)域檢測和對軌道區(qū)域的像素級分類,同時還一并兼顧了檢測的精度和速度。
通過實驗結果分析,本文提出的檢測方法在某些場景中仍然存在不足。如:在道岔區(qū)域?qū)壍绤^(qū)域的檢測還存有一些偏差,效果不是特別理想;算法在速度上的性能還需要進一步提高等。之后的研究中,將致力于克服上述缺點,進一步研究更輕量的網(wǎng)絡,將軌道區(qū)域識別和障礙物檢測相結合,實現(xiàn)列車的實時主動障礙物感知,為深度學習算法在軌道區(qū)域檢測的應用落地提供一種可行的技術方案。