自動駕駛端到端規劃方法匯總
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
一、Woven Planet(豐田子公司)的方案:Urban Driver 2021
這篇文章是21年的,但一大堆新文章都拿它來做對比基線,因此應該也有必要來看看方法。
大概看了下,主要就是用Policy Gradients學習State->近期action的映射函數,有了這個映射函數,可以一步步推演出整個執行軌跡,最后loss就是讓這個推演給出的軌跡盡可能的接近專家軌跡。
效果應該當時還不錯,因此能成為各家新算法的基線。
二、南洋理工大學方案一 Conditional Predictive Behavior Planning with Inverse Reinforcement Learning 2023.04
先使用規則枚舉了多種行為,生成了10~30條軌跡。(未使用預測結果)
使用Condtional Prediction算出每條主車待選軌跡情況下的預測結果,然后使用IRL對待選軌跡打分。
其中Conditional Joint Prediction模型長這樣:
這個方法基本上很贊的點就是利用了Conditional Joint Prediction可以很好的完成交互性的預測,使得算法有一定的博弈能力。
但我個人認為算法缺點是前邊只生成了10~30條軌跡,而且軌跡生成時沒考慮預測,而且最后會直接在IRL打分后,直接選用這些軌跡中的一條作為最終結果,比較容易出現10~30條在考慮預測后發現都不大理想的情況。相當于要在瘸子里邊挑將軍,挑出來的也還是瘸子?;谶@個方案,再解決前邊待選樣本生成質量會是很不錯的路子
三、英偉達方案:2023.02 Tree-structured Policy Planning with Learned Behavior Models
用規則樹狀采樣,一層一層的往后考慮,對每一層的每個子結點都生成一個conditional prediction,然后用規則對prediction結果和主車軌跡打分,并用一些規則把不合法的干掉,然后,利用DP往后生成最優軌跡,DP思路有點類似于apollo里dp_path_optimizer,不過加了一個時間維度。
不過因為多了一個維度,這個后邊擴展次數多了之后,還是會出現解空間很大計算量過大的情況,當前論文里寫的方法是到節點過多之后,隨機丟棄了一些節點來確保計算量可控(感覺意思是節點過多之后可能也是n層之后了,可能影響比較小了)
本文主要貢獻就是把一個連續解空間通過這種樹形采樣規則轉變一個馬爾可夫決策過程,然后再利用dp求解。
四、南洋理工大學&英偉達聯合 2023年10月最新方案:DTPP: Differentiable Joint Conditional Prediction and Cost Evaluation for Tree Policy Planning in Autonomous Driving
看標題就感覺很Exciting:
一、Conditional Prediction確保了一定博弈效果
二、可導,能夠整個梯度回傳,讓預測與IRL一起訓練。也是能拼出一個端到端自動駕駛的必備條件
三、Tree Policy Planning,可能有一定的交互推演能力
仔細看完,發現這篇文章信息含量很高,方法很巧妙。
主要基于英偉達的TPP和南洋理工的Conditional Predictive Behavior Planning with Inverse Reinforcement Learning進行糅合改進,很好的解決了之前南洋理工論文中待選軌跡不好的問題。
論文方案主要模塊有:
一、Conditional Prediction模塊,輸入一條主車歷史軌跡+提示軌跡 + 障礙車歷史軌跡,給出主車接近提示軌跡的預測軌跡和與主車行為自洽的障礙車的預測軌跡。
二、打分模塊,能夠給一個主車+障礙車軌跡打分看這個軌跡是否像專家的行為,學習方法是IRL。
三、Tree Policy Search模塊,用來生成一堆待選軌跡
使用Tree Search的方案來探索主車的可行解,探索過程中每一步都會把已經探索出來的軌跡作為輸入,使用Conditional Prediction來給出主車和障礙車的預測軌跡,然后再調用打分模塊評估軌跡的好壞,從而影響到下一步搜索擴展結點的方向。通過這種辦法可以得到一些差異比較大的主車軌跡,并且軌跡生成時已經隨時考慮了與障礙車的交互。
傳統的IRL都是人工搞了一大堆的feature,如前后一堆障礙物在軌跡時間維度上的各種feature(如相對s, l和ttc之類的),本文里為了讓模型可導,則是直接使用prediction的ego context MLP生成一個Weight數組(size = 1 * C),隱式表征了主車周圍的環境信息,然后又用MLP直接接把主車軌跡+對應多模態預測結果轉成Feature數組(size = C * N, N指的待選軌跡數),然后兩個矩陣相乘得到最終軌跡打分。然后IRL讓專家得分最高。個人感覺這里可能是為了計算效率,讓decoder盡可能簡單,還是有一定的主車信息丟失,如果不關注計算效率,可以用一些更復雜一些的網絡連接Ego Context和Predicted Trajectories,應該效果層面會更好?或者如果放棄可導性,這里還是可以考慮再把人工設置的feature加進去,也應該可以提升模型效果。
在耗時方面,該方案采用一次重Encode + 多次輕量化Decode的方法,有效降低了計算時延,文中提到時延可以壓到98ms。
在learning based planner中屬于SOTA行列,閉環效果接近前一篇文章中提到的nuplan 排第一的Rule Based方案PDM。
總結
看下來,感覺這么個范式是挺不錯的思路,中間具體過程可以自己想辦法調整:
- 用預測模型指導一些規則來生成一些待選ego軌跡
- 對每條軌跡,用Conditional Joint Prediction做交互式預測,生成agent預測??梢蕴嵘┺男阅?。
- IRL等方法做利用Conditional Joint Prediction結果對前邊的主車軌跡打分,選出最優軌跡
原文鏈接:https://mp.weixin.qq.com/s/ZJtMU3zGciot1g5BoCe9Ow