25年2月來自浙大和菜鳥網絡的論文“CarPlanner: Consistent Auto-regressive Trajectory Planning for Large-scale Reinforcement Learning in Autonomous Driving”。
軌跡規劃對于自動駕駛至關重要,可確保在復雜環境中安全高效地導航。雖然最近基于學習的方法,特別是強化學習 (RL),在特定場景中顯示出良好的前景,但 RL 規劃器在訓練效率低下和管理大規模真實駕駛場景方面仍存在困難。本文介紹 CarPlanner,一種使用 RL 生成多模態軌跡的一致自回歸規劃器。自回歸結構可實現高效的大規模 RL 訓練,而一致性的結合可通過在時間步驟中保持一致的時間一致性來確保穩定的策略學習。此外,CarPlanner 采用具有專家指導的獎勵函數和不變-視圖模塊的生成選擇框架,簡化 RL 訓練并提高策略性能。
軌跡規劃 [41] 在自動駕駛中至關重要,它利用感知和軌跡預測模塊的輸出來生成自車的未來姿態。控制器跟蹤該規劃軌跡,產生閉環駕駛的控制命令。最近,基于學習的軌跡規劃備受關注,因其能夠自動化算法迭代、消除繁瑣的規則設計并確保各種現實場景中的安全性和舒適性 [41]。
大多數現有研究 [3, 13, 19, 34] 采用模仿學習 (IL) 來使規劃軌跡與人類專家的軌跡保持一致。然而,這種方法存在分布漂移 [33] 和因果混淆 [10] 的問題。強化學習 (RL) 提供一種潛在的解決方案,它解決這些挑戰并通過獎勵函數提供更豐富的監督。盡管強化學習在游戲 [39]、機器人技術 [22] 和語言模型 [28] 等領域表現出有效性,但它在大規模駕駛任務中仍然存在訓練效率低下和性能問題。
如圖(a)所示,該種方法涉及生成初始軌跡估計,然后通過 RL 的迭代應用對其進行細化。然而,包括 Gen-Drive [21] 在內的最新研究表明,它仍然落后于最先進 IL 和基于規則的規劃器。這種方法的一個顯著限制是它忽略軌跡規劃任務中固有的時間因果關系。此外,在高維軌跡空間上直接優化的復雜性可能會阻礙 RL 算法的性能。
自回歸模型,如圖 (b)所示,其使用過渡模型中的單步策略循環地生成自車的姿態。在此類方法中,所有時間步驟中的自車姿態被合并以形成整體規劃軌跡。考慮到時間因果關系,當前的自回歸模型允許交互行為。然而,一個常見的限制是它們依賴于從動作分布中進行自回歸隨機采樣來生成多模態軌跡。這種普通的自回歸程序可能會損害長期一致性,并不必要地擴大 RL 中的探索空間,從而導致性能不佳。
為了解決自回歸模型的局限性,本文引入 CarPlanner,這是一種一致的自回歸模型,旨在進行高效、大規模的基于 RL 規劃器訓練(見圖 ?)。CarPlanner 的關鍵見解是它將一致的模式表示作為自回歸模型的條件。
MDP 用于對順序決策問題進行建模,其形式為一個元組 ?S, A, P, R, ρ_0, γ, T?。S 是狀態空間。A 是動作空間。P 是狀態轉換概率。R 表示獎勵函數,有界。ρ_0 是初始狀態分布。T 是時間范圍,γ 是未來獎勵的折扣因子。狀態-動作序列定義為 τ =(s_0,a_0,s_1,a_1,…,s_T),其中 s_t 和 a_t 是時間步驟 t 時的狀態和動作。RL 的目標是最大化預期回報。
狀態 s_t 包含矢量表示的地圖和智體信息。地圖信息 m 包括道路網絡、交通信號燈等,用折線和多邊形表示。智體信息包括自車和其他交通智體的當前和過去姿態,用折線表示。自車的智體索引為 0,交通智體的索引范圍從 1 到 N。對于每個智體 i,其歷史表示為 s^i_t?H:t,i ∈ {0,1,…,N},其中 H 是歷史時間范圍。
將軌跡規劃任務建模為順序決策過程,并將自回歸模型分解為策略模型和轉換模型。連接軌跡規劃和自回歸模型的關鍵,是將動作定義為自車的下一個姿態,即 a_t = s^0_t+1。因此,在推動自回歸模型后,解碼后的姿勢被收集為自車規劃的軌跡,狀態序列進一步分解為策略模型和轉換模型。這里典型的自回歸方法帶有固有的相關問題:跨時間的不一致行為源于策略分布,而策略分布取決于從動作分布中進行的隨機抽樣。
為了解決上述問題,在自回歸方式中引入隨時間步驟保持不變的一致性模式信息 c。由于專注于自車軌跡規劃,因此一致性模式 c 不會影響轉換模型。
這種一致性自回歸方式揭示一個生成-選擇框架,其中模式選擇器根據初始狀態 s_0 對每種模式進行評分,而軌跡生成器從模式條件策略中采樣來生成多模態軌跡。
該轉換模型需要在每個時間步中使用,因為它會根據當前狀態 s_t 生成在時間步 t + 1 時的交通智體姿勢。實際上,這個過程非常耗時,而且使用這種轉換模型沒有看到性能提升,因此,用軌跡預測器 P (s_1:T^1:N |s_0 ) 作為非反應性轉換模型,該模型在給定初始狀態 s_0 的情況下一次性生成交通智體的所有未來姿勢。
規劃器架構
CarPlanner 的框架如圖所示,包含四個關鍵組件:1) 非反應式轉換模型、2) 模式選擇器、3) 軌跡生成器、和 4) 規則-增強選擇器。規劃器在生成-選擇框架內運行。
給定初始狀態 s_0 和所有可能的 N_mode 模式,軌跡選擇器評估并為每種模式分配分數。然后,軌跡生成器生成與各自模式相對應的 N_mode 軌跡。
對于軌跡生成器,初始狀態 s_0 被復制 N_mode 次,每次都與 N_mode 模式之一相關聯,從而有效地創建 N_mode 平行世界。策略在這些模擬環境中執行。在策略展開期間,軌跡預測器充當狀態轉換模型,生成所有時間范圍內交通智體的未來位置。
非反應式轉換模型
該模塊以初始狀態 s_0 作為輸入,輸出交通智體的未來軌跡。初始狀態由智體和地圖編碼器處理,然后由自注意 Transformer 編碼器 [43] 融合智體和地圖特征。然后將智體特征解碼為未來軌跡。
智體和地圖編碼器。狀態 s_0 包含地圖和智體信息。地圖信息 m 由 N_m,1 條折線和 N_m,2 個多邊形組成。折線描述車道中心和車道邊界,每條折線包含 3 N_p 個點,其中 3 對應車道中心、左邊界和右邊界。每個點的維度為 D_m = 9,并包含以下屬性:x、y、航向、速度限制和類別。連接時,左邊界和右邊界的點與中心點一起產生 N_m,1 × N_p × 3 D_m 的維度。
利用 PointNet [30] 從每條折線的點中提取特征,得到 N_m,1 × D 的維數,其中 D 表示特征維數。多邊形表示交叉路口、人行橫道、停車線等,每個多邊形包含 N_p 個點。利用另一個 PointNet 從每個多邊形的點中提取特征,得到 N_m,2 × D 的維數。然后,將折線和多邊形的特征連??接起來形成整體地圖特征,得到 N_m × D 的維數。智體信息 A 由 N 個智體組成,每個智體保持過去 H 個時間步長的姿勢。每個姿勢的維度為 D_a = 10,包括以下屬性:x、y、航向、速度、邊界框、時間步長和類別。因此,智體信息的維度為 N × H × D_a。應用另一個 PointNet 從每個智體的姿勢中提取特征,故有 N × D 的智體特征維度。
模式選擇器
該模塊將 s_0 和縱向-橫向分解模式信息作為輸入,并輸出每種模式的概率。
路線-速度的分解模式。為了捕捉縱向行為,生成 N_lon 模式,表示與每種模式相關的軌跡平均速度。每個縱向模式 c_lon,j 定義為 j 的標量值,在維度 D 上重復。因此,縱向模式的維數為 N_lon × D。對于橫向行為,使用圖搜索算法從地圖中識別 N_lat 條可能的路線。這些路線對應于自車可用的車道。這些路線的維數為 N_lat × N_r × D_m。為了提取有意義的表示,用另一個 PointNet 來聚合每條路線上 N_r 個點的特征,從而生成維度為 N_lat ×D 的橫向模式。為了創建全面的模式表示 c,結合橫向和縱向模式,得到 N_lat × N_lon × 2D 的組合維度。為了將此模式信息與其他特征維度對齊,將其傳遞通過線性層,映射回 N_lat × N_lon × D。N_mode = N_lat × N_lon。
基于查詢的 Transformer 解碼器。此解碼器用于將模式特征與從 s_0 派生的地圖和智體特征融合。在此框架中,模式用作查詢,而地圖和智體信息用作K-V。更新后的模式特征通過多層感知器 (MLP) 解碼以得出每個模式的分數,然后使用 softmax 運算符對其進行歸一化。
軌跡生成器
該模塊以自回歸方式運行,在給定當前狀態 s_t 和一致模式信息 c 的情況下,反復解碼自身車輛的下一個姿勢 a_t。
不變-視圖模塊 (IVM)。在將模式和狀態輸入網絡之前,對它們進行預處理以消除時間信息。對于狀態 s_t 中的地圖和智體信息,選擇自身當前姿勢的 KNN [29],并僅將它們輸入到策略中。K 分別設置為地圖和智體元素的一半。對于捕捉橫向行為的路線,過濾掉那些段,其最接近自身車輛當前姿勢的點作為起點,保留 K_r 個點。在這種情況下,K_r 設置為一條路線中 N_r 個點的四分之一。最后,將路線、智體和地圖姿勢轉換為當前時間步 t 的自車坐標系。從當前時間步長 t 中減去歷史時間步長 t ? H : t,得到范圍為 ?H : 0 的時間步長。
基于 Q 的 Transformer 解碼器。采用與模式選擇器相同的主干網絡架構,但查詢維度不同。由于 IVM 以及不同模式產生不同狀態的事實,地圖和智體信息不能在模式之間共享。因此,融合每個單獨模式的信息。具體而言,Q維度為 1 × D,而 K-V 的維度為 (N + N_m) × D。輸出特征維度保持為 1 × D。需要強調的是,Transformer 解碼器可以并行處理來自多個模式的信息,無需使用一個 for 循環按順序處理每個模式。
策略輸出。模式特征由兩個不同的頭處理:策略頭和 V 頭。每個頭包含自己的 MLP 來生成動作分布的參數和相應的 V 估計。采用高斯分布來建模動作分布,在訓練過程中,動作從該分布中抽樣。相反,在推理過程中,利用分布平均來確定動作。
規則-增強選擇器
該模塊首先引入一個基于規則的選擇器,以初始狀態 s_0、多模態自車規劃軌跡和智體的預測未來軌跡為輸入。它計算駕駛導向指標,例如安全性、進度、舒適度等。基于規則的分數和模式選擇器提供的模式分數的加權和,獲得綜合分數。得分最高的自車規劃軌跡被選為軌跡規劃器的輸出。
訓練
首先訓練非反應式轉換模型,并在模式選擇器和軌跡生成器的訓練期間凍結權重。不會將所有模式都輸入生成器,而是采用贏者通吃策略,其中根據自車真實軌跡分配正模式,并將其作為軌跡生成器的條件。
模式分配。正的橫向模式由真實軌跡的端點決定。從起始位置到該端點的縱向距離被劃分為 N_lon 間隔,正的縱向模式對應于相關距離間隔。
損失函數。對于選擇器,使用交叉熵損失,即正模式的負對數似然和回歸自車真實軌跡的副任務。對于生成器,使用 PPO [36] 損失,它由三部分組成:策略改進、價值估計和熵。
獎勵函數。為了處理不同的場景,用自車未來姿勢和真值之間負的位移誤差 (DE) 作為通用獎勵。還引入其他術語來提高軌跡質量:碰撞率和可駕駛區域合規性。如果未來姿勢發生碰撞或超出可駕駛區域,則獎勵設置為 -1;否則為 0。
模式丟棄。為了防止由于 Transformers 的殘差連接而過度依賴模式或路線信息,在訓練期間實現一個模式丟棄模塊,該模塊隨機屏蔽路線以緩解此問題。
遵循 PDM [9] 來構建訓練和驗證分割。訓練集的大小為 176,218,其中使用所有可用的場景類型,每種類型有 4,000 個場景。驗證集的大小為 1,118,其中選擇 100 個場景和 14 種類型。在 2 個 NVIDIA 3090 GPU 中對所有模型進行 50 次訓練。每個 GPU 的批次大小為 64。用 AdamW 優化器,初始學習率為 1e-4,當驗證損失停止減少時,以耐心為 0 和減少因子為 0.3 降低學習率。對于 RL 訓練,設置折扣 γ = 0.1 和 GAE 參數 λ = 0.9。價值、策略和熵損失的權重分別設置為 3、100 和 0.001。縱向模式數設置為 12,橫向模式的最大數量設置為 5。
如下算法 1 概述 CarPlanner 框架的訓練過程。該過程涉及兩個主要步驟:(1) 訓練非反應性轉換模型,(2) 訓練模式選擇器和軌跡生成器。