胡學(xué)敏,成 煜,陳國文,張若晗,童秀遲
(湖北大學(xué)計(jì)算機(jī)與信息工程學(xué)院,武漢 430062)
(*通信作者電子郵箱huxuemin2012@hubu.edu.cn)
自動(dòng)駕駛技術(shù)可以有效降低司機(jī)的行車勞累程度,提高交通系統(tǒng)的運(yùn)作效率和安全性。自動(dòng)駕駛中的運(yùn)動(dòng)規(guī)劃是在已獲取車輛狀態(tài)、環(huán)境、交通規(guī)則等數(shù)據(jù)的條件下,為車輛從當(dāng)前狀態(tài)到下一目的狀態(tài)做出合理的駕駛動(dòng)作,是自動(dòng)駕駛最核心的技術(shù)之一。因此,研究自動(dòng)駕駛的運(yùn)動(dòng)規(guī)劃,對(duì)提高自動(dòng)駕駛的智能性和可靠性有重要意義。
目前應(yīng)用較為廣泛的傳統(tǒng)運(yùn)動(dòng)規(guī)劃算法主要有快速搜索隨機(jī)樹算法[1]、啟發(fā)式搜索算法[2]、人工勢場法[3]和基于離散優(yōu)化算法[4]。此類傳統(tǒng)的路徑規(guī)劃算法在自動(dòng)駕駛中取得了較好的應(yīng)用效果,但是在實(shí)現(xiàn)過程中需要根據(jù)已知環(huán)境和規(guī)則來建立相應(yīng)的數(shù)學(xué)模型,因此在這些規(guī)則之中可以獲得較好的效果,卻難以適應(yīng)新的環(huán)境。
近年來,隨著機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,采用基于機(jī)器學(xué)習(xí)的方法來解決復(fù)雜的運(yùn)動(dòng)規(guī)劃問題成為了研究熱點(diǎn)。這類方法主要分為基于模仿學(xué)習(xí)[5]的方法和基于強(qiáng)化學(xué)習(xí)[6]的方法。前者主要通過深度神經(jīng)網(wǎng)絡(luò)獲取所需圖像或其他環(huán)境感知信息,實(shí)現(xiàn)感知數(shù)據(jù)到運(yùn)動(dòng)指令的函數(shù)映射。其中,在訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時(shí),需要大量帶標(biāo)注的樣本來對(duì)模型進(jìn)行監(jiān)督學(xué)習(xí),從而有效地?cái)M合從感知數(shù)據(jù)到運(yùn)動(dòng)指令的端到端的規(guī)劃函數(shù)。美國伍斯特理工學(xué)院提出了一種自動(dòng)駕駛汽車的端到端學(xué)習(xí)方法,能夠直接從前視攝像機(jī)拍攝的圖像幀中產(chǎn)生適當(dāng)?shù)姆较虮P轉(zhuǎn)角[7]。Waymo 公司設(shè)計(jì)的遞歸神經(jīng)網(wǎng)絡(luò)ChauffeurNet,通過專業(yè)駕駛數(shù)據(jù)學(xué)習(xí)自動(dòng)駕駛策略,可以處理模擬中的復(fù)雜情況[8],這類基于模仿學(xué)習(xí)的方法具有較強(qiáng)的運(yùn)動(dòng)規(guī)劃和道路識(shí)別能力,但是需要大量多樣化、帶標(biāo)注的樣本數(shù)據(jù),并且由于樣本的限制其泛化能力有限。
強(qiáng)化學(xué)習(xí)是智能體通過從環(huán)境中感知狀態(tài),在可選的動(dòng)作中選擇一個(gè)最大回報(bào)的動(dòng)作并執(zhí)行,來到達(dá)下一個(gè)狀態(tài)的學(xué)習(xí)策略。智能體在不斷地探索學(xué)習(xí)中學(xué)會(huì)如何在當(dāng)前環(huán)境中獲得最大回報(bào),由此來尋找最優(yōu)策略。強(qiáng)化學(xué)習(xí)方法有較強(qiáng)的決策能力,且不需要大量帶標(biāo)注的樣本,但是傳統(tǒng)的強(qiáng)化學(xué)習(xí)缺乏環(huán)境感知能力,難以得到準(zhǔn)確清晰的環(huán)境特征。將深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)結(jié)合起來得到的深度強(qiáng)化學(xué)習(xí),既有較強(qiáng)的特征提取能力,也有較高的決策能力。其代表模型深度Q 網(wǎng)絡(luò)(Deep Q-Network,DQN)[9]和深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)[10]可以通過提取圖像或是視頻的特征來進(jìn)行實(shí)時(shí)決策,并在諸多領(lǐng)域已經(jīng)超越了人類的表現(xiàn)[11]。然而,目前原始的深度強(qiáng)化學(xué)習(xí)算法DQN 和DDPG 僅僅利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[12]提取圖像的空間信息,沒有關(guān)聯(lián)時(shí)間信息,從而導(dǎo)致在學(xué)習(xí)過程中容易忘記之前所學(xué)習(xí)的信息,在長期信息學(xué)習(xí)中效果不好。此外,NVIDIA 公司研究的自動(dòng)駕駛運(yùn)動(dòng)規(guī)劃算法[13]和其他基于深度強(qiáng)化學(xué)習(xí)的自動(dòng)駕駛算法[7]都只達(dá)到了避障、循跡和單一的轉(zhuǎn)彎目的,沒有利用全局路徑信息,導(dǎo)致在定向?qū)Ш降淖詣?dòng)駕駛場景中表現(xiàn)不佳。
針對(duì)目前基于深度強(qiáng)化學(xué)習(xí)的自動(dòng)駕駛運(yùn)動(dòng)規(guī)劃方法沒有關(guān)聯(lián)時(shí)間信息、沒有利用全局路徑信息且無法實(shí)現(xiàn)定向?qū)Ш降膯栴},本文提出了一種將深度強(qiáng)化學(xué)習(xí)和長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)[14]相結(jié)合的深度時(shí)空Q網(wǎng)絡(luò)(Deep Spatio-Temporal Q-Network,DSTQN)。該模型通過由CNN 和LSTM 構(gòu)成的深度時(shí)空神經(jīng)網(wǎng)絡(luò)提取車載相機(jī)獲取的連續(xù)幀圖像的空間和時(shí)間信息,并輸入Q 網(wǎng)絡(luò)中選擇合適的駕駛指令。此外,為有效利用全局路徑信息,在網(wǎng)絡(luò)輸入的環(huán)境信息中加入指向信息,將全局路徑信息以可視化圖形的方式融入到駕駛場景圖像中,實(shí)現(xiàn)在全局路徑下定向?qū)Ш降淖詣?dòng)駕駛運(yùn)動(dòng)規(guī)劃。本文提出的方法既解決了自動(dòng)駕駛模型訓(xùn)練需要大量帶標(biāo)注樣本,以及強(qiáng)化學(xué)習(xí)在長期信息學(xué)習(xí)方面存在的難題,同時(shí)也使自動(dòng)駕駛車輛能夠利用全局路徑信息實(shí)現(xiàn)定向?qū)Ш?,為?qiáng)化學(xué)習(xí)算法在運(yùn)動(dòng)規(guī)劃領(lǐng)域的應(yīng)用提供了新的思路。
本文設(shè)計(jì)的基于深度時(shí)空Q網(wǎng)絡(luò)的定向?qū)Ш竭\(yùn)動(dòng)規(guī)劃算法在原始的DQN 算法中融入LSTM,采用CNN 和LSTM 提取空間與時(shí)間信息,將時(shí)空信息輸入Q網(wǎng)絡(luò)得到轉(zhuǎn)向與加速(包含油門與剎車)的決策動(dòng)作,然后反作用于環(huán)境。為實(shí)現(xiàn)定向?qū)Ш剑瑢h(huán)境信息送入神經(jīng)網(wǎng)絡(luò)前對(duì)其添加指向信息來實(shí)現(xiàn)車輛的定向?qū)Ш?。算法結(jié)構(gòu)如圖1所示。
圖1 定向?qū)Ш缴疃葧r(shí)空Q網(wǎng)絡(luò)算法結(jié)構(gòu)Fig.1 Structure of deep spatio-temporal Q-network with directional navigation
深度Q 網(wǎng)絡(luò)是深度強(qiáng)化學(xué)習(xí)的一種經(jīng)典算法,它將深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)中的Q 學(xué)習(xí)(Q-Learning)[15]結(jié)合起來,利用CNN 估計(jì)值函數(shù)。其中,將環(huán)境圖像數(shù)據(jù)作為狀態(tài)輸入CNN中,輸出從狀態(tài)中提取的環(huán)境特征,然后建立強(qiáng)化學(xué)習(xí)模型,其核心是三元組:狀態(tài)、動(dòng)作、獎(jiǎng)勵(lì)。智能體通過獲取的當(dāng)前環(huán)境狀態(tài)來選取一個(gè)動(dòng)作,并觀察得到的獎(jiǎng)勵(lì)和下一個(gè)狀態(tài),再由得到的信息不斷更新網(wǎng)絡(luò),從而使智能體學(xué)會(huì)選擇更優(yōu)的動(dòng)作,獲取更大的獎(jiǎng)勵(lì)。
在DQN 實(shí)現(xiàn)中,通過將從環(huán)境中獲取的信息輸入到主訓(xùn)練Q 網(wǎng)絡(luò),經(jīng)過Q 函數(shù)的計(jì)算,獲得一系列動(dòng)作a與Q值相對(duì)應(yīng)的序列,讓智能體選取Q值最大的動(dòng)作,由這個(gè)動(dòng)作來產(chǎn)生新的狀態(tài)環(huán)境并獲得獎(jiǎng)勵(lì)[9];并且在訓(xùn)練的同時(shí),將智能體與環(huán)境交互所獲得的數(shù)據(jù)存放到回放經(jīng)驗(yàn)池中,然后在后續(xù)訓(xùn)練中隨機(jī)抽取數(shù)量固定的數(shù)據(jù)樣本送入網(wǎng)絡(luò)中訓(xùn)練,通過計(jì)算損失函數(shù),使用梯度下降方法反向傳播來更新Q 網(wǎng)絡(luò)的權(quán)重參數(shù)θ,重復(fù)訓(xùn)練,直至損失函數(shù)收斂,尋找到最優(yōu)策略。損失函數(shù)如式(1)所示:
計(jì)算Q值如式(2)所示:
其中:s為智能體所處的當(dāng)前狀態(tài),s'為智能體完成動(dòng)作后的下一個(gè)狀態(tài);a為當(dāng)前做出的動(dòng)作,a'為下一個(gè)選擇的動(dòng)作;r為當(dāng)前做出動(dòng)作所獲得的獎(jiǎng)勵(lì);θ為主網(wǎng)絡(luò)權(quán)值參數(shù),θ'為目標(biāo)網(wǎng)絡(luò)權(quán)值參數(shù);γ為折扣因子。
由于DQN 只利用CNN 提取圖像空間特征,而沒有考慮時(shí)間關(guān)聯(lián)性,而在自動(dòng)駕駛的場景圖像中,既包含了靜態(tài)的當(dāng)前幀圖像的空間信息,又包含了動(dòng)態(tài)的前后幀圖像的時(shí)間信息,因此如果直接采用原始的DQN 會(huì)導(dǎo)致時(shí)間特征的丟失,降低運(yùn)動(dòng)規(guī)劃指令預(yù)測的準(zhǔn)確性。由于LSTM 能夠處理較長的時(shí)間序列,因此本文采用LSTM作為深度時(shí)空Q網(wǎng)絡(luò)的時(shí)間特征提取層,提取自動(dòng)駕駛場景序列圖像的前后幀圖像的長期時(shí)間信息,解決強(qiáng)化學(xué)習(xí)在長期學(xué)習(xí)中存在的問題。本文設(shè)計(jì)的DSTQN特征提取模型由CNN與LSTM兩部分組成。
為兼顧提取駕駛場景圖像特征和網(wǎng)絡(luò)的輕量化問題,本文以文獻(xiàn)[16]的網(wǎng)絡(luò)為原型,設(shè)計(jì)本文的CNN結(jié)構(gòu),如圖2所示。該網(wǎng)絡(luò)一共有4 層,輸入圖像是將從車載相機(jī)中獲取的連續(xù)4 幀圖像,加入定向?qū)Ш降闹赶蛐畔⑻幚砗?,將每幀圖像轉(zhuǎn)化成84×84 的8 位單通道彩色圖像,并堆疊起來構(gòu)成一組84×84×4的圖像信息。接下來是3個(gè)卷積層,卷積核大小依次為8×8、4×4 和3×3,卷積核的數(shù)量分別為32、64 和64。第4 層為全連接層,輸出4×1×512的節(jié)點(diǎn)映射集合。
圖2 CNN結(jié)構(gòu)Fig.2 CNN structure
本文采用的LSTM 結(jié)構(gòu)源于文獻(xiàn)[14],如圖3(a)所示,LSTM 神經(jīng)元通過三個(gè)門來控制細(xì)胞狀態(tài):遺忘門、輸入門和輸出門。遺忘門以上一層神經(jīng)元的輸出ht-1和本層輸入的數(shù)據(jù)xt為輸入,通過Sigmoid 層處理得到ft,表示上一層細(xì)胞狀態(tài)Ct-1被遺忘的概率;輸入門第一部分是ht-1和xt通過Sigmoid 層(如圖3(a)中σ 所示)處理后輸出it,第二部分使用tanh 激活函數(shù)(如圖3(a)中tanh 所示),輸出為C't,it×C't表示多少新信息被保留;將舊細(xì)胞狀態(tài)Ct-1×ft加上it×C't,得到新的細(xì)胞狀態(tài)Ct;第三階段即輸出門,首先將ht-1和xt輸入Sigmoid 層,處理得到[0,1]區(qū)間的ot,然后將新的細(xì)胞狀態(tài)Ct通過tanh函數(shù)處理后與ot相乘得到當(dāng)前神經(jīng)元的輸出ht。
圖3 LSTM結(jié)構(gòu)和深度時(shí)空Q網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Structures of LSTM and deep spatio-temporal Q-network
雖然通過CNN 輸入前后4 幀的圖像來關(guān)聯(lián)短期時(shí)間序列,但是難以通過這種方式提取長期的時(shí)間信息,因此本文在利用CNN 提取自動(dòng)駕駛圖像的空間特征之后,把空間特征信息通過LSTM 層進(jìn)行時(shí)間處理,提取前后幀之間的時(shí)間信息,其過程如圖3(b)所示。對(duì)于CNN 提取的特征向量xt,然后將這個(gè)特征向量輸入到LSTM 網(wǎng)絡(luò)中,ht和ht-1即為當(dāng)前LSTM單元和上一個(gè)單元的輸出。每個(gè)LSTM 單元輸出之后再通過1 個(gè)512 節(jié)點(diǎn)的全連接層后經(jīng)過Q 網(wǎng)絡(luò)輸出Q值。本文設(shè)置的LSTM 網(wǎng)絡(luò)以T(本文中T=10,為經(jīng)驗(yàn)值)幀展開來進(jìn)行訓(xùn)練。與原始的DQN 相比,加入了LSTM 網(wǎng)絡(luò)的DSTQN 可以處理較長的輸入序列,并擁有尋找時(shí)間上的依賴關(guān)系的能力,實(shí)現(xiàn)駕駛場景圖像前后幀之間的信息關(guān)聯(lián)。
本文利用CNN 和LSTM 構(gòu)成的深度時(shí)空神經(jīng)網(wǎng)絡(luò),提取連續(xù)幀圖像的空間和時(shí)間信息,并將時(shí)空信息輸入Q 網(wǎng)絡(luò)輸出合適的駕駛指令,實(shí)現(xiàn)在自動(dòng)駕駛中的運(yùn)動(dòng)規(guī)劃。
傳統(tǒng)的基于深度強(qiáng)化學(xué)習(xí)的自動(dòng)駕駛運(yùn)動(dòng)規(guī)劃算法,是汽車作為智能體通過選擇運(yùn)動(dòng)規(guī)劃的動(dòng)作指令,在不斷的“試錯(cuò)”中學(xué)習(xí)車道保持、避障等行為策略。然而,目前的算法均面向單一路徑,只適用于避障和循跡的場景,沒有考慮“T”形路口或“L”形路口等道路岔口,不能沿著指定路線進(jìn)行運(yùn)動(dòng)規(guī)劃。而人類駕駛員在駕駛汽車時(shí)預(yù)先知道自己的目的地以及全局路徑路線,或者在行車導(dǎo)航上會(huì)清晰地標(biāo)明行車路線,并在彎道處提醒駕駛員做出正確方向的轉(zhuǎn)彎操作。其中一種方法就是利用抬頭顯示(Head Up Display,HUD)設(shè)備,將全局導(dǎo)航信息投影在汽車擋風(fēng)玻璃上,隨前方駕駛場景一同作為駕駛員的觀測畫面。受到HUD 的啟發(fā),本文提出一種利用指向信息進(jìn)行定向?qū)Ш降姆椒?,將全局路線的信息融入到深度強(qiáng)化學(xué)習(xí)中,實(shí)現(xiàn)自動(dòng)駕駛車輛按照既定路線的定向?qū)Ш竭\(yùn)動(dòng)規(guī)劃。
本文提出的定向?qū)Ш阶詣?dòng)駕駛運(yùn)動(dòng)規(guī)劃方法基于預(yù)先獲取車輛的全局行駛路線,在車載相機(jī)獲取環(huán)境圖像后,根據(jù)獲取的路線信息,在當(dāng)前幀圖像中添加指向信號(hào),如圖4所示。
圖4 定向?qū)Ш街赶蛐畔⑹疽鈭DFig.4 Guide information schematic diagram for directional navigation
具體做法是:當(dāng)需要直線行駛時(shí),在圖像的道路上加入一個(gè)直行的箭頭作為定向?qū)Ш叫畔碇敢囕v直行;在路口處對(duì)當(dāng)前圖像加入一個(gè)轉(zhuǎn)彎的箭頭作為定向?qū)Ш叫畔碇敢囘M(jìn)行左轉(zhuǎn)或右轉(zhuǎn)操作。需要注意的是,指向信息是人為在全局路線中預(yù)先設(shè)定的,在路口處加入左轉(zhuǎn)或右轉(zhuǎn)箭頭,其他位置則加入直行箭頭。由于CNN 能夠提取自動(dòng)駕駛圖像中的特征,包括車道線、道路邊緣、其他障礙物等,而在基于學(xué)習(xí)的自動(dòng)駕駛運(yùn)動(dòng)規(guī)劃模型中,輸入圖像是環(huán)境信息的主要來源,因此將指向箭頭融入輸入圖像,能夠利用CNN 提取全局路徑信息,實(shí)現(xiàn)定向?qū)Ш健?/p>
本文設(shè)計(jì)的算法是通過將自動(dòng)駕駛模擬環(huán)境中得到的圖像處理后作為狀態(tài)s輸入到深度時(shí)空神經(jīng)網(wǎng)絡(luò)中,得到一系列的狀態(tài)序列,從而通過Q 網(wǎng)絡(luò)選擇一個(gè)動(dòng)作a,車輛由此動(dòng)作進(jìn)行自動(dòng)駕駛,并獲得下一狀態(tài)s',不斷循環(huán)。因此,深度時(shí)空Q網(wǎng)絡(luò)中三元組:狀態(tài)空間、動(dòng)作空間和獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)在模型學(xué)習(xí)中起到至關(guān)重要的作用。
1.3.1 狀態(tài)空間S的設(shè)計(jì)
狀態(tài)空間S是獲取的狀態(tài)s的集合,它反映汽車當(dāng)前所處的環(huán)境。網(wǎng)絡(luò)通過對(duì)狀態(tài)感知來獲取信息,進(jìn)而對(duì)汽車發(fā)出相應(yīng)的指令。本文所采用的汽車仿真模擬平臺(tái)是英特爾公司研發(fā)的Carla[17],通過在模擬器內(nèi)部設(shè)置前向RGB攝像頭獲取駕駛路徑的實(shí)時(shí)彩色圖像。由于原始圖像尺寸過大,且均為三通道的圖像,需要大量存儲(chǔ)內(nèi)存以及運(yùn)算資源,并且增加網(wǎng)絡(luò)訓(xùn)練難度和訓(xùn)練時(shí)間,因此本文對(duì)采集到的圖像進(jìn)行處理,將其轉(zhuǎn)換為“P”模式的單通道彩色圖像,并將尺寸處理成84×84。此外,本文將當(dāng)前時(shí)刻t的最近前n幀(本文中n=3)作為前后幀信息,經(jīng)過同樣的處理后與當(dāng)前幀疊加為4通道的84×84圖像,作為狀態(tài)輸入到CNN中。因此,本文的狀態(tài)空間S如式(3)所示:
其中:t表示當(dāng)前時(shí)刻,st為當(dāng)前幀的狀態(tài)。
1.3.2 動(dòng)作空間A的設(shè)計(jì)
動(dòng)作空間A是車輛根據(jù)當(dāng)前所獲得的狀態(tài)環(huán)境可能做出的動(dòng)作集合,Q 網(wǎng)絡(luò)從此集合中選取一個(gè)動(dòng)作指令,將指令傳遞給車輛執(zhí)行,從而進(jìn)入下一個(gè)狀態(tài)。汽車行駛動(dòng)作的加速度與轉(zhuǎn)向角度都是連續(xù)且時(shí)刻變化的。基于這種情況,本文選擇轉(zhuǎn)向和加速作為二維矢量來控制車輛,即:A=(ste,acc)其中,轉(zhuǎn)向ste為0 表示直行,正、負(fù)值分別表示向右和向左轉(zhuǎn)動(dòng)方向,且歸一化到-1~1;加速acc包含油門和剎車,分別用正、負(fù)值表示油門和剎車,同樣歸一化到-1~1。由于Q 網(wǎng)絡(luò)每次只能選取一個(gè)離散的動(dòng)作,故本文將轉(zhuǎn)向和加速離散化??紤]到車輛在行駛過程中,左右轉(zhuǎn)彎的可能性均等,而向前加速比減速更多,因此在轉(zhuǎn)向上設(shè)置左右對(duì)稱的離散值,而在加速上選取非對(duì)稱值。此外,還考慮到轉(zhuǎn)彎的時(shí)候加速度不宜過大的情況。
綜合以上因素,本文選取的ste∈{-0.6,-0.2,0,0.2,0.6}五個(gè)級(jí)別,acc∈{-0.5,0,0.5,0.9}四個(gè)級(jí)別,并且將這二者組合成7個(gè)動(dòng)作空間,如式(4)所示:
其中:a1=(0,0),a2=(0,-0.5),a3=(0,0.9),a4=(-0.2,0.5),a5=(-0.6,0.5),a6=(0.2,0.5),a7=(0.6,0.5),分別表示靜止、直行減速、直行加速、加速同時(shí)小幅度左轉(zhuǎn)、加速同時(shí)大幅度左轉(zhuǎn)、加速同時(shí)小幅度右轉(zhuǎn)、加速同時(shí)大幅度右轉(zhuǎn)7個(gè)動(dòng)作。
1.3.3 獎(jiǎng)勵(lì)函數(shù)R的設(shè)計(jì)
獎(jiǎng)勵(lì)是當(dāng)前狀態(tài)下衡量智能體所做動(dòng)作的好壞,以及對(duì)后續(xù)影響的優(yōu)劣程度,在本文中起引導(dǎo)車輛學(xué)習(xí)駕駛的作用。本文將全局路線設(shè)計(jì)成由數(shù)個(gè)離散點(diǎn)組成的基準(zhǔn)路線。如圖5 所示,基準(zhǔn)線用白色虛線表示,Qj-1、Qj、Qj+1表示離散的子目標(biāo)點(diǎn)。車輛在沿全局路線行駛的過程是不斷達(dá)到子目標(biāo)點(diǎn)的過程,即到達(dá)一個(gè)子目標(biāo)點(diǎn)后就朝下一個(gè)子目標(biāo)點(diǎn)行駛。要使汽車學(xué)會(huì)在既定航線上行駛,需要同時(shí)關(guān)注橫向獎(jiǎng)勵(lì)和縱向獎(jiǎng)勵(lì)。橫向獎(jiǎng)勵(lì)使車輛能夠?qū)W會(huì)如何行駛在車道范圍內(nèi)而不超過車道中線和車道邊線;縱向獎(jiǎng)勵(lì)使車輛能夠?qū)W會(huì)不斷靠近子目標(biāo)點(diǎn)從而實(shí)現(xiàn)不斷前行。車輛按照指定路線行駛時(shí)獎(jiǎng)勵(lì)為正,且車頭指向與道路方向夾角越小、車輛越靠近道路中線,獲得的獎(jiǎng)勵(lì)越高;反之,當(dāng)超過車道中線和車道外側(cè),或者車頭偏離道路方向時(shí),獲得的獎(jiǎng)勵(lì)應(yīng)該為負(fù)分。
圖5 獎(jiǎng)勵(lì)函數(shù)中各參數(shù)示意圖Fig.5 Parameters in reward function
根據(jù)強(qiáng)化學(xué)習(xí)獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)的經(jīng)驗(yàn)和對(duì)自動(dòng)路徑規(guī)劃問題的理解,設(shè)計(jì)出獎(jiǎng)勵(lì)函數(shù)如式(5)所示:
其中:v為車輛當(dāng)前行駛速度;β為車頭偏離基準(zhǔn)線的角度;D為汽車中心點(diǎn)距離上一個(gè)目標(biāo)點(diǎn)的路徑在基準(zhǔn)線上的投影長度;D0為當(dāng)前位置對(duì)應(yīng)附近兩目標(biāo)點(diǎn)距離;d為車輛中心點(diǎn)偏移基準(zhǔn)線的垂直距離;Sol為車輛超出對(duì)向車道線的面積比值;Sor為車輛超出道路邊線的面積比值;drw為車道寬度(此處是4);ζ為權(quán)重,代表橫向與縱向規(guī)劃的獎(jiǎng)勵(lì)所占比重大小,本文經(jīng)過多次實(shí)驗(yàn),且為了獎(jiǎng)勵(lì)汽車向前行駛,將ζ設(shè)置為0.6。P1為汽車中心點(diǎn),P0為汽車中心點(diǎn)在基準(zhǔn)線上的投影點(diǎn)。
在深度強(qiáng)化學(xué)習(xí)算法中,網(wǎng)絡(luò)參數(shù)對(duì)訓(xùn)練的結(jié)果有較大的影響,因此參數(shù)的設(shè)置與調(diào)整十分重要。本文針對(duì)DSTQN模型所設(shè)置的參數(shù)如表1 所示。其中:折扣因子表示隨著訓(xùn)練的不斷進(jìn)行,時(shí)間遠(yuǎn)近對(duì)當(dāng)前訓(xùn)練獲得獎(jiǎng)勵(lì)的影響程度;初始學(xué)習(xí)率是指在開始訓(xùn)練更新策略時(shí)更新網(wǎng)絡(luò)權(quán)值的程度大??;訓(xùn)練批次大小指在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)每一次送入模型的樣本數(shù)量;記憶池是用來存儲(chǔ)已訓(xùn)練的樣本數(shù)據(jù)的;探索次數(shù)是指在探索一定次數(shù)后模型開始訓(xùn)練;初始和終止探索因子表示在訓(xùn)練不同階段探索時(shí)選取動(dòng)作的概率大小。本文采取貪心算法[18]來決定動(dòng)作的選取,采用一個(gè)初始探索因子ε來決定汽車選取動(dòng)作是隨機(jī)探索還是根據(jù)Q值概率,然后根據(jù)訓(xùn)練次數(shù)的加大,ε逐漸減小,直到等于終止探索因子ε'時(shí)維持不變。根據(jù)貪心算法,本文選擇最大Q值對(duì)應(yīng)的動(dòng)作,則能獲取趨于最優(yōu)的自動(dòng)駕駛運(yùn)動(dòng)規(guī)劃結(jié)果。
表1 DSTQN算法中的參數(shù)設(shè)置Tab.1 Parameter setting of DSTQN algorithm
考慮到真實(shí)汽車駕駛環(huán)境復(fù)雜度和安全性問題,本文選取模擬駕駛平臺(tái)Carla 進(jìn)行實(shí)驗(yàn)。Carla 是英特爾實(shí)驗(yàn)室AleyeyDosovitskiy 和巴塞羅那計(jì)算機(jī)視覺中心共同開發(fā)的開源駕駛模擬器,其逼真的模擬場景、大范圍的地圖、多路況和天氣以及各類汽車信息傳感器的模擬,很適合作為自動(dòng)駕駛的模擬器。通過Carla 模擬器官方提供的應(yīng)用程序編程接口可以獲取車輛的實(shí)時(shí)速度、加速度、朝向、碰撞數(shù)據(jù)、在環(huán)境中的GPS坐標(biāo)等數(shù)據(jù),以及交通規(guī)則評(píng)估數(shù)據(jù),如汽車超出當(dāng)前車道的面積比值等信息;還可以自主添加相機(jī)、激光雷達(dá)和傳感器來獲得駕駛圖像、障礙物信息和其他信息。本文選取的汽車模擬環(huán)境是一個(gè)小鎮(zhèn),道路為雙車道,車道寬度為4 m,擁有直行以及“L”形路口和“T”形路口,選用的車輛寬度為2 m。
本文實(shí)驗(yàn)的軟件環(huán)境為Ubuntu16.04,深度神經(jīng)網(wǎng)絡(luò)框架采 用Keras,硬件環(huán)境CPU 為Core I7-7700K(Quad-core 4.2 GHz),GPU為NVIDIA GTX 1080Ti,內(nèi)存為32 GB。
由于本文的目的是訓(xùn)練自動(dòng)駕駛的定向?qū)Ш?,因此在模擬器中未加入交通信號(hào)燈、行人和車輛等障礙物。為驗(yàn)證模型在直行、左右轉(zhuǎn)彎中的表現(xiàn),本文選取Carla 模擬器中兩條不同的復(fù)雜路徑,如圖6中R1 和R2 所示,起點(diǎn)用圓形表示,終點(diǎn)用正方形表示,這兩條路線既包含了較長的直線行駛,也包含了“L”形和“T”形路口所需的左轉(zhuǎn)彎和右轉(zhuǎn)彎,其中轉(zhuǎn)彎個(gè)數(shù)、直道數(shù)目和路徑長度如表2 所示。汽車每一輪訓(xùn)練會(huì)隨機(jī)選取一個(gè)起始點(diǎn),遇到終止條件結(jié)束并開始下一輪訓(xùn)練。其中,終止條件包括汽車到達(dá)該路徑終點(diǎn),或者行駛到對(duì)向車道、行駛出機(jī)動(dòng)車道路、車頭指向與道路方向垂直、在路口走錯(cuò)方向。
圖6 訓(xùn)練和測試全局路徑Fig.6 Global routes for training and testing
在強(qiáng)化學(xué)習(xí)算法中,每一步迭代汽車獲得的獎(jiǎng)勵(lì)是評(píng)判汽車強(qiáng)化學(xué)習(xí)效果的重要標(biāo)準(zhǔn)之一,同時(shí)測試自動(dòng)駕駛模型時(shí)汽車每輪次所行駛的距離也是一個(gè)重要指標(biāo),所以本文使用汽車的單次迭代獎(jiǎng)勵(lì)和每輪次汽車行駛的距離作為學(xué)習(xí)效果的表現(xiàn)形式。
表2 訓(xùn)練和測試路徑的數(shù)據(jù)信息Tab.2 Data information of training and testing routes
為了體現(xiàn)本文方法的學(xué)習(xí)性能,采用原始的DQN[9]進(jìn)行同樣的訓(xùn)練來與本文提出的DSTQN(ζ=0.6)進(jìn)行對(duì)比。圖7(a)表示模型學(xué)習(xí)過程中每一次迭代的獎(jiǎng)勵(lì),圖7(b)和(c)表示車輛在R1 和R2中訓(xùn)練時(shí)每輪行駛的距離。由于迭代次數(shù)較多,因此圖7中的曲線都是進(jìn)行了平滑處理的結(jié)果??梢钥闯鲈谟?xùn)練初期獎(jiǎng)勵(lì)很小且行駛距離很短,兩種方法相差不大,這個(gè)時(shí)候汽車處于觀察階段;而在訓(xùn)練中后期,加入定向?qū)Ш椒椒ǖ莫?jiǎng)勵(lì)快速升高并達(dá)到了獎(jiǎng)勵(lì)值5,且在R1 和R2中的行駛距離分別達(dá)到400 m 和120 m,即能夠完成所有轉(zhuǎn)彎和直行的動(dòng)作并到達(dá)2 條訓(xùn)練路徑的終點(diǎn)。而未加入定向?qū)Ш降脑糄QN 方法學(xué)習(xí)速度要落后許多,獎(jiǎng)勵(lì)值最高才到達(dá)3,且在R1 和R2中的行駛距離最遠(yuǎn)分別才達(dá)到200 m 和70 m,分別在圖(6)中標(biāo)號(hào)為3 和2 的矩形虛線框路口很難完成轉(zhuǎn)彎的動(dòng)作,沒有按照既定的全局路線行駛。由此可以看出加入定向?qū)Ш叫畔⒌腄STQN 比原始的DQN 學(xué)習(xí)速度快很多,能夠大幅度縮短訓(xùn)練時(shí)間,并且最終獲得獎(jiǎng)勵(lì)更高,行駛距離更遠(yuǎn),效果更好。
為了驗(yàn)證獎(jiǎng)勵(lì)函數(shù)中關(guān)于超參數(shù)ζ的設(shè)置,本文分別選取了ζ的幾個(gè)典型取值0.1,0.5、0.6 和0.9 來構(gòu)造獎(jiǎng)勵(lì)函數(shù),并進(jìn)行相同的訓(xùn)練。由于選取不同的ζ時(shí)獎(jiǎng)勵(lì)函數(shù)發(fā)生改變,每步獲得獎(jiǎng)勵(lì)無法作為不同獎(jiǎng)勵(lì)函數(shù)下汽車訓(xùn)練效果的評(píng)價(jià)指標(biāo),因此選擇每輪行駛距離作為評(píng)價(jià)指標(biāo)。對(duì)比實(shí)驗(yàn)結(jié)果如圖7(b)和圖7(c)所示,可以看出在訓(xùn)練了約1 200 輪之后,當(dāng)ζ=0.6時(shí),基于DSTQN 的方法在兩條路徑中行駛距離均最大,在路徑R1和R2分別達(dá)到了400 m和120 m;ζ=0.5時(shí)在兩條路徑上行駛距離分別最大為380 m 和110 m;ζ=0.9時(shí)最大行駛距離僅僅為300 m 和90 m;ζ=0.1時(shí)最大行駛距離分別為220 m 和90 m??梢姦?0.6時(shí)算法學(xué)習(xí)性能最佳,在訓(xùn)練相同輪數(shù)后行駛的距離最遠(yuǎn)。
駕駛穩(wěn)定性也是自動(dòng)駕駛的一個(gè)重要指標(biāo)。本文選取4條路經(jīng)進(jìn)行測試,如圖6中R3、R4、R5、R6 所示。這4 條測試路徑幾乎不與訓(xùn)練路徑重復(fù),但是又涵蓋了整個(gè)地圖場景,且同樣包含了直線路段、“L”形和“T”形路口等,每條路中轉(zhuǎn)彎個(gè)數(shù)、直道數(shù)目和路徑長度如表2所示。
在測試過程中,本文選取了原始DQN[9]、異步優(yōu)勢演員-評(píng)論家(Asynchronous Advantage Actor-Critic,A3C)算法[19]、DDPG[11]和模仿學(xué)習(xí)的方法[17]進(jìn)行對(duì)比測試。其中,DQN 和DSTQN 是本文訓(xùn)練了120 萬步的模型,而A3C 方法則采用的是Intel公司在Carla中訓(xùn)練了1 000萬步的模型,DDPG算法是本文訓(xùn)練了100 萬步的模型,模仿學(xué)習(xí)算法是Carla 官方訓(xùn)練的模型。為衡量駕駛穩(wěn)定性,本文采用測試路徑整個(gè)過程的平均偏差dave作為評(píng)判標(biāo)準(zhǔn),計(jì)算如下:
其中:di為車輛在完成當(dāng)前測試路徑的第i個(gè)狀態(tài)時(shí),從汽車的中心點(diǎn)到車道中心的垂直距離(如圖5中的參數(shù)d所示);Ntest為測試當(dāng)前路徑時(shí)總的迭代次數(shù)。
圖7 訓(xùn)練的獎(jiǎng)勵(lì)曲線與行駛距離曲線Fig.7 Reward and driving distance curves of training
表3 是不同方法在4 條測試路線的平均偏差。由表3 可以看出,DQN方法均未完成測試路線的巡航,A3C方法只完成了R3和R4,DDPG 只完成了R3和R4,模仿學(xué)習(xí)沒有完成R5,而DSTQN 方法由于采用了定向?qū)Ш降姆椒▌t能全部完成。在完成的路徑中,除了R4路徑中A3C方法的平均偏差稍微低于DSTQN 之外,其他路徑中DSTQN(ζ=0.6)的平均偏差要比Intel 公司訓(xùn)練的A3C 方法低很多。這是因?yàn)榛贒STQN 的方法能夠利用定向?qū)Ш叫畔硗瓿杉榷ㄐ旭偮肪€,且利用了駕駛圖像的時(shí)間和空間特征,運(yùn)動(dòng)規(guī)劃指令預(yù)測更加準(zhǔn)確,因此車輛行駛更加穩(wěn)定,效果更好,而未利用定向?qū)Ш叫畔⒌姆椒▽?duì)全局路徑掌握不足,通常只能完成直行而無法按照既定路線行駛,大多在彎道時(shí)就偏離了軌跡,特別是在有多個(gè)定向轉(zhuǎn)彎的路徑中(如R5),而只有基于定向?qū)Ш街赶蛐畔⒌腄STQN 方法能完成路徑規(guī)劃順利到達(dá)終點(diǎn)。對(duì)于只有一個(gè)定向轉(zhuǎn)彎的測試路徑R4,由于對(duì)比方法A3C 是Intel 公司在Carla中訓(xùn)練了1 000 萬步的結(jié)果,訓(xùn)練次數(shù)遠(yuǎn)大于本文提出的DSTQN(ζ=0.6)方法的120 萬步訓(xùn)練,因此DSTQN 在具有長直線的測試路徑中具有更好的表現(xiàn),而DDPG 和模仿學(xué)習(xí)在各條路徑下表現(xiàn)均不如DSTQN方法。
圖8 為三種方法在R6 第一個(gè)彎道(如圖6中標(biāo)號(hào)為1 的虛線框所示)的駕駛場景截圖??梢钥吹皆谵D(zhuǎn)彎時(shí),DDPG 方法能夠完成既定的右轉(zhuǎn)動(dòng)作,但在轉(zhuǎn)彎后行駛到了道路中間;模仿學(xué)習(xí)方法轉(zhuǎn)彎時(shí)左右晃動(dòng)嚴(yán)重,多次越過車道中線;DQN方法在拐彎處偏離了既定的右轉(zhuǎn)方向,導(dǎo)致測試失?。籄3C方法雖然能夠完成既定的右轉(zhuǎn)動(dòng)作,但是右轉(zhuǎn)之后駛?cè)肓藢?duì)向車道。只有DSTQN 方法在轉(zhuǎn)彎時(shí)較標(biāo)準(zhǔn)沿著安全的規(guī)定路線行駛,可以看出DSTQN方法行駛穩(wěn)定性更高。
圖8 測試過程的駕駛場景截圖Fig.8 Snapshots of driving scenarios in testing process
本文對(duì)獎(jiǎng)勵(lì)函數(shù)中不同超參數(shù)ζ訓(xùn)練出的模型進(jìn)行了測試:當(dāng)ζ=0.1時(shí)汽車更加注重橫向獎(jiǎng)勵(lì),使其在各條路徑平均偏差都比較小,但無法完成有較多轉(zhuǎn)彎的R5 和R6 路線;ζ=0.5和ζ=0.6時(shí)所有路徑均能完成,但ζ=0.6時(shí)偏差距離小于ζ=0.5時(shí)的偏差距離;ζ=0.9時(shí)無法完成R3 和R5。綜合訓(xùn)練過程中不同ζ的訓(xùn)練效果和不同ζ模型的測試結(jié)果,可以看出,ζ=0.6時(shí)算法學(xué)習(xí)性能強(qiáng),測試穩(wěn)定性高,超參數(shù)ζ設(shè)置為0.6最為合適。
模型實(shí)時(shí)性也是自動(dòng)駕駛的一個(gè)重要指標(biāo),直接反映了該模型從接收?qǐng)D像輸入到輸出相應(yīng)的駕駛動(dòng)作需要的時(shí)間。對(duì)于高速行駛的汽車,實(shí)時(shí)性顯得尤為重要,本文分別測試了DQN 模型、A3C 模型、DSTQN 模型和模仿學(xué)習(xí)模型在四條測試路徑上的平均決策時(shí)間,如表4 所示??梢钥吹剿姆N方法決策時(shí)間均小于0.2 s,本文設(shè)置圖像顯示幀率為每秒5幀,故四種方法均可在當(dāng)前幀完成決策。由于DQN 方法模型結(jié)構(gòu)較為簡單,實(shí)時(shí)性較高而決策效果不佳;A3C方法決策時(shí)間較長,若幀率過大則無法完成決策;DSTQN 方法和模仿學(xué)習(xí)方法決策時(shí)間都較短,能夠充分滿足決策問題對(duì)實(shí)時(shí)性的要求。
表4 實(shí)時(shí)性測試結(jié)果Tab.4 Testing results of real-time performance
本文提出了一種基于深度時(shí)空Q網(wǎng)絡(luò)的定向?qū)Ш阶詣?dòng)駕駛運(yùn)動(dòng)規(guī)劃算法,該算法在原始DQN中加入了CNN 和LSTM網(wǎng)絡(luò)以同時(shí)提取駕駛場景的空間圖像特征和前后幀之間的長期時(shí)間特征;此外,為了利用全局導(dǎo)航信息,在輸入圖像中加入指向箭頭,實(shí)現(xiàn)定向?qū)Ш降淖詣?dòng)駕駛。實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有方法相比,本文方法具有更好的學(xué)習(xí)性能和駕駛平穩(wěn)性,且能夠讓車輛按指定路線沿著全局導(dǎo)航路徑行駛,達(dá)到真正的自動(dòng)駕駛目的。由于本文方法旨在解決自動(dòng)駕駛的定向?qū)Ш胶托旭偡€(wěn)定性問題,因此本文方法沒有考慮道路上的障礙物,如車輛和行人。未來的工作將集中在處理避障問題上,并在模型中引入交通信號(hào)。