加州大學最新!CarDreamer:全面、靈活的自動駕駛算法測試開源平臺
本文經(jīng)自動駕駛之心公眾號授權轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
寫在前面&筆者的個人理解
為了在復雜的真實世界場景中安全導航,自動駕駛汽車必須能夠適應各種道路條件并預測未來事件?;谑澜缒P偷膹娀瘜W習(RL)已經(jīng)成為一種有前景的方法,通過學習和預測各種環(huán)境的復雜動態(tài)來實現(xiàn)這一點。然而目前并不存在一個用于在復雜駕駛環(huán)境中訓練和測試此類算法的易于接近的平臺。為了填補這一空白,這里介紹了CarDreamer,第一個專為開發(fā)和評估基于世界模型的自動駕駛算法設計的開源學習平臺。它包含三個關鍵組成部分:
1)世界模型(WM)主干:CarDreamer整合了一些最先進的世界模型,簡化了RL算法的再現(xiàn)。主干部分與其他部分解耦,并使用標準的Gym接口進行通信,以便用戶可以輕松集成和測試自己的算法。
2)內(nèi)置任務:CarDreamer提供了一套高度可配置的駕駛?cè)蝿?,這些任務與Gym接口兼容,并配備了經(jīng)過實證優(yōu)化的獎勵函數(shù)。
3)任務開發(fā)套件:CarDreamer集成了靈活的任務開發(fā)套件,以簡化駕駛?cè)蝿盏膭?chuàng)建。該套件使交通流和車輛路線的定義變得容易,并自動收集多模態(tài)觀測數(shù)據(jù)。可視化服務器允許用戶通過瀏覽器追蹤實時agent駕駛視頻和性能指標。此外還使用內(nèi)置任務進行了廣泛的實驗,以評估WM在自動駕駛中的性能和潛力。由于CarDreamer的豐富性和靈活性,還系統(tǒng)地研究了觀測模式、可觀測性和車輛意圖共享對AV安全性和效率的影響。
領域發(fā)展背景
自動駕駛汽車預計將在未來的移動系統(tǒng)中發(fā)揮核心作用,具有許多有前景的益處,如安全性和效率。近年來,自動駕駛汽車的發(fā)展取得了巨大的成就。僅在美國,自動駕駛汽車已經(jīng)在公共道路上行駛了數(shù)百萬英里。然而,實現(xiàn)能夠在復雜多樣的現(xiàn)實場景中導航的魯棒性自動駕駛汽車仍然是一個具有挑戰(zhàn)性的前沿。例如,根據(jù)美國交通部聯(lián)邦公路管理局的計算,自動駕駛汽車的碰撞率比傳統(tǒng)車輛高出約兩倍。
自動駕駛汽車的可靠性直接取決于自動駕駛系統(tǒng)在未預見場景中的泛化能力。世界模型(WM)以其卓越的泛化能力,通過學習環(huán)境的復雜動態(tài)并預測未來場景,提供了一種有前景的解決方案。特別是,WM學習了一種緊湊的潛在表示,該表示編碼了環(huán)境的關鍵元素和動態(tài)。這種學習到的表示有助于更好的泛化,使WM能夠在超出其訓練樣本的場景中進行預測。在內(nèi)部,WM包含模仿人類感知和決策的組件,如視覺模型和記憶模型。事實上,人類之所以能夠在遇到罕見或未見過的事件時采取適當?shù)男袆?,正是因為人類?nèi)在的世界模型。通過模擬類似于人類智能的認知過程,基于WM的強化學習(RL)在諸如Atari游戲和Minecraft等領域展示了最先進的性能。然而,WM在自動駕駛中的應用仍然是一個令人興奮的開放領域,部分原因是缺乏易于使用的平臺來訓練和測試此類RL算法。開發(fā)基于WM的自動駕駛學習平臺對于該領域的研究將極為有益。
因此,受到這些因素的驅(qū)動,我們推出了CarDreamer,這是首個專門為基于WM的自動駕駛設計的開源學習平臺。CarDreamer旨在促進算法的快速開發(fā)和評估,使用戶能夠在提供的任務上測試他們的算法,或者通過全面的開發(fā)套件快速實現(xiàn)自定義任務。CarDreamer的三大關鍵貢獻包括:
- 整合WM算法以實現(xiàn)再現(xiàn)。CarDreamer集成了最先進的WM,包括DreamerV2、DreamerV3和Planning2Explore,顯著減少了再現(xiàn)現(xiàn)有算法性能所需的時間。這些算法與CarDreamer的其他部分解耦,并通過統(tǒng)一的Gym接口進行通信。這使得只要新算法支持Gym接口,就可以無需額外的適配工作就能直接集成和測試。
- 高度可配置的優(yōu)化獎勵內(nèi)置任務。CarDreamer提供了一套全面的駕駛?cè)蝿?,如變道和超車。這些任務允許在難度、可觀察性、觀察模式和車輛意圖通信方面進行廣泛的定制。它們暴露相同的Gym接口以方便使用,并且獎勵函數(shù)精心設計以優(yōu)化訓練效率。
- 任務開發(fā)套件和可視化服務器。該套件不僅通過API驅(qū)動的交通生成和控制簡化了自定義駕駛?cè)蝿盏膭?chuàng)建,還包括一個模塊化觀察者以便于多模態(tài)數(shù)據(jù)的收集和配置。一個可視化服務器使代理駕駛視頻和統(tǒng)計數(shù)據(jù)的實時顯示成為可能,通過網(wǎng)頁瀏覽器加速獎勵工程和算法開發(fā),提供即時的性能洞察。
其它框架介紹
這里簡要介紹了CarDreamer所涉及的兩大基石:CARLA ,一個高保真且靈活的模擬器,以及gym ,一個用于RL(強化學習)訓練和評估的標準接口。
首先介紹CARLA,CARLA是一個開源模擬器,旨在模擬現(xiàn)實世界中的交通場景。CARLA基于Unreal Engine,提供了逼真的物理效果和高質(zhì)量渲染。CARLA提供了包括地圖、建筑、車輛和各種地標在內(nèi)的數(shù)字資產(chǎn)。它支持各種傳感器,如RGB攝像頭、激光雷達(LiDAR)、雷達(RADAR)。用戶可以創(chuàng)建車輛或行人,并完全控制這些角色。這確實是一個非常通用的工具,但其在RL算法應用中的主要缺點也源自其通用性。獲取BEV(鳥瞰圖)涉及一個繁瑣的過程,阻礙了其在訓練RL算法中的快速部署。
接下來介紹gym。gym是由OpenAI定義的一個標準接口,用于規(guī)范智能體與環(huán)境之間的通信。這個接口的核心部分由兩個函數(shù)reset()和step(action)構成。前者將環(huán)境初始化為其起始狀態(tài)。后者從智能體接收一個動作輸入,模擬環(huán)境的演變,并返回觀測數(shù)據(jù)、獎勵信號、終止指示符和一些額外信息。通過這種方式,只要兩者都支持gym接口,RL算法就可以在各種環(huán)境中進行輕松測試,而無需進行大量調(diào)整。已經(jīng)有很多努力在開發(fā)各種gym基準測試,如Atari游戲、DMC套件。然而,在CARLA中基于WM的RL算法用于自動駕駛領域,CarDreamer是第一個通過gym接口提供多樣化城市駕駛?cè)蝿找源龠M訓練和評估的平臺。
CarDreamer網(wǎng)絡結(jié)構
如圖1所示,CarDreamer包含三個主要組件:內(nèi)置任務、任務開發(fā)套件和世界模型主干。任務開發(fā)套件提供了各種API功能,包括在CARLA中創(chuàng)建車輛、控制交通流和規(guī)劃路線。一個觀察模塊自動化地收集多模態(tài)觀測數(shù)據(jù),如傳感器數(shù)據(jù)和BEV(鳥瞰圖),這些數(shù)據(jù)由獨立且可定制的數(shù)據(jù)處理程序管理。這些數(shù)據(jù)具有雙重用途:它們被任務和訓練可視化服務器所利用??梢暬掌魍ㄟ^HTTP服務器顯示實時駕駛視頻和環(huán)境反饋,并通過gym接口與世界模型算法無縫集成。在接收到智能體的響應作為動作后,觀察模塊在下一幀從數(shù)據(jù)處理程序中收集數(shù)據(jù),從而繼續(xù)這一操作循環(huán)。
這里精心設計了各種現(xiàn)實任務,從簡單的技能(如車道保持和左轉(zhuǎn))到更復雜的挑戰(zhàn)(如在不同路況下隨機漫游,包括十字路口、環(huán)島和不同的車流)。這些任務高度可配置,提供了許多選項,這些選項提出了自動駕駛中的基本問題。
可觀察性與意圖共享:在強化學習中,部分可觀察性是一個重大挑戰(zhàn),其中不完整的狀態(tài)信息可以通過包含所有歷史步驟來指數(shù)級地增加輸入空間的復雜性。為了解決自動駕駛中缺乏針對這些挑戰(zhàn)定制的工具的問題,我們在CarDreamer中提供了三種可觀察性設置:1) 視野(FOV)僅包含相機視野內(nèi)的車輛。2) 共享視野(SFOV)使車輛能夠與其自身視野內(nèi)的其他車輛通信并收集FOV數(shù)據(jù)。3) 完全可觀察性(FULL)假設具有完整的環(huán)境和背景交通信息。此外,用戶可以控制車輛是否共享其意圖,以及車輛與誰共享。這些配置與“傳達什么信息”和“與誰溝通”的基本問題保持一致。觀測模式:用戶可以配置觀測空間以包含各種模式,從RGB相機和LiDAR等傳感器數(shù)據(jù)到BEV等合成數(shù)據(jù)。這種靈活性支持了能夠直接從多模態(tài)原始傳感器數(shù)據(jù)做出決策或使用BEV感知進行規(guī)劃的端到端模型的開發(fā)。難度:難度設置主要影響交通密度,提出了重大的碰撞避免挑戰(zhàn)。由于自動駕駛汽車的安全關鍵事件很少見,因此由于此類事件的罕見性,驗證自動駕駛汽車的魯棒性本質(zhì)上很困難。CarDreamer特別設計用于在模擬這些罕見但關鍵事件的場景中全面評估安全性和效率。
獎勵函數(shù)。CarDreamer中的每個任務都配備了經(jīng)過優(yōu)化的獎勵函數(shù),實驗表明這可以使DreamerV3在僅10,000個訓練步驟內(nèi)成功導航至路標點(詳見第5節(jié))。值得注意的是,我們的實證發(fā)現(xiàn)表明,基于速度或增量位置變化對智能體進行獎勵,相比于基于絕對位置進行獎勵,能帶來更好的性能。這是因為當僅基于位置進行獎勵時,智能體可能會通過進行小范圍的初始移動然后保持靜止來利用獎勵函數(shù),因為任何進一步的移動都可能導致碰撞懲罰。在實踐中,我們確實觀察到了這種次優(yōu)行為,其中學習的策略收斂到局部最優(yōu)解,通過保持靜止來避免碰撞。相反,基于速度進行獎勵會迫使智能體保持持續(xù)運動以累積獎勵,從而降低了過早收斂到不希望的靜止策略的風險。獎勵設計精心考慮了駕駛?cè)蝿盏年P鍵要求,如軌跡平滑性,這在傳統(tǒng)的強化學習算法中常常被忽視。通常,這些算法在其損失函數(shù)或價值估計中包含一個熵項,以鼓勵探索并防止過早收斂。然而,在自動駕駛的背景下,這個熵項可能會激勵車輛遵循鋸齒形軌跡,因為這種不穩(wěn)定的運動與更平滑的路徑相比,會產(chǎn)生更高的熵獎勵,即使兩種軌跡在達到目標方面可能取得類似的進展。為了抵消這種影響,這里引入了一個專門設計的懲罰項,以阻止與目標方向垂直的運動。因此,我們開發(fā)了一個獎勵函數(shù),它有效地平衡了目標進度和軌跡平滑性,結(jié)構如下:
界面與用法:CarDreamer中的所有內(nèi)置任務都采用了統(tǒng)一的gym接口,使得無需額外調(diào)整即可直接對強化學習算法進行訓練和測試。除了直接使用外,CarDreamer還支持多種算法,包括課程學習算法,這些算法可以利用從簡單到復雜任務的逐步進展;以及持續(xù)學習算法,其旨在解決在學習新任務時的災難性遺忘問題。此外,對于模仿學習,CarDreamer簡化了在模擬器中收集觀測數(shù)據(jù)的流程。盡管最初是為基于WM的強化學習算法設計的,但gym接口使得它能夠在各種算法策略中廣泛應用。
1)任務開發(fā)套件
對于需要定制任務的用戶,CarDreamer 提供了一個高度模塊化的任務開發(fā)套件。這個套件可以根據(jù)不同級別的定制需求來滿足用戶的多樣化要求。初始模塊是“世界管理器”(World Manager),它滿足了基礎需求,如通過不同的地圖、路線、生成位置或背景交通流來改變駕駛場景。世界管理器負責管理“參與者”(actors),這是一個從 CARLA 借用的術語,它包括所有實體,如車輛、行人、交通信號燈和傳感器。它提供 API 調(diào)用以生成各種參與者,特別是在不同位置以默認或定制藍圖生成車輛。這些車輛可以由用戶控制,也可以由自動駕駛儀(一種基于簡單規(guī)則的自動駕駛算法)控制。在重置時,它會透明地銷毀并釋放資源。第二個模塊是“觀察者”(Observer),它自動收集各種模式下的觀測數(shù)據(jù)。雖然它允許用戶無需手動交互即可輕松訪問預定義的觀測模式,但它也支持數(shù)據(jù)規(guī)范的廣泛定制。這是通過一系列數(shù)據(jù)處理器實現(xiàn)的,每個處理器都為特定模式提供數(shù)據(jù),如 RGB 相機處理器和 BEV 處理器。每個數(shù)據(jù)處理器都高度模塊化,并獨立管理特定類型數(shù)據(jù)的整個生命周期。用戶可以通過注冊一個符合自己需求的新數(shù)據(jù)處理器來增強觀察者。
第三個模塊包含路線規(guī)劃器,這些規(guī)劃器可以滿足多樣化的任務路線需求。CarDreamer包含了幾個規(guī)劃器:一個隨機規(guī)劃器,用于在整個地圖上進行探索性漫游;一個固定路徑規(guī)劃器,用于創(chuàng)建連接用戶定義位置的路徑點;以及一個固定終點規(guī)劃器,它使用經(jīng)典的A* 算法從當前位置生成到指定終點的路線。為了滿足額外的定制需求,還提供了一個基類,用戶可以通過重寫init_route()和extend_route()方法(它們分別定義了每個時間步長的路線初始化和擴展)來開發(fā)自己的規(guī)劃器。此外,該套件還包含一個可視化服務器,該服務器將Observer的輸出和環(huán)境反饋的其他統(tǒng)計數(shù)據(jù)無縫集成,并通過HTTP服務器進行顯示。這種自動化促進了快速反饋,無需額外的編碼工作即可改進獎勵工程和算法開發(fā)過程。
2)世界模型Backbone
CarDreamer中的世界模型骨干框架無縫集成了包括DreamerV2 、DreamerV3和Planning2Explore 等在內(nèi)的最先進方法,從而促進了這些模型的快速復現(xiàn)。這種骨干架構經(jīng)過精心設計,旨在將世界模型實現(xiàn)與特定任務的組件進行解耦,從而提高了模塊化和可擴展性。這些組件之間的通信通過標準的gym接口進行有效管理,允許進行廣泛的自定義。這種解耦使用戶能夠輕松地將默認的世界模型替換為自己的實現(xiàn),支持快速原型設計、基準測試和與既定基準的比較分析。因此,CarDreamer為基于世界模型的算法提供了一個全面的測試平臺,促進了該領域內(nèi)加速研究和發(fā)展的生態(tài)系統(tǒng)。該平臺鼓勵用戶在由多樣化的駕駛?cè)蝿蘸托阅苤笜私M成的一致且標準化的評估框架內(nèi)探索創(chuàng)新的架構、損失函數(shù)和訓練策略。
CarDreamer任務實驗
這里使用了僅包含1800萬個參數(shù)的小型DreamerV3模型(如圖4所示)作為模型骨干。這個小型DreamerV3模型有32個CNN乘法器、512個GRU和MLP單元,而MLP在其RSSM中僅有兩層。較小的內(nèi)存開銷約為10GB,這使得我們能夠在運行CARLA模擬器的同時,在單個NVIDIA 4090 GPU上進行訓練。在每個任務上訓練智能體。
獎勵曲線隨時間步長的變化如圖2所示。
交通量較少的簡單任務,如“右轉(zhuǎn)簡單”和“車道合并”,通常在50,000步(約1小時)內(nèi)收斂,而涉及更密集、更激進的交通流,需要避免碰撞的任務,則需要大約150,000至200,000步(約3至4小時)才能收斂。在評估中,我們采用了幾種指標來嚴格評估在CarDreamer任務中執(zhí)行的自動駕駛智能體的性能,詳見表1。這些指標包括:
? 成功率:該指標衡量智能體車輛成功完成任務(到達目的地或行駛預定距離而沒有事故或偏離車道)的百分比。
? 平均距離(米):表示在所有情節(jié)中,智能體車輛在情節(jié)結(jié)束前(無論是通過完成任務還是由于失敗,如碰撞或超時)所行駛的平均距離。
? 碰撞率(%):計算智能體車輛發(fā)生碰撞的情節(jié)百分比。
? 平均速度(米/秒):測量智能體車輛在整個任務過程中保持的平均速度。這個指標反映了車輛在速度與安全性之間的平衡能力,指示其導航環(huán)境的效率。
? 路徑點距離:該指標量化了與期望路線路徑點的平均偏差。它評估了車輛遵循計劃路徑的能力,反映了其在遵循給定軌跡時的導航準確性和精確度。
1)不同觀測模態(tài)下的預測
世界模型(WM)的想象能力使其能夠有效地預測未來場景并管理潛在事件。為了評估WM在不同觀測模態(tài)下的想象性能,我們在“右轉(zhuǎn)困難”任務上進行了實驗。選擇了三種不同的模態(tài):鳥瞰圖(BEV)、攝像頭和激光雷達(LiDAR)。對于每一種模態(tài),WM都需要在給定的起始狀態(tài)和一系列動作下,想象未來幾步的觀測結(jié)果。圖4展示了結(jié)果,對比了三種模態(tài)下真實圖像與想象圖像的差異。第一行顯示了真實觀測圖像,第二行是WM想象的結(jié)果,第三行是它們之間的差異。我們選擇了在想象范圍內(nèi)最多64個時間步的幀。這些發(fā)現(xiàn)表明,盡管模態(tài)不同,WM在準確預測未來方面仍然表現(xiàn)出色。在BEV實驗中(a),WM精確地預測了直行和右轉(zhuǎn)車輛的位置和軌跡,以及BEV相對于自我車輛的旋轉(zhuǎn)和平移。同樣,在攝像頭和LiDAR設置中,WM也成功預測了自我車輛前方行駛的車輛。
2)車對車通信的好處
CarDreamer的一個獨特特性是其能夠方便地定制車輛之間的通信水平。車輛可以共享視野(FOV)視圖,從而獲得不同的可觀測性。此外,它們甚至可以共享意圖(由車輛的計劃路徑點表示),以便更好地規(guī)劃。我們利用這一特性來評估通信的影響。在一個agent上,在“右轉(zhuǎn)困難”任務的不同設置下進行了訓練和測試,即不同的可觀測性和是否能夠訪問其他車輛的意圖。由于密集的交通和來自視野外車輛的頻繁潛在碰撞,“右轉(zhuǎn)困難”任務特別適合測試可觀測性和意圖通信。獎勵曲線如圖5所示,一些性能指標如表2所示。請注意,在我們的獎勵函數(shù)中,成功執(zhí)行右轉(zhuǎn)的行為大致由超過250的獎勵表示。結(jié)果表明,有限的可觀測性或缺乏意圖共享會阻礙代理完成任務。圖6中一個情節(jié)中均勻采樣的圖像提供了很好的解釋:代理采用了保守且次優(yōu)的策略,它在交叉路口停下來以避免碰撞。例如,在圖6的前三行中,代理在并入車流之前停止移動。相比之下,完整的信息使自我車輛能夠成功執(zhí)行右轉(zhuǎn)。