裴晨皓,黃立勤
(福州大學(xué)物理與信息工程學(xué)院,福建 福州 350108)
視覺信息在車輛輔助駕駛中起到很大的作用[1]. 利用圖像處理和計算機(jī)視覺技術(shù),對車輛行駛車道進(jìn)行定位,來保證安全的車距和正確的車道,并能對一些異常狀況及時做出反應(yīng)和處理. 在車輛行駛車道定位中,車道定位策略和目標(biāo)識別很重要.
在車道定位策略中,車道線和車道的信息是可以利用的. 傳統(tǒng)的車輛行駛車道定位方法,大部分是利用車道線檢測來實現(xiàn)的. 采用 Hough 變換來檢測車道線[2],利用道路的邊緣信息來擬合直線段,但其抗干擾不好,復(fù)雜環(huán)境可能導(dǎo)致計算量過大; 采用設(shè)置閾值來分割車道線檢測[3],但閾值的設(shè)置需要許多先驗知識,不夠靈活; 采用模版匹配來檢測車道線[4],需要提前制作好不同類型道路樣式的模板庫. 為了解決這些問題,本研究利用完整的車道信息來輔助車道定位,將不同車道區(qū)域完整地分割出來. 而在圖像語義分割方法中,傳統(tǒng)采用閾值的方法,其閾值的選取需要實驗確定,適用于色彩對比度強的圖像; 采用區(qū)域分割[5]的方法,計算量過大; 聚類分析的方法[6],需要人為干預(yù)參數(shù),對噪聲和灰度不均勻敏感,對于K-means聚類來說,聚類簇數(shù)K沒有明確的選取準(zhǔn)則,需要實驗獲?。?采用深度學(xué)習(xí)的方法[7],利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)卷積特征來分割語義,在圖像上獲取不同的窗口,預(yù)測結(jié)果作為窗口中心像素前景背景的概率[8]. 在圖像識別分割中,相比傳統(tǒng)的手工特征,卷積神經(jīng)網(wǎng)絡(luò)表現(xiàn)出良好的性能. 但全卷積網(wǎng)絡(luò)(fully convolutional network, FCN)[9]方法分割的結(jié)果粗糙,其感受野的大小是固定的; 而許多其他種類FCN[10-12]可以使結(jié)果更加精細(xì),其中FCN結(jié)合條件隨機(jī)場的方法得到的結(jié)果較好[13-14].
車輛輔助駕駛中對系統(tǒng)實時性的要求比較高,試驗中希望找到一個在準(zhǔn)確度和實時性上都具有不錯表現(xiàn)的網(wǎng)絡(luò). 目標(biāo)識別上,基于卷積神經(jīng)網(wǎng)絡(luò)的方法在效果和精度的表現(xiàn)上不錯,如R-CNN[15]、 Fast-RCNN[16]、 Faster-RCNN[17]、 YOLO v2[18]等,試驗中采用YOLO v2算法來進(jìn)行目標(biāo)識別.
本研究結(jié)合卷積神經(jīng)網(wǎng)絡(luò),針對雙車道進(jìn)行分割,采用編碼器-解碼器架構(gòu)網(wǎng)絡(luò)實現(xiàn)端到端訓(xùn)練雙車道語義分割模型,以達(dá)到檢測實時性的要求. 利用YOLO v2檢測前車車輛,結(jié)合車道分割結(jié)果做分析定位. 課題組利用卡爾斯魯厄理工學(xué)院和豐田美國技術(shù)研究院公布的數(shù)據(jù)集(KITTI)中城市道路(urban marked, UM)數(shù)據(jù),標(biāo)注制作雙車道訓(xùn)練集和測試集,用于不同車道分割.
車輛輔助駕駛中,車道車輛檢測分割的準(zhǔn)確度和實時性同等重要. 研究利用語義分割對輸入的車載圖像進(jìn)行道路分割,同時檢測車載圖像中車輛,然后對車輛行駛的車道進(jìn)行定位. 整個系統(tǒng)分為多車道語義分割和車輛檢測兩個部分,最后融合結(jié)果,分析出車輛所在車道的位置,進(jìn)行車道定位. 系統(tǒng)流程如圖1所示.
圖像語義分割一直是圖像處理中受關(guān)注的部分,輸入一張圖像,對圖片上的每一個像素進(jìn)行預(yù)測分類. FCN全卷積網(wǎng)絡(luò)的出現(xiàn),使深度學(xué)習(xí)更好地用于圖像語義分割,全連接層變?yōu)榫矸e層,適應(yīng)任意尺寸輸入、 輸出低分辨率的分割圖片.
車道分割設(shè)計網(wǎng)絡(luò)基于SegNet網(wǎng)絡(luò)[11],這是一種編碼器-解碼器網(wǎng)絡(luò)架構(gòu),它的特點是訓(xùn)練參數(shù)更少、 速度更快、 內(nèi)存需求更低,網(wǎng)絡(luò)總體架構(gòu)如圖2所示. 輸入車載視頻中的圖像,輸出圖像的車道分割掩膜圖,分為對稱的兩個部分—前半段的卷積部分和后半段的反卷積部分. 卷積部分由4個卷積層、 4個批標(biāo)準(zhǔn)化(batch normalization, BN)[19]層加激活函數(shù)(rectified linear unit,ReLU)及4個池化層組成,主要作用是對輸入圖像進(jìn)行特征提取,最后輸出多個特征圖,輸入反卷積部分; 反卷積部分由4個上采樣層和4個卷積層組成,對卷積部分的輸出圖進(jìn)行反卷積,最后一個卷積層得到的特征圖大小將與原始輸入圖像大小一致,再通過最后的3分類卷積層,得到整幅圖像上每個像素點屬于左車道、 右車道還是非車道情況.
圖1 整體算法示意圖Fig.1 Schematic diagram of the overall algorithm
圖2 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure
為了權(quán)衡精確度和實時性,對 SegNet 網(wǎng)絡(luò)進(jìn)行不同的池化層數(shù)、 卷積核個數(shù)、 卷積核大小的對比實驗,分析其預(yù)測準(zhǔn)確度(predicted accuracy, PA)和時間(t),實驗數(shù)據(jù)采用利用KITTI數(shù)據(jù)制作的雙車道數(shù)據(jù)集,實驗結(jié)果如表1所示. 最終選取池化層數(shù)4層,卷積核個數(shù)32,卷積核大小7×7作為網(wǎng)絡(luò)結(jié)構(gòu)參數(shù).
表1 不同網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)的預(yù)測準(zhǔn)確度和時間的對比
網(wǎng)絡(luò)的卷積部分是卷積與池化交替對輸入的圖像進(jìn)行卷積運算. 每個卷積核相當(dāng)于一個特征提取器. 通過每個卷積-池化結(jié)構(gòu)的作用,提取出圖像的局部特征,然后采用最大值池化,于第4個池化層輸出64個局部特征圖,輸出到反卷積部分進(jìn)行處理.
本研究的反卷積部分采用與FCN不同的反卷積,過程如圖3所示. 在編碼部分做池化操作的時候,記錄像素點的位置信息,在上采樣階段將保存下的位置信息重新分布像素,還原到池化前的圖像大小,然后再進(jìn)行卷積操作,使稀疏圖像變回密集圖像.
圖3 本研究的上采樣方法和FCN的反卷積對比Fig.3 Comparison of the upsampling method in this paper and FCN deconvolution
1.1.2SoftMax概率分類
SoftMax層在網(wǎng)絡(luò)反卷積部分后,將反卷積得到的特征圖輸送進(jìn)最后一層卷積層,該層卷積核大小為1×1,輸出特征圖個數(shù)為2,是為了實現(xiàn)最后的左道路、 右道路和非道路的3分類.
引入SoftMax層,對圖像像素進(jìn)行分類,輸出左道路、 右道路和非道路的預(yù)測概率值,通過比較概率值大小確定最終所屬類別. SoftMax層采用SoftMax回歸模型,該模型是邏輯回歸在分類問題上的推廣,假設(shè)類別標(biāo)簽為y,有k個不同取值,輸入X和標(biāo)簽y,表示為如下公式:
{(X1,y1), (X2,y2), (X3,y3), …, (Xi,yi)},yi∈{1, 2, 3, …,k}
其中:k=3.
假設(shè)對于每一個輸入對應(yīng)每個類別j的概率值P(y=j|X),輸出一個k維向量,表示k個估計值. 假設(shè)函數(shù)如式(1)所示. 其中,θ1,θ2,θ3,θ4, …是模型參數(shù).
(1)
(2)
在節(jié)1.1中獲得車道在圖像上的位置,結(jié)合車輛檢測就可以更精確定位車輛行駛車道的位置. 由于YOLO v2在如PASCAL VOC和COCO標(biāo)準(zhǔn)檢測任務(wù)方面是最先進(jìn)的. 性能比使用ResNet的Faster-RCNN和SSD[21]要好,而且運行速度明顯快很多. 因此研究采用YOLO v2檢測車道上的車輛.
1.2.1車輛檢測YOLOv2網(wǎng)絡(luò)
車輛檢測使用YOLO v2網(wǎng)路,其基礎(chǔ)網(wǎng)絡(luò)模型是Darknet-19,包含19個卷積層和5個最大池化層,每個卷積層使用規(guī)范層來穩(wěn)定訓(xùn)練,加速收斂和規(guī)則化模型. 利用標(biāo)記的檢測圖像來學(xué)習(xí)精確地定位目標(biāo),同時使用分類圖像來增加它的魯棒性. 其具體網(wǎng)絡(luò)結(jié)構(gòu)如表2所示
表2 Darknet-19網(wǎng)絡(luò)結(jié)構(gòu)
在VOC2007+VOC2012的訓(xùn)練測試集上得YOLO v2和其他幾個算法精度和速度的對比,如表3所示.
表3 YOLO v2與其他算法在VOC上的精度和速度對比
1.2.2車輛檢測實驗
實驗使用YOLO v2檢測車載圖片下的車輛,標(biāo)出車輛在圖像上的位置,與第2節(jié)中雙車道語義分割的結(jié)果融合,分析出車輛所在的車道的位置,實驗結(jié)果如圖4所示.
圖4 YOLO v2檢測車輛的結(jié)果Fig.4 YOLO v2 vehicle detection results
為驗證方法的有效性,對雙車道道路進(jìn)行實驗. 實驗中的訓(xùn)練和測試數(shù)據(jù)利用KITTI道路數(shù)據(jù)制作,數(shù)據(jù)公布在開源網(wǎng)站github上. 實驗硬件平臺為酷睿i5-7500處理器,內(nèi)存16 GB,GPU顯卡為NVIDIA GTX1080TI,軟件平臺Cuda 8.0,Caffe.
利用KITTI道路數(shù)據(jù)中的UM數(shù)據(jù)制作,訓(xùn)練數(shù)據(jù)83張圖片,測試數(shù)據(jù)53張. 制作的數(shù)據(jù)可視化標(biāo)注如圖5所示.
2.2.1實驗結(jié)果
采用優(yōu)化的SegNet網(wǎng)絡(luò)訓(xùn)練自制的雙車道訓(xùn)練集,在測試集上測試,結(jié)果如圖6所示.
圖5 原始圖像和可視化標(biāo)簽圖Fig.5 Original image and the visually annotated image
圖6 訓(xùn)練網(wǎng)絡(luò)檢測結(jié)果Fig.6 Detection results of network training
2.2.2實驗評價
對雙車道語義分割的實驗結(jié)果進(jìn)行評價,分為實驗的速度和精度兩個部分. 精度采用了PA、 MPA、 MIoU和FWIoU 等4種語義分割常用的標(biāo)準(zhǔn)[10].
定義:k+1個類(從L0到Lk),Pii,Pij,Pji分別表示分類正確的像素數(shù)量、 假正的像素數(shù)量和假負(fù)像素數(shù)量.
像素精度(pixel accuracy, PA)預(yù)測正確的像素占總像素的比例,如式(3)所示
(3)
均像素精度(mean pixel accuracy, MPA)指每個類內(nèi)被正確分類像素數(shù)的比例,再求所有類的平均,如式(4)所示
(4)
均交并比(mean intersection over union, MIoU)表示正真數(shù)比上真正、 假負(fù)、 假正(并集)之和. 在每個類上計算IoU,之后平均,如式(5)所示.
(5)
頻權(quán)交并比(frequency weighted intersection over union, FWIoU)根據(jù)每個類出現(xiàn)的頻率為其設(shè)置權(quán)重,如式(6)所示.
(6)
實驗中的測試集是利用KITTI數(shù)據(jù)制作的53張測試圖像,結(jié)果如圖7所示. PA、 MPA、 MIoU、 FWIoU平均值分別為0.991 5、 0.981 7、 0.964 2、 0.983 5. 實驗速度測試結(jié)果如圖8所示.
圖7 實驗評價曲線圖Fig.7 Experimental evaluation curve
圖8 實驗速度曲線Fig.8 Experimental speed curve
融合前車檢測和車道語義分割結(jié)果,獲得前車在車道的位置信息,分析車輛位于左車道還是右車道. 雙車道分割網(wǎng)絡(luò)輸出圖片的Mask圖,根據(jù)Mask圖畫出雙車道的中線位置,效果如圖9所示.
圖9 車輛行駛車道定位Fig.9 Vehicle driving lane positioning
車輛行駛中定位和分析車道環(huán)境是車輛輔助駕駛的重要部分. 研究制作了針對雙車道語義分割的數(shù)據(jù)集,設(shè)計改進(jìn)的SegNet網(wǎng)絡(luò)很好地解決了針對雙車道語義分割問題,在測試集上速度55 ms,精度在0.95以上. 針對車輛車道定位問題,提出一種新的思路,把道路分成不同的車道來進(jìn)行實驗,取得不錯的效果.
課題僅針對雙車道的情況,實際車道場景中的車道數(shù)多樣,還有更多復(fù)雜的情況,下一步研究是針對多車道的情況進(jìn)行車道定位.