熊敏君,李 晨,張慧源,彭聯(lián)貼,蘇 震
(株洲中車時代電氣股份有限公司, 湖南 株洲 412001)
隨著汽車自動駕駛的快速發(fā)展,軌道交通領域也在不斷開展列車輔助及自動駕駛的研究。列車,尤其是貨運列車,有著載重大、運輸線路長等特點,輔助及自動駕駛對保障其駕駛安全、提高駕駛效率具有重要的作用。列車運行環(huán)境的實時檢測是實現列車輔助及自動駕駛的基礎。
列車運行環(huán)境檢測涉及列車運行過程中軌道區(qū)域檢測、障礙物識別、交通信號燈識別及軌旁標識牌識別等。其中,列車前方軌道區(qū)域檢測是環(huán)境檢測的基礎,傳統(tǒng)方法一般是通過檢測兩條鋼軌線位置從而確定軌道區(qū)域的。文獻[1]通過改進邊緣檢測算子進行鋼軌識別,但其識別的前提需要兩條鋼軌和背景存在比較明顯的灰度差異,且對光照、遮擋等環(huán)境因素敏感。文獻[2]針對光照因素引起的鋼軌特征提取不完整的問題,提出了基于相位一致性的鋼軌特征提取方法,但該方法在復雜場景下的軌道檢測效果較差。文獻[3]基于曲率映射圖實現了近距離軌道的識別,并基于局部梯度信息實現遠距離軌道識別,能夠識別百米以內的軌道。此外,有研究者提出采用模板匹配的方法[4-5]提取軌道線,和通過高次曲線擬合的方法[6]實現對彎軌的識別。在軌道環(huán)境較復雜或彎道曲率較大時,基于傳統(tǒng)算法的軌道識別漏檢率及誤檢率較大,并受光照、部分遮擋等外界因素的影響較大,導致算法的魯棒性較差。
基于深度學習的語義/實例分割算法近些年發(fā)展較快,在公路交通環(huán)境檢測方面取得了較多應用成果。文獻[7]提出了全卷積網絡(fully convolutional networks, FCN),對傳統(tǒng)的卷積神經網絡進行了改進,實現了端到端的圖像語義分割算法。文獻[8]采用類似FCN結構實現車道線的檢測,算法分割效果較好,但實時性較差。為了提高算法的執(zhí)行效率,文獻[9]提出了一種編碼-解碼結構SegNet網絡,編碼部分采用傳統(tǒng)的卷積網絡的池化層,解碼部分進行上采樣恢復原圖像的特征信息。研究者們?yōu)榱诉M一步提高算法的精度與效率,又相繼提出了ENet[10],ERFNet[11],MaskRCNN[12]等分割網絡結構。其中,MaskRCNN實例分割網絡檢測精度較高,主要用來進行目標檢測和物體輪廓分割,適用于車輛自動駕駛的交通環(huán)境感知。
列車運行的軌道環(huán)境較公路交通環(huán)境來說相對簡單,相應的基于視覺的環(huán)境感知算法更易落地實現。本文基于圖像實例分割MaskRCNN網絡,提出一種列車運行環(huán)境實時檢測算法,通過樣本數據圖像增強、網絡參數與結構的改進、深度學習加速引擎TensorRT的模型推理加速等處理,提高算法的檢測精度及運行效率;并在嵌入式開發(fā)平臺NVIDIA-Xavier上開展實驗,驗證了算法的檢測精度與運行效率。
基于圖像實例分割的列車運行環(huán)境檢測算法基于嵌入式GPU平臺Xavier實現,由數據處理、模型生成及實時檢測3個部分組成,本節(jié)主要介紹其框架及實例分割模型MaskRCNN的基本原理。
圖1為基于圖像實例分割的列車運行環(huán)境實時檢測算法框架。其中,數據處理環(huán)節(jié)通過車載攝像頭對列車運行環(huán)境的視頻數據進行采集與存儲,并進行篩選、抽幀、標注、圖像增強等處理,以獲得樣本數據;模型生成環(huán)節(jié)通過改進MaskRCNN網絡訓練、基于TensorRT的模型加速獲得可推理的模型文件;實時檢測環(huán)節(jié)完成模型文件在Xavier上的部署,同時對圖像分割結果進行分類,以得到列車運行環(huán)境信息。
圖1 列車運行環(huán)境檢測算法框架Fig. 1 Framework of the train operation environment recognition algorithm
MaskRCNN實例分割網絡由主干網絡、區(qū)域生成網絡以及3個分支任務組成,如圖2所示。其中,主干網絡由標準卷積神經網絡CNN(ResNet系列)及其形成的特征金字塔網絡FPN組成,主要負責特征提?。粎^(qū)域生成網絡RPN負責從不同尺寸的特征圖中獲得候選區(qū)域并進行特征對齊;最后,通過目標分類、框回歸及掩碼分支得到目標檢測及分割結果。
圖2 MaskRCNN網絡示意圖Fig. 2 Structure diagram of MaskRCNN
針對原始MaskRCNN模型在軌道環(huán)境目標檢測中存在的目標檢測精度低、分割邊緣粗糙、算法運行速度慢等問題,本文采用圖像增強、主干網絡優(yōu)化、特征金字塔結構優(yōu)化等措施提高檢測精度,并通過基于TensorRT的模型加速來滿足模型的實時推理需求。
視頻數據采集裝置由多個車載攝像頭組成,根據機車車型、運行環(huán)境和客戶需求的不同,攝像頭模組可安裝于列車司機室內部或外部,但需保證能夠最大視野地獲取列車運行前方軌道、軌旁信號燈及標識牌等區(qū)域視頻數據,且獲取的視頻數據覆蓋列車不同運行時間段、不同運行場景的環(huán)境信息。
通過視頻數據預處理,獲取訓練樣本數據集,其主要步驟如下:
(1)視頻場景分類。對采集的視頻數據進行人工清洗,均衡不同場景的視頻數量。
(2)關鍵幀抽取。采用每秒1幀的方式對視頻抽取關鍵幀,通過圖像質量檢測算法篩除重復度較高的圖像數據。
(3)圖像標注。采用標注工具對圖像數據進行像素級的標注。
(4)標注格式轉換。將標注完成的標簽統(tǒng)一轉換成coco數據格式。
文獻[13]驗證了圖像增強方法在深度學習圖像識別中應用的可行性,即采用正常樣本1.43%數量的樣本進行圖像增強后可達到與正常樣本訓練同樣的精度。由于軌道環(huán)境訓練樣本數據有限,采用圖像處理方法進行圖像增強,可進一步擴充樣本數據,主要擴充方式有隨機裁剪、平移與縮放、高斯噪聲、顏色及亮度變換等。圖3示出圖像增強(通道處理)前后圖片效果對比。
圖3 圖像增強處理效果對比Fig. 3 Comparison of image channel processing effects
針對原始MaskRCNN實例分割模型存在的大目標分割邊界粗糙、小目標檢測精度低等問題,本文主要對模型進行以下3個方面的改進優(yōu)化。
(1)采用混合空洞卷積優(yōu)化主干網絡。主干網絡提取的特征圖信息直接影響后續(xù)網絡的檢測精度。與普通卷積相比,空洞卷積有利于在保證分辨率的前提下擴大感受野,從而獲得多尺度的上下文信息,非常適用于圖像語義/實例分割任務。為了消除空洞卷積帶來的網格效應,本文采用不同空洞率組合的卷積核——混合空洞卷積[14]對ResNet主干網絡進行特征提取優(yōu)化。
(2)特征金字塔的不同尺寸特征融合。特征金字塔結構可以解決不同尺度目標的檢測問題,原始MaskRCNN模型采用的金字塔結構包含左側“自底向上”和右側“自頂向下”兩條路徑,通過二者相鄰層的橫向連接實現高層語義信息與低層位置信息的融合(圖4)。為了進一步將低層位置信息融進高層特征,得到更優(yōu)的目標檢測精度,如圖4所示,在模型的右側增加一條“自底向上”的路徑,以優(yōu)化傳統(tǒng)特征金字塔結構。
圖4 金字塔結構及其優(yōu)化示意圖Fig. 4 Pyramid structure and its optimization diagram
(3)提高全卷積掩碼輸出尺寸。由于原始模型掩碼分支默認單個目標的輸出大小為28*28,最終的分割結果圖采用上采樣得到,導致大目標的分割邊緣不清晰,鋸齒狀邊緣現象較嚴重。為了解決這一問題,考慮提升掩碼分支的輸出尺寸來優(yōu)化分割邊緣。然而,較大的掩碼尺寸輸出會造成算法運行效率的下降。因此,根據實驗結果對精度與效率進行綜合評估,提高全卷積掩碼輸出尺寸為56*56,在滿足算法運行效率的基礎上得到更加平滑的分割輪廓。
由于車載嵌入式開發(fā)平臺的算力有限,而實例分割模型資源消耗較大,因此需要對訓練好的模型進行加速,從而達到車載實時運行的效果。本文采用高性能深度學習支持引擎TensorRT對模型進行加速處理,并在嵌入式開發(fā)平臺NVIDIA-Xavier上實現。
TensorRT是NVIDIA公司針對深度學習網絡推出的神經網絡推斷加速引擎,可極大提高深度學習模型在邊緣設備上的推理速度。其工作原理是通過網絡模型的層間合并,優(yōu)化內核選擇,指定模型精度(浮點型32位FP32、半精度FP16或整型INT8),執(zhí)行歸一化和轉換,優(yōu)化矩陣計算,從而減少延時、提高吞吐量和效率。
基于TensorRT的模型加速算法的主要流程如圖5所示:
圖5 TensorRT模型加速算法流程圖Fig. 5 Algorithm flow chart of model acceleration based on TensorRT
(1)初始化模型推理相關參數,包括待加速的模型文件、engine文件、圖像幀的處理批次、網絡輸入大小、模型的輸入及輸出節(jié)點等。
(2)判斷是否存在本地engine文件可讀取,若是,則直接進行模型的反序列化;否則,進行模型解析與engine生成。
(3)判斷模型是否需要進行低精度推理參數設置,并序列化engine后保存至本地。
(4)執(zhí)行模型推理,輸入數據為視頻流處理模塊的輸出數據,獲得推理結果。
為了評估模型優(yōu)化及加速的效果,本文設計了模型優(yōu)化實驗及推理加速實驗,對比了原始模型及優(yōu)化后模型的檢測精度與推理速度。
實例分割模型訓練的實驗環(huán)境為兩張NVIDIATesla-V100顯卡(顯存為32 GB),實驗基于TensorFlow深度學習框架進行。列車運行環(huán)境檢測的樣本數據約5 000張,目標類別包含行人、機車、軌道、汽車、信號燈及標識牌。從中隨機選取約800張作為驗證集,樣本數據圖像大小均為1920*1080,模型輸入大小為1024*1024。為了提高訓練模型的準確率,采用在ImageNet上訓練好的模型進行遷移學習。文中所有實驗訓練步數設置均為epoch值180,每個epoch步長為1 000,batch_size值為2。模型推理加速實驗環(huán)境為NVIDIA-Jetson-Xavier嵌入式處理平臺。
模型優(yōu)化實驗分別計算目標檢出的準確率P及召回率R,然后通過式(1)計算得到精度值F進行檢測效果評估。
其中軌道項點只進行區(qū)域判斷,不作為評估依據;其他項點檢出值與真實值的交并比IoU大于0.5即視為正確檢出。
推理加速試驗采用模型推理時間Tinfer進行加速效果評估。
3.2.1 模型優(yōu)化實驗分析
在進行模型優(yōu)化實驗前,對主干網絡ResNet50和ResNet101進行了對比。雖然采用ResNet50訓練及推理速度有所提升,但目標檢測精度下降明顯,因此后續(xù)實驗均采用ResNet101主干網絡進行訓練及驗證。
為了驗證模型優(yōu)化效果,分別對原始模型(MR)、改進空洞卷積(MRD)模型及改進金字塔結構(MRFPN)模型進行準確率驗證,其中采用模型MRFPN的檢測效果如圖6所示。驗證集共包含5類目標物體,約2 000個。為了更好地驗證小目標檢測準確率,將所有目標物體按照像素大小分為大、中、小3個類別。不同模型優(yōu)化后得到的檢測結果如表1所示,所有結果均取5類項點的平均值進行評價,其中下標大、中、小分別代表不同大小的目標的檢測結果。
圖6 列車運行環(huán)境檢測結果圖(MRFPN)Fig. 6 Segmentation results of the train operation environment by MRFPN
表1 不同模型的檢測結果對比Tab. 1 Comparison of detection results (%)
從表1檢測結果可以看出,采用空洞卷積優(yōu)化有助于提高小目標檢測的準確率,但對大、中目標的檢測精度僅有輕微影響;而改進金字塔結構對不同大小的目標檢測精度均有明顯提升,平均檢測精度提升約2個百分點。因此,基于TensorRT的模型推理加速實驗采用改進金字塔結構的模型進行驗證。
為了驗證不同掩碼尺寸輸出對分割區(qū)域的影響,采用軌道項點分割結果的平均交并比mIoU作為評估指標。M28*28與M56*56分別表示掩碼輸出尺寸為28*28與56*56。由表2結果分析可知,提高掩碼輸出尺寸后,mIoU提升1.05%,有助于分割精度的提升。圖7示出提高全卷積掩碼輸出尺寸后目標邊緣鋸齒化現象改進效果。從軌道邊緣可以看出,邊緣的鋸齒狀現象得到了較好的改善,輸出邊緣平滑,有利于軌道區(qū)域限界判定。
表2 掩碼尺寸對軌道區(qū)域檢測的影響Tab. 2 Influence of mask size on track area detection
圖7 分割邊緣改進效果對比圖Fig. 7 Comparision of segmentation edge results
3.2.2 推理加速實驗分析
模型推理加速實驗在Xavier平臺上實現,主要測試使用TensorRT加速前后模型在Xavier上的推理速度,該實驗采用精度(FP16)的模型加速推理進行推理速度驗證。模型加速前后的推理時間對比如表3所示,Tbefore和Tafter分別為模型加速前后的推理時間??梢钥闯?,通過TensorRT對模型加速,可以顯著提升模型的推理速度。模型輸入大小為1024*1024時,模型的推理速度約為7 fps,推理加速比超過6,基本能夠實現算法在車載嵌入式平臺上的實時運行。
表3 模型加速前后推理時間對比Tab. 3 Comparison of inference time before and after model acceleration
為了確?;赥ensorRT的模型推理加速不影響檢測精度,進行了加速后的精度對比實驗。如表4所示,Fbefore和Fafter分別為模型加速前后的平均檢測準確率,精度差僅0.11%。由此可知模型推理加速對于檢測精度無明顯影響。
表4 模型加速前后精度對比Tab. 4 Comparison of model accuracy before and after acceleration (%)
綜合分析實驗結果可知,通過改進金字塔結構、提高掩碼尺寸及模型推理加速處理,提升了原始模型的檢測精度及運行速度,獲得了更好的軌道分割效果;同時,在嵌入式Xavier平臺上模型推理速度達到7 fps,具備在機車上進行實時環(huán)境檢測應用的潛力。
本文提出一種基于圖像實例分割實現的列車運行環(huán)境實時檢測算法。首先,針對軌道檢測邊界不清晰及目標檢測精度較低的問題,采用空洞卷積、金字塔結構優(yōu)化等方法改進原有網絡模型,提高模型的檢測精度及目標邊緣分割精度,在驗證集下目標檢測精度達到94.75%;其次,通過TensorRT進行模型推理加速優(yōu)化,推理速度達到7 fps,推理加速比超過6,并通過嵌入式平臺NVIDIA-Xavier實現算法的車載實時運行。該系統(tǒng)主要應用于機車和城市軌道交通列車的自動駕駛的環(huán)境感知與障礙物檢測,輔助機車實現對軌道區(qū)域、行人、其他機車、信號燈及標識牌等目標的實時檢測。通過模型結構優(yōu)化及推理加速,提高了系統(tǒng)的檢測精度及運行效率,使其滿足列車運行環(huán)境的實時檢測需求。
目前該推理加速算法僅實現了一部分列車運行環(huán)境的檢測,后續(xù)可通過擴充實例分割的目標類別,實現對圖像中所有區(qū)域的分割;并可通過整型推理進一步提升模型加速的速度。