鄭振華,劉其朋
(青島大學(xué)復(fù)雜性科學(xué)研究所,山東 青島 266071)
隨著人工智能技術(shù)的突破性發(fā)展,曾經(jīng)只存在于科幻電影中的自動(dòng)駕駛汽車也逐漸進(jìn)入現(xiàn)實(shí)世界。自動(dòng)駕駛汽車不僅可以把人類從枯燥的駕駛中解放出來,將精力投入到更有價(jià)值的活動(dòng)中,還可以減少人為失誤造成的交通事故。自動(dòng)駕駛汽車不再是交通工具,而是移動(dòng)的生活場所,它必將帶來人類出行方式的根本性改變,進(jìn)而導(dǎo)致人類社會的巨大變革。鑒于自動(dòng)駕駛汽車可預(yù)見的影響力,各國政府陸續(xù)出臺各種規(guī)章制度,推動(dòng)這一技術(shù)的發(fā)展,同時(shí)提供了指導(dǎo)性的發(fā)展規(guī)劃。尤其是2020年2月10日,中國科技部、工信部等11個(gè)部門聯(lián)合印發(fā)《智能汽車創(chuàng)新發(fā)展戰(zhàn)略》,提出到2025年,實(shí)現(xiàn)有條件自動(dòng)駕駛的智能汽車達(dá)到規(guī)?;a(chǎn),實(shí)現(xiàn)高度自動(dòng)駕駛的智能汽車在特定環(huán)境下市場化應(yīng)用。面對巨大的商機(jī),各國企業(yè)也在自動(dòng)駕駛系統(tǒng)研發(fā)和推廣中投入巨大的人力、財(cái)力。百度、華為等明星科技企業(yè)均發(fā)布了自動(dòng)駕駛系統(tǒng)解決方案或智能芯片。在政府和企業(yè)的大力推動(dòng)下,我們有理由相信,自動(dòng)駕駛汽車在不遠(yuǎn)的將來必將進(jìn)入我們的日常生活中。
從技術(shù)層面來講,自動(dòng)駕駛系統(tǒng)包含3個(gè)主要模塊:感知、決策和控制。感知模塊中,車輛通過傳感器(包括攝像頭、激光雷達(dá)、GPS、慣性導(dǎo)航單元等)感知周圍環(huán)境和自身狀態(tài);決策模塊中,車輛基于感知信息確定行駛路線和駕駛行為,例如是否變道、是否減速讓行;控制模塊中,進(jìn)一步考慮車輛的物理限制,例如速度上限、車輪轉(zhuǎn)角范圍,安全可靠的執(zhí)行決策命令?,F(xiàn)有已公開的自動(dòng)駕駛系統(tǒng)均采用了上述模塊化的解決方案,分別設(shè)計(jì)實(shí)現(xiàn)上述相對獨(dú)立的模塊,最后整合起來完成自動(dòng)駕駛?cè)蝿?wù)[1-2]。模塊化的系統(tǒng)架構(gòu)的優(yōu)點(diǎn)是可解釋性比較強(qiáng),因?yàn)榇蟛糠肿尤蝿?wù)(除了目標(biāo)識別相關(guān)的任務(wù))都是基于明確規(guī)則的。缺點(diǎn)是系統(tǒng)非常復(fù)雜,開發(fā)、維護(hù)成本較高。
目前基于神經(jīng)網(wǎng)絡(luò)的端到端自動(dòng)駕駛系統(tǒng)逐漸引起學(xué)術(shù)界和工業(yè)界的關(guān)注。這類系統(tǒng)不再明確區(qū)分感知、決策和控制模塊,而是將自動(dòng)駕駛系統(tǒng)作為整體考慮,用神經(jīng)網(wǎng)絡(luò)完成從傳感器信息到控制命令的映射。例如,Bojarski等人采用監(jiān)督學(xué)習(xí)(Supervised Learning)的方式實(shí)現(xiàn)了端到端自動(dòng)駕駛系統(tǒng)[3]。訓(xùn)練好的系統(tǒng)僅需要前置攝像頭圖像信息便可以得到最終的車輛轉(zhuǎn)角控制命令,保證車輛沿給定車道行駛。為了訓(xùn)練車輛適應(yīng)各種車道形狀,監(jiān)督學(xué)習(xí)方式需要人工采集大量訓(xùn)練數(shù)據(jù),包括攝像頭信息和對應(yīng)的人類駕駛員的正確操作。可見,為了訓(xùn)練具有魯棒性的自動(dòng)駕駛系統(tǒng),訓(xùn)練數(shù)據(jù)需要覆蓋盡量多的駕駛場景。高質(zhì)量訓(xùn)練數(shù)據(jù)的收集是監(jiān)督學(xué)習(xí)中最重要也是最困難的部分之一。在監(jiān)督學(xué)習(xí)中,自動(dòng)駕駛系統(tǒng)學(xué)習(xí)的是給定環(huán)境中人類駕駛員的操作,它的學(xué)習(xí)效果上限就是人類駕駛員的操作水平,不會搜索更優(yōu)的駕駛操作。
強(qiáng)化學(xué)習(xí),尤其是基于神經(jīng)網(wǎng)絡(luò)的深度強(qiáng)化學(xué)習(xí),由于在棋類、游戲類場景中超越人類的表現(xiàn)而獲得巨大關(guān)注[4]。通過設(shè)定恰當(dāng)?shù)莫?jiǎng)勵(lì)機(jī)制,系統(tǒng)可以自動(dòng)探索給定環(huán)境下對應(yīng)的最佳動(dòng)作,這種尋優(yōu)的結(jié)果很可能超越人類的水平[5-6]。例如,在AlphaGo的訓(xùn)練中,研究人員首先基于人類棋譜采用監(jiān)督學(xué)習(xí)的方式訓(xùn)練系統(tǒng),使其對圍棋游戲規(guī)則有初步理解,然后采用深度強(qiáng)化學(xué)習(xí)的方式讓系統(tǒng)繼續(xù)搜索可以獲得更大收益的策略[5]。
近年來,強(qiáng)化學(xué)習(xí)在自動(dòng)駕駛系統(tǒng)中的應(yīng)用也越來越受到學(xué)界的關(guān)注。各類先進(jìn)的強(qiáng)化學(xué)習(xí)算法被用于訓(xùn)練具有魯棒性的自動(dòng)駕駛系統(tǒng)。中國國內(nèi)在這方面已有不少研究。例如,劉偲將DDPG(Deep Deterministic Policy Gradient)強(qiáng)化學(xué)習(xí)算法用于訓(xùn)練自動(dòng)駕駛系統(tǒng),在仿真平臺上,訓(xùn)練好的車輛可以沿給定車道線行駛,驗(yàn)證了該方案的有效性[7]。張斌等人改進(jìn)了DDPG算法,在訓(xùn)練過程中重點(diǎn)關(guān)注過往失敗的訓(xùn)練數(shù)據(jù),訓(xùn)練效果得到明顯提升[8]。王丙琛等人采用人類駕駛數(shù)據(jù)對系統(tǒng)進(jìn)行預(yù)訓(xùn)練,并加入LSTM(Long Short Term Memory)機(jī)制,提升了車輛對未來狀況的預(yù)判,仿真測試表明,訓(xùn)練時(shí)間大大縮短,系統(tǒng)穩(wěn)定性得到提升[9]。夏偉等人將強(qiáng)化學(xué)習(xí)算法DQN(Deep Q-Networks)用于自動(dòng)駕駛系統(tǒng),基于實(shí)際駕駛員數(shù)據(jù)對系統(tǒng)進(jìn)行預(yù)訓(xùn)練,并加入了經(jīng)驗(yàn)數(shù)據(jù)聚類采樣過程,使用更少的訓(xùn)練數(shù)據(jù),更高效的訓(xùn)練自動(dòng)駕駛系統(tǒng)[10]。李志航采用Double DQN結(jié)合LSTM,在仿真平臺獲得了相比于傳統(tǒng)DDPG更好的訓(xùn)練效果[11]。
上述研究中,強(qiáng)化學(xué)習(xí)的輸入數(shù)據(jù),即智能體觀測到的環(huán)境狀態(tài)均是低維傳感器數(shù)據(jù),包括車輛行駛方向與車道夾角、車輛與車道邊緣距離、車身方向速度等,并不包括來自前置攝像頭的視覺圖像信息。這是由于圖像本身維度過高,例如一個(gè)600×800像素的RGB彩色圖像,維度為1 440 000。強(qiáng)化學(xué)習(xí)算法很難直接從這么高維度的數(shù)據(jù)中學(xué)習(xí)出與駕駛操作相關(guān)的信息。為了解決這一問題,Raffin等人提出了一種將圖像特征提取與強(qiáng)化學(xué)習(xí)解耦的方案,首先對高維圖像數(shù)據(jù)進(jìn)行特征提取,在降低數(shù)據(jù)維度的同時(shí)保留原始數(shù)據(jù)中的關(guān)鍵信息[12]。Kendall將這一思想應(yīng)用于自動(dòng)駕駛中,設(shè)計(jì)了變分自編碼器(VAE, Variational AutoEncoder)提取圖像信息,然后將降維之后的特征送入DDPG算法進(jìn)行強(qiáng)化學(xué)習(xí)訓(xùn)練。實(shí)車測試結(jié)果表明,只需要經(jīng)過約30分鐘的訓(xùn)練,車輛即可沿給定車道線自動(dòng)行駛[13]。
Kendall等人的工作雖然實(shí)現(xiàn)了基于純視覺感知的強(qiáng)化學(xué)習(xí)自動(dòng)駕駛系統(tǒng),但是沒有考慮系統(tǒng)的泛化能力。所謂的泛化能力是指在一種環(huán)境中訓(xùn)練的系統(tǒng)可以應(yīng)用到其他明顯不同的環(huán)境中。如果自動(dòng)駕駛系統(tǒng)泛化能力比較差,那么每次環(huán)境稍微變化都需要重新訓(xùn)練,這顯然是不合適的。Bojarski等人的工作表明,車道保持任務(wù)中關(guān)鍵的信息就是車道線的位置[14]。受這一工作啟發(fā),本文對Kendall等人的工作做了兩方面的改進(jìn):1)加入了車道線提取環(huán)節(jié),將原始圖像轉(zhuǎn)化為只保留車道線信息的灰度圖;2)采用訓(xùn)練效率更高、效果更好的SAC(Soft Actor-Critic)強(qiáng)化學(xué)習(xí)算法。
本文內(nèi)容安排如下:首先給出系統(tǒng)的整體架構(gòu),然后依次介紹車道線提取環(huán)節(jié)、變分自編碼器特征降維環(huán)節(jié)和基于降維特征的SAC強(qiáng)化學(xué)習(xí)環(huán)節(jié),最后在仿真實(shí)驗(yàn)平臺上測試系統(tǒng)的有效性和泛化能力。
本文設(shè)計(jì)的自動(dòng)駕駛系統(tǒng)架構(gòu)如圖1所示,車輛首先通過前置攝像頭獲取道路圖像數(shù)據(jù)。圖像為RGB彩圖,包含豐富的環(huán)境信息,但也包含與自動(dòng)駕駛?cè)蝿?wù)不相關(guān)的干擾信息,如天空、車道外側(cè)地面等。為了提取關(guān)鍵的車道線信息,將彩色圖轉(zhuǎn)化成灰度圖后,使用高斯濾波對灰度圖進(jìn)行平滑處理,去除高頻噪聲,再利用Canny算法[15]進(jìn)行輪廓檢測,只包含圖像中物體的輪廓線條。之后利用掩膜提取圖片中的感興趣區(qū)域(ROI),即圖片中的車道線。完成車道線提取工作之后,得到僅包含車道線信息的黑白二值圖像,大小與原圖相同。為了降低訓(xùn)練數(shù)據(jù)維度,用變分自編碼器對圖像進(jìn)行特征提取,在極大降低特征維度的同時(shí),保留圖中的關(guān)鍵信息。此時(shí),原圖像變換為低維向量。隨后,將低維特征作為觀測狀態(tài)放入SAC強(qiáng)化學(xué)習(xí)算法中進(jìn)行訓(xùn)練。最終,訓(xùn)練好的系統(tǒng)將會根據(jù)輸入決定相應(yīng)的車輛操控策略,輸出車輛的速度與轉(zhuǎn)角命令,使得車輛保持在給定車道線內(nèi)行駛。
圖1 系統(tǒng)整體架構(gòu)
不同道路環(huán)境中,路面顏色和質(zhì)地、車道線形狀、環(huán)境背景紋理可能差別很大。但是為了方便駕駛員辨認(rèn),車道線與路面在外觀上一般有明顯差異,例如采用比較醒目的顏色進(jìn)行區(qū)分?;谶@一觀察,車道線可以通過計(jì)算機(jī)視覺算法提取出來。本文中采用Canny算法[15]進(jìn)行車道線輪廓提取。
在處理圖片時(shí),先將RGB彩色圖片轉(zhuǎn)換成灰度圖,雖然轉(zhuǎn)換過程會損失顏色信息,但一般并不會妨礙車道線與路面的區(qū)分,依然可以保留原圖中顏色變化的信息(此時(shí)變?yōu)榛叶鹊淖兓?,而且從三通道的RGB彩圖變換到單通道的灰度圖,維度的降低會加速后續(xù)圖像的處理。本文采用OpenCV中的顏色轉(zhuǎn)換函數(shù),具體的灰度值與RGB值的變換公式為
GRAY=0.30R+0.59G+0.11B
其中,GRAY為灰度圖中任意一點(diǎn)的灰度值,R、G、B分別為彩色圖片中對應(yīng)位置紅、綠、藍(lán)三通道的像素值,對三個(gè)顏色通道進(jìn)行加權(quán)計(jì)算,得到相應(yīng)的灰度值。
車道線提取的基本思想是通過灰度變化的幅度識別車道線輪廓。原圖像中可能存在噪聲點(diǎn),而噪聲點(diǎn)與周圍灰度值有明顯區(qū)別,可能影響對車道線輪廓的判斷。因此,首先要對圖像做平滑處理,降低噪聲點(diǎn)的干擾。這里采用高斯平滑方法,也稱為高斯模糊。在高斯平滑中,用一個(gè)權(quán)重矩陣w與圖像中每一個(gè)像素點(diǎn)及其鄰居做卷積,實(shí)際上就是令原圖中每一個(gè)像素點(diǎn)取附近像素值的加權(quán)平均。
假如權(quán)重矩陣的行、列均為5,其中元素的坐標(biāo)設(shè)定為
(1)
即原點(diǎn)在矩陣的中心位置。權(quán)重矩陣中(x,y)位置上的元素值為
(2)
為了保證權(quán)重矩陣和為1,還需要對其進(jìn)行歸一化。
結(jié)合式(1)、(2),并令σ=1,可以得到最終的權(quán)重矩陣為
(3)
將得到的高斯權(quán)重矩陣與要處理的圖像進(jìn)行卷積操作,即可實(shí)現(xiàn)高斯平滑處理,減輕噪聲點(diǎn)的影響。
本文中車道線輪廓檢測采用Canny算法,基本思想是通過Sobel算子計(jì)算出圖像中每個(gè)像素點(diǎn)灰度變化的大小,并通過閾值截取保留恰當(dāng)?shù)南袼攸c(diǎn)進(jìn)行輪廓擬合。常用的Sobel算子:
(4)
(5)
其中,Sobelx為沿x方向的Sobel算子矩陣,Sobely為沿y軸方向的Sobel算子矩陣。與高斯平滑操作類似,將Sobel算子矩陣與圖像每個(gè)像素進(jìn)行對應(yīng)元素相乘并累加的操作,分別計(jì)算圖像沿x軸方向的和沿y軸方向的灰度變化。從Sobel算子矩陣可以看出,灰度(左右或者上下)變化較大的像素點(diǎn)Sobel算子計(jì)算結(jié)果較大,而灰度比較平緩的區(qū)域Sobel算子計(jì)算結(jié)果接近于0。
獲得圖像的灰度變化之后,設(shè)定Th1,Th2兩個(gè)閾值,并且Th1 最后一步是提取圖片中感興趣的區(qū)域(ROI,Region of Interest)。在前置攝像頭的整幅圖像中,影響車輛行駛的僅僅是車輛前方的部分區(qū)域,而較高的天空以及遠(yuǎn)處的事物都可以看作是背景噪聲,應(yīng)該剔除掉。這里可以通過掩膜的方式,僅保留圖像中特定區(qū)域的像素點(diǎn)。 經(jīng)過以上車道線提取操作,可以得到如圖2所示的圖像。 圖2 車道線提取示意圖 提取車道線之后,圖像中只包含關(guān)鍵的車道線信息(灰度值為255)以及大量的黑色背景(灰度值為0),而圖像大小(即長×寬)并沒有變化,依然與原圖相同。此時(shí)圖片中包含冗余信息,可以進(jìn)一步地進(jìn)行特征提取和降維。本文采用變分自編碼器完成這一工作。相比于傳統(tǒng)的線性主成分分析法(PCA,Principal Component Analysis),變分自編碼器是一種非線性的編碼器,借助神經(jīng)網(wǎng)絡(luò)強(qiáng)大的函數(shù)映射能力,可以獲得更好的特征提取和降維效果[16]。 訓(xùn)練好的變分自編碼器可以將輸入的圖像數(shù)據(jù)轉(zhuǎn)換成低維數(shù)據(jù),并且保留關(guān)鍵特征信息,保證從低維數(shù)據(jù)幾乎可以重建原始數(shù)據(jù)。變分自編碼器包括編碼器和解碼器兩部分,如果用于數(shù)據(jù)降維,則只需要編碼器部分。 變分自編碼器本質(zhì)上是一種無監(jiān)督深度學(xué)習(xí)模型,其結(jié)構(gòu)如圖3所示。 圖3 變分自編碼器結(jié)構(gòu) 變分自編碼器的具體訓(xùn)練過程如下: 1)輸入車道線提取圖像,記作x; 2)編碼器部分通過卷積層將圖像映射到低維特征空間Z中,一般為低維向量空間。但是輸入圖像并不是直接對應(yīng)到某個(gè)向量,而是對應(yīng)到Z空間中的一個(gè)正態(tài)分布N(μx,Σx),其中μx為分布的均值,Σx為協(xié)方差矩陣,這兩個(gè)參數(shù)由x確定。假設(shè)向量空間維度為n,則當(dāng)前的輸入圖像可以與一個(gè)2n維的參數(shù)向量[μx,Σx]對應(yīng); 3)依照正態(tài)分布N(μx,Σx)采樣得到向量z; 4)采樣向量z通過解碼器(主要包括轉(zhuǎn)置卷積上采樣網(wǎng)絡(luò))重構(gòu)輸入圖像x′。 5)利用誤差反向傳播,調(diào)節(jié)編碼器和解碼器網(wǎng)絡(luò)參數(shù),最小化圖像重構(gòu)誤差,同時(shí)要求分布N(μx,Σx)盡量接近標(biāo)準(zhǔn)正態(tài)分布。 從上述訓(xùn)練過程可以看出,對于給定的輸入圖像,變分自編碼器并不是尋找特定的編碼向量,而是尋找一個(gè)滿足優(yōu)化指標(biāo)的概率分布函數(shù),這也是其名稱中“變分”的由來。相比于主成分分析和普通的自編碼器,變分自編碼器的一個(gè)重要優(yōu)勢是編碼之后的低維特征空間具有很好的編碼分布結(jié)構(gòu):當(dāng)輸入圖像外觀稍微變化時(shí),對應(yīng)的低維特征分布也會有微小改變,即編碼具有連續(xù)性。這樣可以保證,當(dāng)編碼器遇到新的圖像時(shí),可以將其規(guī)則地納入降維特征空間中。 在實(shí)際應(yīng)用中,為了訓(xùn)練變分自編碼器,需要采集若干車道線圖像信息,其中車道線的形狀應(yīng)該盡量豐富。通過上述無監(jiān)督過程訓(xùn)練變分自編碼器,直到重構(gòu)圖像外觀比較接近原圖像。由于圖像能夠重構(gòu),這表明降維特征保留了原圖中的關(guān)鍵信息。因此,后續(xù)基于降維特征的強(qiáng)化學(xué)習(xí)從理論上來說可以達(dá)到與基于原圖的強(qiáng)化學(xué)習(xí)類似的效果,并且由于去除了原圖中大量的冗余或者干擾信息,數(shù)據(jù)維數(shù)降低,但質(zhì)量提高,學(xué)習(xí)速度更快。 通過車道線提取和特征降維環(huán)節(jié)獲得的圖像降維特征作為環(huán)境觀測狀態(tài)用于強(qiáng)化學(xué)習(xí)訓(xùn)練過程。本文采用了SAC(Soft Actor-Critic)強(qiáng)化學(xué)習(xí)算法[17]。強(qiáng)化學(xué)習(xí)算法的基本框架如圖4所示。 圖4 強(qiáng)化學(xué)習(xí)基本框架 在本文工作中,智能體為自動(dòng)駕駛策略,動(dòng)作包括車輛速度和轉(zhuǎn)向角,環(huán)境為車輛所處的道路交通環(huán)境,狀態(tài)原本為前置攝像頭的圖像,但是經(jīng)過前兩個(gè)環(huán)節(jié)的車道線提取和特征降維,實(shí)際中用到的狀態(tài)為當(dāng)前時(shí)刻車道線圖像x對應(yīng)的降維特征[μx,Σx]。 各類強(qiáng)化學(xué)習(xí)算法的根本目的是搜索最優(yōu)策略,即給定狀態(tài)下的相應(yīng)動(dòng)作,使得累計(jì)收益最大化,其中累計(jì)收益為一次完整訓(xùn)練過程中所有時(shí)刻單步獎(jiǎng)勵(lì)的累加,本文構(gòu)造的累計(jì)收益函數(shù)詳見2.2節(jié)。與PPO(Proximal Policy Optimization)[18]和TRPO(Trust Region Policy Optimization)[19]相比,SAC是off-policy的算法,即可以使用舊策略下產(chǎn)生的數(shù)據(jù)進(jìn)行訓(xùn)練,提高了采樣數(shù)據(jù)的利用效率。這對于與環(huán)境互動(dòng)成本較高的應(yīng)用場景(例如實(shí)體機(jī)器人、自動(dòng)駕駛系統(tǒng)等)是至關(guān)重要的。而與其他off-policy的算法如DDPG(Deep Deterministic Policy Gradient)[20]和DQN(Deep Q-Network)[4]相比,SAC搜索的是策略分布,而不是唯一的最優(yōu)策略,搜索范圍更廣,不易過早陷入局部最優(yōu)。 SAC是基于最大熵的強(qiáng)化學(xué)習(xí)算法,在訓(xùn)練過程中不僅希望累計(jì)收益最大,還希望策略分布函數(shù)的熵最大,具體的優(yōu)化目標(biāo)如下: 其中,π*為最優(yōu)策略分布,st,at分別為狀態(tài)和動(dòng)作,R(st,at)為在狀態(tài)st下采取動(dòng)作at時(shí)獲得的獎(jiǎng)勵(lì),H(π(·|st))為策略π對應(yīng)的熵,α為權(quán)重參數(shù),用來調(diào)節(jié)優(yōu)化目標(biāo)中獎(jiǎng)勵(lì)項(xiàng)與最大熵項(xiàng)的相對重要程度,從而控制策略的隨機(jī)性。關(guān)于SAC更詳細(xì)的理論分析可以參考文獻(xiàn)[17]。 強(qiáng)化學(xué)習(xí)過程中策略優(yōu)化需要不斷與環(huán)境實(shí)時(shí)互動(dòng),而自動(dòng)駕駛測試中常用的數(shù)據(jù)集(例如KITTI[21],Cityscape[22]等)沒有閉環(huán)互動(dòng),因此均不適用于強(qiáng)化學(xué)習(xí)算法的測試?,F(xiàn)有工作大多在仿真平臺上編程實(shí)現(xiàn)多種算法并對比分析它們之間的優(yōu)劣。本文采用了Donkey Car仿真平臺[23],并在其中實(shí)現(xiàn)了本文設(shè)計(jì)的自動(dòng)駕駛系統(tǒng)以及比較相近的Kendall等人的工作,通過對比累計(jì)獎(jiǎng)勵(lì)、訓(xùn)練時(shí)間和不同環(huán)境中的泛化能力來說明本文系統(tǒng)的有效性。 Donkey Car仿真平臺是專門針對智能車與自動(dòng)駕駛設(shè)計(jì)的測試工具,如圖5所示。它的優(yōu)點(diǎn)是具有簡單易用的程序接口,用戶可以將自己設(shè)計(jì)的算法對接到該平臺上。Donkey Car是一個(gè)輕量級的測試平臺,對硬件性能要求較低。本文中運(yùn)行Donkey Car仿真環(huán)境的軟硬件平臺配置為:Ubuntu 16.04操作系統(tǒng),Intel Core i7-7820@2.9GHz處理器,32 GB內(nèi)存,Nvidia GTX 1080 GPU,編程環(huán)境python 2.7,深度學(xué)習(xí)框架Tensorflow,深度強(qiáng)化學(xué)習(xí)框架Stable Baselines。 圖5 Donkey Car仿真平臺 仿真實(shí)驗(yàn)的目的是證明本文設(shè)計(jì)的基于特征提取的自動(dòng)駕駛系統(tǒng)訓(xùn)練時(shí)間更短,在不同測試環(huán)境中的泛化能力更強(qiáng)。這里選擇Donkey Car中的沙漠場景作為訓(xùn)練場景,而草地場景用于測試泛化能力,如圖6所示。對比這兩個(gè)場景,除了路側(cè)的地面顏色不同,草地場景中還包含了一些路錐,這些環(huán)境的變化都有可能使訓(xùn)練好的自動(dòng)駕駛系統(tǒng)失效。 圖6 Donkey Car中的訓(xùn)練和測試場景 1)數(shù)據(jù)采集:這里采集的數(shù)據(jù)是為了訓(xùn)練變分自編碼器。人工操控小車沿車道行駛一段距離,收集5000幅前置攝像頭圖像。Donkey Car提供了簡單易用的操控指令,可以通過鍵盤上的方向鍵改變小車的速度和方向。收集的數(shù)據(jù)應(yīng)該盡量涵蓋多種車道線形狀。 2)車道線提?。河捎贠penCV中已經(jīng)實(shí)現(xiàn)了高斯平滑和Canny算法,因此直接調(diào)用OpenCV中的相關(guān)函數(shù)即可,將上述5000幅圖像轉(zhuǎn)化為僅包含車道線的黑白二值圖像。 經(jīng)過Canny算法輪廓提取之后,圖像中除了車道線可能還包括其他輪廓,例如遠(yuǎn)處的地平線、臨近車道的外側(cè)邊沿等。此時(shí),可以進(jìn)一步地利用掩膜提取感興趣區(qū)域。 3)訓(xùn)練變分自編碼器:將車道線提取之后的圖像輸入變分自編碼器模型中進(jìn)行無監(jiān)督訓(xùn)練。編碼器部分包括4個(gè)卷積層和1個(gè)全連接層,隨后將輸出的值分別傳入兩個(gè)相互獨(dú)立的全連接層,得到32維的均值向量和32維的協(xié)方差矩陣向量(這里限制協(xié)方差矩陣為對角陣,因此只需要對角元素)。之后采樣得到降維特征變量送入解碼器。解碼器部分包括1個(gè)全連接層和4個(gè)轉(zhuǎn)置卷積上采樣層,最終生成重構(gòu)的圖像。訓(xùn)練直到重構(gòu)圖像和輸入圖像幾乎相同為止。將訓(xùn)練好的變分自編碼器中的編碼器部分提取出來獨(dú)立使用。 4)SAC強(qiáng)化學(xué)習(xí)訓(xùn)練:車輛前置攝像頭的原始圖像經(jīng)過車道線提取和特征降維之后得到64維向量,作為觀測狀態(tài)送入SAC強(qiáng)化學(xué)習(xí)算法進(jìn)行訓(xùn)練。由于近年來強(qiáng)化學(xué)習(xí)的流行,目前已有不少強(qiáng)化學(xué)習(xí)的框架和函數(shù)庫。基于這些框架,研究人員不必“重復(fù)造輪子”,只需要調(diào)用框架內(nèi)的函數(shù)即可實(shí)現(xiàn)特定的強(qiáng)化學(xué)習(xí)算法。本次實(shí)驗(yàn)調(diào)用Stable Baseline來實(shí)現(xiàn)SAC強(qiáng)化學(xué)習(xí)算法。在訓(xùn)練時(shí),當(dāng)小車偏離當(dāng)前車道時(shí)完成一輪訓(xùn)練(Episode),記錄本輪累計(jì)收益,然后令小車復(fù)位到車道線內(nèi),繼續(xù)下一輪的訓(xùn)練。這里的重點(diǎn)是設(shè)置恰當(dāng)?shù)睦塾?jì)收益函數(shù),從而激勵(lì)小車保持在當(dāng)前車道線內(nèi)行駛,且速度盡可能的快。本文實(shí)驗(yàn)中采用Donkey Car仿真平臺,并調(diào)用其內(nèi)部變量構(gòu)造獎(jiǎng)勵(lì)函數(shù)。具體設(shè)置如下: (1)車輛保持在車道線內(nèi)正常行駛時(shí),每一步的基本獎(jiǎng)勵(lì)項(xiàng):αt=1。這意味著,只要車輛保持在車道線內(nèi),每行駛一步都會有1個(gè)單位的獎(jiǎng)勵(lì)。 (2)車輛保持在車道線內(nèi)正常行駛時(shí),每一步還會獲得與當(dāng)前速度成正比的獎(jiǎng)勵(lì)項(xiàng):βt=0.1×vt/vmax,其中vt為車輛當(dāng)前速度,vmax為車輛最大速度。在車道保持的同時(shí),車輛速度越快,獎(jiǎng)勵(lì)越高。 (3)當(dāng)車輛駛出車道線時(shí),獎(jiǎng)勵(lì)項(xiàng)γt=-10。負(fù)值意味著這一行為實(shí)際上是被懲罰的。 (4)當(dāng)車輛駛出車道線時(shí),與當(dāng)前速度成正比的獎(jiǎng)勵(lì)項(xiàng):δt=-5×(vt-vmin)(vmax-vmin),其中vmin為車輛最小速度。同樣地,負(fù)值意味著懲罰。駛出車道線時(shí),速度越快,懲罰越重。 綜合以上獎(jiǎng)勵(lì)項(xiàng),時(shí)刻t的單步獎(jiǎng)勵(lì)為: (1)在車道線內(nèi)行駛時(shí):rt=αt+βt。 (2)車輛駛出車道線時(shí):rt=γt+δt。 作為對比,在Donkey Car仿真平臺上測試了Kendall等人設(shè)計(jì)的自動(dòng)駕駛系統(tǒng),即變分自編碼器加DDPG強(qiáng)化學(xué)習(xí)算法[13]。圖7中顯示了兩個(gè)自動(dòng)駕駛系統(tǒng)中訓(xùn)練輪次(episode)與累計(jì)收益的曲線對比。本文設(shè)計(jì)的自動(dòng)駕駛系統(tǒng)在每一輪訓(xùn)練中累計(jì)收益均較大,并且僅需要11輪訓(xùn)練即可令小車?yán)@給定車道一周(虛線),而文獻(xiàn)[13]中變分自編碼器加DDPG的設(shè)計(jì)方案至少要增加50%的訓(xùn)練輪次(實(shí)線)。圖7中累計(jì)收益上限為1 200,此時(shí)小車可以沿給定車道行駛一周。 圖7 訓(xùn)練輪次與累計(jì)收益函數(shù)曲線 在訓(xùn)練完成之后,為了驗(yàn)證自動(dòng)駕駛系統(tǒng)的泛化能力,在草地場景中進(jìn)一步測試。由于加入了車道線提取環(huán)節(jié),場景中草地顏色、路旁雜物的放置并不會影響后續(xù)的特征提取和SAC策略選擇,本文設(shè)計(jì)的系統(tǒng)依舊可以正常工作,小車可以完整行駛一周。而Kendall等人的工作對環(huán)境變化比較敏感,在沙漠環(huán)境中訓(xùn)練的模型無法直接在草地場景中使用,小車會很快偏離給定車道。該實(shí)驗(yàn)證實(shí)本文設(shè)計(jì)的系統(tǒng)具有更好的泛化能力。 針對現(xiàn)有自動(dòng)駕駛系統(tǒng)泛化能力不足的問題,本文設(shè)計(jì)了一種基于視覺特征提取的強(qiáng)化學(xué)習(xí)自動(dòng)駕駛系統(tǒng),通過提取車道線信息,剔除了環(huán)境噪聲干擾,經(jīng)過變分自編碼器特征降維,只保留原圖像中的關(guān)鍵信息,提高了強(qiáng)化學(xué)習(xí)的訓(xùn)練速度?;贒onkey Car仿真平臺的測試表明,本文設(shè)計(jì)的系統(tǒng)不僅可以很好的完成車道保持任務(wù),訓(xùn)練速度也得到了提升,并且具有良好的泛化能力,更換不同場景后依然可以正常行駛。 后續(xù)研究將在實(shí)體智能小車平臺上進(jìn)一步測試本文設(shè)計(jì)的自動(dòng)駕駛系統(tǒng)的有效性。另外,考慮加入長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò),更好的捕捉連續(xù)圖像特征,使車輛操控更平穩(wěn)。 本文工作針對的交通環(huán)境是封閉道路,基本假設(shè)為沒有障礙物、交通燈、車輛、行人等交通元素,是一種非常簡化的交通場景設(shè)定。本文的研究目的是驗(yàn)證所提出的算法在封閉道路環(huán)境下的泛化能力。后續(xù)工作會進(jìn)一步考慮更復(fù)雜、更真實(shí)的交通環(huán)境,例如加入交通燈、靜態(tài)障礙物等。相應(yīng)的自動(dòng)駕駛系統(tǒng)也將添加更多功能,如避障、信號燈辨識等。1.3 基于變分自編碼器的圖像特征降維
1.4 SAC強(qiáng)化學(xué)習(xí)算法
2 實(shí)驗(yàn)分析
2.1 實(shí)驗(yàn)平臺
2.2 訓(xùn)練步驟
2.3 訓(xùn)練效果分析
3 結(jié)論