閆春香 陳林昱 王玉龍 劉文如
摘 要:基于深度學(xué)習(xí)的端到端自動駕駛有著簡潔高效的優(yōu)勢,尤其在車道保持上有著良好表現(xiàn),但是面臨路況復(fù)雜時存在極大的不穩(wěn)定性,表現(xiàn)為車輛偏離車道現(xiàn)象。針對此問題,文章首先在虛擬環(huán)境下利用神經(jīng)網(wǎng)絡(luò)可視化方法分析了車道偏離的原因,然后在方法上將方向盤轉(zhuǎn)角序列作為神經(jīng)網(wǎng)絡(luò)輸入,同時根據(jù)車道線檢測的方法求出車輛所在車道的面積作為輔助任務(wù)。文末分析對比了文章方法和遞歸神經(jīng)網(wǎng)絡(luò)(RNN,LSTM)方法在平穩(wěn)性上的差異,最后通過虛擬實驗和實車實驗驗證文章中的方法的有效性。結(jié)果表明,本文中的方法能有效改善車輛行駛平穩(wěn)性問題,和LSTM方法相比穩(wěn)定性效果相近,但本方法操作應(yīng)用簡單,節(jié)省計算資源。
關(guān)鍵詞:端到端;神經(jīng)網(wǎng)絡(luò);自動駕駛;序列;車道線檢測
Abstract: End to end self-driving has drawn increasing attention due to its simplicity and efficiency. Especially, this approach has achieved good performance in lane following. But its safety is still a concern with existing problem like sudden lane departure under complex road conditions. In view of this problem, firstly, we analyze the example accounted for such decision making problem by visualizing attention. Secondly, advocate sequences of steering angles as the input to Convolutional Neural Network(CNN), then, calculate the road area of the car in its lanes using lane detection as auxiliary task.Meanwhile,the contrast difference of stability is analyzed compared to the recurrent neural network in deep learning(RNN,LSTM). Finally, the results show that this method enhances the stability closed to LSTM and computation -ally efficient verified by virtual and real vehicle test.
1 背景
車輛在行駛中面臨的環(huán)境場景非常龐大且復(fù)雜,自動駕駛算法通常根據(jù)人為編寫規(guī)則,建立一套復(fù)雜規(guī)則系統(tǒng)來應(yīng)對多變復(fù)雜的環(huán)境。相對于此,端到端自動駕駛算法有著結(jié)構(gòu)簡單、成本低廉的優(yōu)勢,用深度學(xué)習(xí)網(wǎng)絡(luò)[1]模仿人類駕駛行為來替代復(fù)雜的規(guī)則系統(tǒng),是近幾年的新興技術(shù)。
英偉達(dá)在2016年提出應(yīng)用CNN網(wǎng)絡(luò),由車輛實時拍攝的圖片輸入直接映射到方向盤轉(zhuǎn)角輸出[2],利用端到端的方式實現(xiàn)了車道保持任務(wù)。端到端的技術(shù)實際上在數(shù)十年前已經(jīng)有所應(yīng)用[11],但是可以實現(xiàn)的功能較為單一,對于復(fù)雜場景難以處理。長短時記憶網(wǎng)絡(luò)LSTM[3,4,5]可以存儲過去的部分記憶,改善CNN在時序問題上的表現(xiàn),在自動駕駛上也開始廣泛應(yīng)用。論文[3](BDD)建立一個300小時的視頻數(shù)據(jù)集,提出了FCN+LSTM[4]方法,該網(wǎng)絡(luò)先通過全卷積網(wǎng)絡(luò)提取圖像的特征,然后通過長短時記憶網(wǎng)絡(luò)(LSTM)將當(dāng)期的特征和之前的特征融合,共同預(yù)測車輛下一個行為動作,比如左轉(zhuǎn)右轉(zhuǎn)直行等等,但是網(wǎng)絡(luò)輸出只包含車輛的方向盤控制,沒有對于車輛速度的控制。論文[6]把車輛周邊360度的信息進(jìn)行融合,該方法的缺點(diǎn)是需要同步多個傳感器間的信息,并且整個網(wǎng)絡(luò)計算耗時較長。論文[7]用CNN和LSTM并行處理圖像輸入,兩個網(wǎng)絡(luò)分別負(fù)責(zé)獨(dú)立的任務(wù),CNN負(fù)責(zé)預(yù)測方向盤轉(zhuǎn)角,LSTM負(fù)責(zé)預(yù)測速度,實現(xiàn)了對車輛的橫縱向控制。
除了上述加入LSTM的方法外,許多論文提出了不同的CNN網(wǎng)絡(luò)結(jié)構(gòu)創(chuàng)新,比如引進(jìn)輔助任務(wù)。輔助任務(wù)是為了使網(wǎng)絡(luò)模型可以關(guān)注車輛行駛過程中人為認(rèn)為需要額外關(guān)注的要素,以此來改善自動駕駛表現(xiàn)。通過在訓(xùn)練方法上做改變,例如把語義分割[3],物體檢測[8]等作為輔助任務(wù),這樣的多任務(wù)學(xué)習(xí)方式可以提升神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力[9,10]。輔助任務(wù)的引入,使得模型強(qiáng)化了對于指定交通場景特征的關(guān)注,其缺點(diǎn)是需要大量的人工來標(biāo)注場景元素。
經(jīng)過上述分析,在提高自動駕駛技能方面,在CNN架構(gòu)及CNN+LSTM架構(gòu)上都有各種不同架構(gòu)及應(yīng)用,由于LSTM比CNN可解釋性差,且其網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,數(shù)據(jù)處理繁瑣。對此,本文提出輔助車道線檢測的端到端自動駕駛,最后實車上進(jìn)行了測試。
2 方法介紹
2.1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
端到端自動駕駛模型訓(xùn)練的數(shù)據(jù)集只需要采集人類駕駛行為的數(shù)據(jù),將原始數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò)直接映射輸出駕駛控制指令數(shù)據(jù)(目標(biāo)方向盤轉(zhuǎn)角、油門、剎車)。本文首先采用CNN架構(gòu)測試了車道保持的情況。
本文利用resnet50作為基模型,通過回歸計算方式輸出預(yù)測方向盤轉(zhuǎn)角值及速度值。在行駛時預(yù)測僅使用中間攝像頭作為輸入。
在測試中發(fā)現(xiàn),車輛在行駛過程有預(yù)測方向盤轉(zhuǎn)角值的突變導(dǎo)致駛離正常車道后現(xiàn)象,在GTAV模擬環(huán)境下重現(xiàn)該現(xiàn)象,并進(jìn)行分析,見2.2。
2.2 可視化
在GTAV的虛擬環(huán)境下,采用resnet50模型重現(xiàn)了車輛突然駛出路面現(xiàn)象,得出車輛沖出路面時的方向盤預(yù)測轉(zhuǎn)角和上一幀相比,出現(xiàn)較大的突變。本文對該時刻神經(jīng)網(wǎng)絡(luò)模型的關(guān)注點(diǎn)進(jìn)行了可視化分析[5,12],具體方法如下圖2。輸入圖像3通道大小為224*224,經(jīng)過卷積層CONV1的處理后輸出64通道大小為112*112 map圖,CONV2_x到CONV5_x是帶有殘差結(jié)構(gòu)的卷積block。從最后一層逆向計算,使用平均池化的方法對輸出特征圖每個通道進(jìn)行加權(quán)并反卷積點(diǎn)乘上一層的map值,最后獲取到的結(jié)果轉(zhuǎn)化為熱力圖的形式疊加到原始圖像上。
圖3是可視化結(jié)果,a(1)是正常行駛場景圖,a(2)是其對應(yīng)的神經(jīng)網(wǎng)絡(luò)關(guān)注點(diǎn)熱力圖,可以看出a(2)能正確的關(guān)注到車道線;b(1)是車輛沖出正常車道的場景圖,b(2)是對應(yīng)的關(guān)注點(diǎn)熱力圖,從可視化效果的熱力圖看,神經(jīng)網(wǎng)絡(luò)把紅框內(nèi)的木頭錯認(rèn)為車道線。
2.3 網(wǎng)絡(luò)架構(gòu)
網(wǎng)絡(luò)設(shè)計基于數(shù)據(jù)輸入及損失函數(shù)兩個方面,將歷史數(shù)據(jù)作為輸入解決序列問題,在損失函數(shù)上將車輛駛出車道線的情況給以懲罰。
2.3.1 方向盤轉(zhuǎn)角序列
駕駛行為是一個時間上連續(xù)的序列行為,下一時刻的車輛駕駛控制通常是基于上一次的狀態(tài)結(jié)果微調(diào)。神經(jīng)網(wǎng)絡(luò)在處理時間序列問題上,目前多是采用CNN+LSTM的方法,但是該方法的訓(xùn)練和預(yù)測均比單獨(dú)的CNN網(wǎng)絡(luò)復(fù)雜,同時在預(yù)測時LSTM網(wǎng)絡(luò)的運(yùn)算資源消耗也較大,在序列長的情況下,預(yù)測耗時較長,而在序列短時雖然計算耗時較短,又難以保證效果。本文在序列行為問題上采用歷史序列幀的狀態(tài)作為模型輸入來解決。
本文所述模型架構(gòu)如圖4所示,輸入為攝像頭拍攝的圖像,經(jīng)過CNN(Resnet50)網(wǎng)絡(luò)提取圖像特征,輸出全連接層FCi,F(xiàn)Ci層輸出為1024個神經(jīng)元。前5幀的歷史方向盤轉(zhuǎn)角值首先轉(zhuǎn)換為one-hot形式,然后與FCi連接起來構(gòu)成一維數(shù)組,經(jīng)過一次全連接變換FCs輸出的大小為256,將FCi和FCs連接,共1280個神經(jīng)元,并在后方增加三層全連接層,全連接層輸出的神經(jīng)元個數(shù)分別設(shè)定為512、256、50。根據(jù)實驗結(jié)果,作為輸入的歷史幀數(shù)設(shè)置5幀是比較合適的選擇。
2.3.2 懲罰函數(shù)
為了降低神經(jīng)網(wǎng)絡(luò)預(yù)測難度,在訓(xùn)練回歸預(yù)測中引入車輛偏離車道的懲罰損失函數(shù)。
首先利用已知的車道線檢測模型識別出當(dāng)前車輛所在車道線,車身左右兩邊的車道線在遠(yuǎn)方形成交叉點(diǎn),構(gòu)成圖4中OnRoad所示的黃色區(qū)域。若無形成交叉點(diǎn),則取車道線的線端兩個坐標(biāo)點(diǎn),根據(jù)直接方程式y(tǒng)=kx+b構(gòu)成直線,如此,和圖像底部構(gòu)成封閉區(qū)域。在直行路面,當(dāng)前車道線所構(gòu)成的區(qū)域通常呈銳角三角形,若在道路彎曲路面,則通常呈現(xiàn)圖4虛線框內(nèi)效果圖。
其次求出黃色封閉區(qū)域在整個圖像面積中占比,見公式(1),w×h表示圖像寬和高,σ (i,j)表示在二值圖中非0的值。由此,當(dāng)車輛沖出正常車道時,車道面積和背景圖的重疊率幾乎為0。
最后偏離車道時的損失函數(shù)定義為lOnRoad=1-lRoad,當(dāng)lRoad值越小時說明車輛已偏離當(dāng)前車道,反正lRoad值較大是說明車輛在正常車道行駛。
大多的車道線輔助任務(wù)的方法是在訓(xùn)練時使得訓(xùn)練模型同時關(guān)注車道線信息,需要大量人工標(biāo)注車道線的信息。本文所述的輔助車道線檢測的方法,將車道線檢測任務(wù)和模型預(yù)測任務(wù)分開進(jìn)行,車道線的識別方法可以使用機(jī)器視覺的方法或深度學(xué)習(xí)的方法,不需要對所有參與預(yù)測模型訓(xùn)練的大規(guī)模數(shù)據(jù)集標(biāo)注車道線,從而避免了大量人工標(biāo)注。
2.3.3 損失函數(shù)
本文的損失函數(shù)由方向盤轉(zhuǎn)角損失函數(shù)、速度損失函數(shù)和2.3.3章節(jié)所述的懲罰函數(shù)三部分構(gòu)成,見公式2,其中給以方向盤轉(zhuǎn)角損失函數(shù)系數(shù)配比為2。
θt表示當(dāng)前t時刻預(yù)測的方向盤角度,θlt表示t時刻的方向盤轉(zhuǎn)角真值。St表示當(dāng)前t時刻預(yù)測的速度,和方向盤轉(zhuǎn)角不同的是,速度的label是取5幀后的值,即Sl(t+5)表示t時刻向后5幀圖像對應(yīng)的速度真值,具體設(shè)定需根據(jù)本車的整體系統(tǒng)響應(yīng)周期進(jìn)行設(shè)定。
方向盤轉(zhuǎn)角和速度的預(yù)測采用均方誤差MSE損失函數(shù)作為回歸預(yù)測,見公式3,MSE越小表示預(yù)測值和真值越接近。
yi為訓(xùn)練時batch中第i個數(shù)據(jù)真值,yi'為神經(jīng)網(wǎng)絡(luò)預(yù)測的值,在本案例中,y對應(yīng)為方向盤轉(zhuǎn)角θ和速度s。
2.3.4 模型輸入輸出
圖像輸入處理:模型輸入的圖像數(shù)據(jù)為前向3個攝像頭所采集的數(shù)據(jù),每個攝像頭的圖像數(shù)據(jù)都是單獨(dú)作為神經(jīng)網(wǎng)絡(luò)的輸入。將它們都縮放到同樣的尺寸224x224,并按照image/127.5-1的方法歸一化預(yù)處理。
Label處理:方向盤轉(zhuǎn)角label按照steer/steermax的方式歸一為(-1,1)之間的浮點(diǎn)數(shù),速度label按照speed/speedmax的方式處理為(0-1)之間浮點(diǎn)數(shù)。
方向盤轉(zhuǎn)角序列輸入處理:FCs處輸入的方向盤轉(zhuǎn)角值用one-hot編碼形式輸入,one-hot編碼分類設(shè)定為200,將5個編碼值形成數(shù)組大小為1000(200*5)的一維數(shù)組。
輸出:采用均方誤差回歸預(yù)測輸出方向盤轉(zhuǎn)角值和速度值。
3 實驗驗證
使用廣汽GE3車型進(jìn)行實車改造,在廣州生物島進(jìn)行實車測試,多次測試結(jié)果表現(xiàn),繞行一周(7KM),人工干預(yù)次數(shù)一般在2次以內(nèi)甚至無需人工干預(yù),干預(yù)次數(shù)表現(xiàn)基本上和CNN+LSTM方案相當(dāng),而僅僅采用resnet50基礎(chǔ)模型測試時,很難做到無人工干預(yù)。
圖5是完全沒有參與訓(xùn)練的廣州大學(xué)城部分路段的離線測試結(jié)果,測試對象為方向盤轉(zhuǎn)角,其中藍(lán)色線是模型預(yù)測的方向盤轉(zhuǎn)角值,橙色線是測試車輛行駛實際轉(zhuǎn)角值。
圖5(a)是2.1所述的CNN結(jié)構(gòu)離線測試結(jié)果,圖中紅圈2之前的路段存在大量連環(huán)彎道,全路段有路邊停車,及來往車輛數(shù)量高于5。紅圈1、2、4、5為三岔口,由于CNN預(yù)測為離散信息,所以在三岔口有不同的表現(xiàn),紅圈3是提前轉(zhuǎn)彎,轉(zhuǎn)彎半徑較小。圖5中(b)是cnn+SeqRoad的方法離線測試圖,整個趨勢吻合。圖5中(c)是CNN+LSTM離線測試圖,趨勢和(b)接近,但是在轉(zhuǎn)彎半徑較大的大彎處表現(xiàn)的力度有所不足,如圖(c)中所圈出的1、2、3處。
(a) cnn結(jié)構(gòu)離線圖 (b) cnn +SeqRoad結(jié)構(gòu)離線圖 (c)cnn+lstm結(jié)構(gòu)離線圖 (d)實車測試車外視角 (e)實車測試車內(nèi)視角
表2為對應(yīng)的均方根誤差對比表,同一批數(shù)據(jù)集下RMSE值越小其效果越為理想,本文方法明顯優(yōu)于單純的CNN的表現(xiàn),而LSTM在大彎道處理表現(xiàn)轉(zhuǎn)彎力度不足。
4 結(jié)論
針對端到端自動駕駛中可能出現(xiàn)的車輛突然偏離正常車道這種極其危險的行為,本文提出了輔助車道線檢測的端到端自動駕駛,能夠較為有效的解決上述問題。車道線檢測輔助任務(wù)不是在訓(xùn)練中同步完成,而是作為獨(dú)立任務(wù),避免了大量的人工標(biāo)注,省時節(jié)力。和CNN+LSTM方法相比,本方法結(jié)構(gòu)簡單,訓(xùn)練和測試迭代速度快,且測試效果較優(yōu)。目前本方法能在開放道路的車道保持上有著較好的效果,但仍存在部分問題需要進(jìn)一步研究,比如動態(tài)繞障、換道并線表現(xiàn)不佳等問題。
參考文獻(xiàn)
[1] Deep learning. Y.LeCun, Y.Bengio, and G.Hinton, 2015.
[2] End to end learning for self-driving cars. M.Bojarski, D.D.Testa,D. Dworakow ski,B.Flepp,P.Goysl,etc,2016.
[3] End-to-end learning of Driving Models from Large-scale Video Datasets.H.Xu,Y.Gao,F(xiàn).Yu,and T.Darrell,2017.
[4] Long short-term memory recurrent neural network architectures for large scale acoustic modeling. H.Sak, A.Senior, and F.Beaufays, 2014.
[5] Deep steering:Learning end-to-end driving model from spatial and temporal visual cues. L.Chi, Y.Mu,etc. 2017.
[6] End-to-End Learning of Driving Models with Surround-view Camers and Route Planners. S.Hecher, D.Dai, L.VanGool,etc. 2018.
[7] End-to-end Multi-modal multi-task Vehicle Control for self-Driving Cars with Visual Perceptions. Z.Yang, Y.Zhang, J.Yu, J.Cai, J.Luo, 2018.
[8] Object detection networks on convolutional feature maps. S.Ren, K.He, R.B.Girshick,X.Zhang,and J.Sun, 2017.
[9] Learning affordance for direct perception in autonomous driving. C.Chen, A.Seff, A.Kornhauser, and J.Xiao, 2015.
[10] Learning End-to-end Autonomous Driving using Guided Auxiliary Supervision. A. Mehta, A. Subramanian, 2018.
[11] Off-road obstacle avoidance through end-to-end learning. U.Muller, J.Ben, E.Cosatto, B.Flepp, and Y.LeCun,2006.
[12] VisualBackProp:visualizing CNNs for autonomous driving. M. Bojarski, A.Choromanska, K.Choromanski,B.Firner,etc, 2016.