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