一文聊聊自動駕駛軌跡預測發展現狀
1 何為軌跡預測
自動駕駛中,軌跡預測一般位于感知模塊的后端,規控的前端,為承上啟下的模塊。輸入為感知模塊提供的目標track的state信息、道路結構信息,綜合考量高精地圖信息、目標之間的交互信息,環境的語義信息及目標的意圖信息,對感知到的各類目標做出意圖預測(cut in/out、直行)以及未來一段時間的軌跡預測(0-5s不等)。如下圖所示。
ADAS系統需要對周圍環境信息有一定認知能力,最基本的水平是要識別環境,再上一層則需要理解環境,而再上一層則需要對環境進行預測。在對目標進行預測后,規控便可根據預測信息進行自車的路徑規劃,并做出決策對可能出現的危險情況進行制動或發出告警,這便是軌跡預測模塊存在的意義所在。
2 兩個挑戰
軌跡預測可分為短期預測與長期預測。
- 短期預測一般根據運動學模型(CV/CA/CTRV/CTRA)基于當前的目標state信息預測未來一段時間的軌跡,一般<1s是合適的,如果時間過長,那目標僅與運動學相關的假設就不成立了。短期預測可以建一個運動模型專門去預測,同樣的也可以使用前面感知模塊濾波中的預測模塊,只不過不調用測量進行濾波更新,這樣的好處是可以傳播不確定度。
- 長期預測是當前業界主要在做的。這種預測僅基于運動模型就不合適了,一般需要做意圖預測,并結合一些上下文信息(地圖、目標間交互信息)才能得到不錯的結果。此時業界有很多不同的輸出形式,比如輸出軌跡的概率分布、輸出多條預測軌跡、輸出一條可能性最大的預測軌跡。
對于長期的軌跡預測有兩個挑戰:
- 輸出一條可能的軌跡或者輸出所有可能的軌跡都是不合理的。你輸出一條預測軌跡就可能漏掉真正的軌跡,你輸出所有可能的軌跡就會出現誤報的情況,這對于ADAS系統均是不可接受的。應該考慮把預測軌跡限制在合適的子集中。
- 對軌跡預測做的越多就需要做更多的假設。極端一點的假設就是假定道路上的所有的目標都遵守交通規則。這如果用于交通模擬功能是合理的,但是對adas系統并不合適,他需要對潛在的危險情況保持敏感。
影響做長期軌跡預測的不確定性主要來源于三個方面:
- 感知模塊輸出的目標state估計的不確定。
- 駕駛意圖預測的不確定性。
- 從意圖識別完與車輛機動性改變中間的不確定性。
3 主要考量
對軌跡預測系統應該考慮的四個問題:
- 軌跡預測要對潛在的危險有敏感性,這是軌跡預測存在的意義要求的。
- 既要考慮運行模型也要考慮意圖與周圍環境的信息。
- 考慮上述的不確定性。
- 考慮輸出的軌跡數量問題。
4 業界方法
如下圖為bosch公司發表綜述論文[2]中的分類方法。
- 如果按照使用模型的不同來分類,軌跡預測方法可以分為使用物理模型的方法、使用學習的方法、使用規劃算法的方法。
- 如果按照使用的信息來分類,軌跡預測方法可以分為使用目標的信息的方法、使用環境中的動態目標信息的方法、使用靜態環境信息的方法。
軌跡預測具體會涉及到哪些通用算法呢?
- 意圖預測:模糊理論、static BNs、DBN(HMM、JumpMM)、DS證據理論、機器學習中的分類算法。
- 深度學習相關,端到端輸出。CNN、LSTM、RNN、Attention。
那軌跡預測可以使用哪些具體信息呢?
- 目標信息:當前/歷史的速度與位置信息,如果是行人軌跡預測的話,還可使用行人頭的朝向、關節信息、性別與年齡信息以及人的注意力信息。
- 環境中的動態目標信息:social force、吸引力、群體約束信息。
- 靜態環境信息:free space、map、語義信息(道路結構/交通規則/當前交通信號燈)。
當前學術界軌跡預測方面的論文越來越多,主要原因還是業界沒有行之有效的方法。
以下列舉業界論文:
BMW:物理模型+意圖預測(learning-based)。使用啟發式的方法集成專家知識,簡化了交互模型,在意圖預測的分類模型中加入了博弈論思想[3]。
BENZ:主要為意圖預測的相關論文,使用的是DBN[4]。
Uber:LaneRCNN[5]。
Google:VectorNet[6]。
Huawei:HOME[7]。
Waymo:TNT[8]。
Aptive:Covernet[9]。
NEC:R2P2[10]。
商湯:TPNet[11]。
美團:StarNet[12]。行人。
Aibee:Sophie[13]。行人。
MIT:Social lstm[14]。行人。
中科大:STGAT[15]。行人。
百度:Lane-Attention[16]。
Apollo:可以看如下博客作為參考。
?https://www.cnblogs.com/liuzubing/p/11388485.html?
Apollo的預測模塊接收感知、定位以及地圖模塊的輸入。
1.首先做了場景拆分,分為了普通巡航道路以及路口兩個場景。
2.而后對感知得到的目標做重要性劃分,分為可以忽略的目標(不會影響到自車)、需要謹慎處理的目標(可能影響到自車)以及普通目標(介于二者之間)。
3.而后進入Evaluator,本質上就是一個意圖預測。
4.最后進入predictor,用于預測軌跡生成。對于靜止目標、沿道行駛、freeMove、路口等不同場景做不同的操作。
5 數據集
(1) NGSIM
此數據集是美國FHWA搜集的高速公路行車數據,包括了US101、I-80等道路上的所有車輛在一個時間段的車輛行駛狀況。數據是采用攝像頭獲取,然后加工成一條一條的軌跡點記錄。其數據集為CSV文件。數據沒有太多噪聲。
更多是整體調度層面的信息,如道路規劃、車道設置、車流量調節等。車輛運動學狀態需要進一步抽取。處理代碼可使用下面的github。
?https://github.com/nachiket92/conv-social-pooling?
(2) INTERACTION
此數據集為加州大學伯克利分校機械系統控制實驗室(MSC Lab)與來自卡爾斯魯厄理工學院(KIT)和國立巴黎高等礦業學院(MINES ParisTech)的合作者建立了一個國際性、對抗性、協作性的數據集(INTERACTION)。它能準確再現不同國家的各種駕駛場景中道路使用者(如車輛、行人)的大量交互性行為。
?http://www.interaction-dataset.com/?
(3)apolloscape
此為Apollo的公開自動駕駛數據集,其中有為軌跡預測提供的數據。內部文件為2fps的1min數據序列,數據結構包括幀數ID、目標ID、目標類別、位置xyz,長寬高信息以及heading,其中目標類別包括小車、大車、行人、自行車/電動車以及其他。
?https://apolloscape.auto/trajectory.html?
(4) TRAF
此數據集聚焦于高密度的交通狀況,此狀況可以幫助算法更好地專注在不確定環境下人類駕駛員行為分析。數據每幀分別包含約13輛機動車輛,5名行人和2輛自行車
?https://gamma.umd.edu/researchdirections/autonomousdriving/ad?
在鏈接中有很多使用此數據集的軌跡預測項目。
(5) nuScenes
重磅來了,此數據集是2020年4月提出。其在波士頓和新加坡這兩個城市收集了1000個駕駛場景,這兩個城市交通繁忙而且駕駛狀況極具挑戰性。其數據集具有相關論文,可以看看,更好了解此數據集。
?https://arxiv.org/abs/1903.11027?
此數據集中有預測相關的比賽,可以關注。
?https://www.nuscenes.org/prediction?externalData=all&mapData=all&modalities=Any?
6 評估指標
當前主要使用的評估指標為幾何度量。
幾何度量有很多個指標,主要使用的是ADE、FDE、MR。
ADE為均一化歐式距離。FDE為最終預測點之間的歐式距離。MR為未中率。有很多不同的名字,主要就是設一個閾值,預測點跡之間歐式距離低于這個預測就記為命中,高于這個閾值就記為未命中,最后計算一個百分比。
幾何度量是衡量預測軌跡與實際軌跡相似性的重要指標,可以很好是代表精度。但是以軌跡預測存在的意義來說,僅僅評估精度是沒有意義的。還應有概率度量,用來評估不確定性,尤其是對于多模態輸出分布;還有任務層面度量,魯棒性的度量以及效率的評估這些。
概率度量:可以使用KL散度、預測概率、累積概率來作為概率度量。比如NLL, KDE-based NLL[17]。任務層度量:評估軌跡預測對后端規控的影響(piADE,piFDE)[18]。魯棒性:要考慮在預測之前,觀測到的部分軌跡的長度或持續時間;訓練數據的size;輸入數據采樣頻率和傳感器噪聲;神經網絡泛化、過擬合及輸入利用率分析;感知模塊送入的輸入如果有問題是否保證功能正常等等方面的因素。效率:要考慮算力的。
如下圖所示,此論文的主要考量為基于真值(藍色),灰色的目標車預測的紫色與綠色軌跡如果使用幾何度量是具有相同的ADE與FDE的,但是不同的預測方式對自車的planning會造成影響,而現在沒有這種評估任務層級的度量,于是他們提出piADE與piFDE來做這個事。
7 三個問題
問題1:三種不同的軌跡預測方法:基于物理模型、基于學習、基于規劃各自應用場景在什么地方,有什么優缺點呢?
不同的建模方法可以結合并利用不同類型的上下文信息。利用目標的上下文線索、動靜態環境可以擴展出所有建模方法。然而,不同的建模方法在結合不同類別的語義信息時表現出不同程度的復雜性和效率。
1.基于物理模型的方法
適用場景:目標、靜態環境、動力學模擬可以被顯式轉移方程建模。
優點:
- 基于物理模型的方法通過選擇適當的轉移方程,可以很容易地跨環境應用,而不需要訓練數據,盡管一些用于參數估計的數據是有用的。在論文中,簡單的CV模型也可產生合理的結果。
- 基于物理模型的方法很容易和target agent cues結合進行擴展。
缺點:
- 這種顯示建模的方法可能無法很好地捕捉現實世界的復雜性。
- 轉移方程在空間與時間上缺乏全局信息,導致可能獲得是局部最優解。
這樣的缺點導致使用物理的方法限制在短期預測或者obstacle-free的環境。
2.基于學習的方法
適用場景:適合于當前環境具有復雜的未知信息(例如具有豐富語義的公共區域),并且這些信息可以用于比較大的預測范圍。
優點:
- 基于學習的方法可以潛在地處理所有類型的上下文信息,這些信息編碼在收集的數據集。他們中一些是map-based,另外一些可以用來對上下文信息進一步擴展。
缺點:
- 需要在特定地點收集足夠的數據,才能進行訓練。
- 上下文信息擴展可能會導致involved learning、數據效率和泛化問題。
- 傾向于在非安全的關鍵組件中使用,在ADAS中比較在意可解釋性,這是基于學習方法無法做到的。
3.基于規劃的方法
適用場景:在終點定下來了且環境地圖可獲得的場景,有很好的表現。
優點:
- 如果滿足以上兩個條件,其比物理方法可以獲得更好的精度,比基于學習的方法有更好的泛化能力。
缺點:
- 傳統的規劃算法:Dijkstra、Fast Marching Method、optimal sampling-based motion planners會隨著目標的數量、環境的大小、預測范圍的增加而指數增長。
- 與基于物理的簡單模型相比,基于上下文線索的規劃方法(如逆向規劃的獎勵函數和正向規劃的模型)的參數是瑣碎的,通常更容易學習,但在推理方面,對于高維(目標)智能體狀態,效率較低。
基于規劃的方法本質上是map-aware 與 abstacle-aware,很自然地使用語義線索進行擴展。通常情況下,他們會將情境復雜性編碼到目標/獎勵方程中,但這可能無法恰當地整合動態線輸入。因此,作者必須設計具體的修改,將動態輸入納入預測算法(Jump Markov Processes、local adaptations of the predicted trajectory、game-theoretic)。與基于學習的方法不同,目標輸入很容易被合并,因為前向與逆向的規劃過程都基于同一個目標動態模型。
問題2:軌跡預測的問題現在已經解決了嗎?
軌跡預測的需求很大程度上取決于應用領域和其中的特定用例場景。短期內可能不能說軌跡預測這個問題已經解決了。以汽車行業舉例,因為有專門的標準規定,定義了最大速度、交通規則、行人速度和加速度的分布,以及車輛舒適加速/減速率的規范,其在制定需求和提出的解決方案方面似乎是最成熟的。可以說對于智能汽車的AEB功能,解決方案已經達到了允許工業化生產消費產品的性能水平,對于其所需用例已經解決。至于其他用例,則需要在不久的將來對需求進行更多的標準化和明確的表述。并且對于魯棒性與穩定性還需要演進。
所以在回答軌跡預測是否已經解決這個問題之前,最起碼應該把標準定了。
當前對于機器人領域來說
- 基于物理模型與學習的方法可以在短時間(1-2s)有較高的精度。非常適用于人群的局部運動規劃與碰撞避免。最簡單的CV模型就對機器人的局部規劃有很好的效果。如果考慮行人之間的交互以及因為機器人的存在對行人運動產生的影響,有好多種先進算法。
- 對于需要預測15-20s的去全局路徑規劃,有很大挑戰。需求可以適當放松,而理解動靜態上下文輸入(長期來看影響運行、在環境地圖上的推理、目標的意圖推斷)則變得十分重要。對于局部和全局路徑規劃,位置無關方法最適合在各種環境下預測運動。
- 當前機器人預測4.8s的ADE為0.19-0.4m的。簡單的速度模型也可以達到0.53m的ADE。9s預測有1.4-2m的ADE。
當前對于自動駕駛領域來說:
- 大多數工作考慮的都是橫穿馬路的行人:開始走 繼續走 停止走。
- 自行車:一個騎自行車的人在接近一個十字路口時,后面有多達五個不同的道路方向。
問題3:當前衡量軌跡預測性能的評估技術是否足夠好?
當前對于預測算法缺乏系統性的方法,特別是對于考慮上下文輸入以及預測任意數量的目標的軌跡預測方法。
現在大多數作者僅僅使用幾何度量(AED, FDE)作為衡量算法好壞的指標。然而對于長時間預測,預測通常是多模態的,并且與不確定性有關,對此種方法的性能評估應該使用考慮到這一點的指標,例如從KLD得到的負對數似然或對數損失。
此外也需要概率度量,其可以更好地反映了人體運動的隨機性以及感知缺陷所涉及的不確定性。
還有魯棒性的評估,需要考量在感知端出現檢測錯誤,跟蹤缺陷,自我定位不確定性或地圖變化此類場景時系統的穩定性。
同時當前所使用數據集,雖然包含的場景十分的全面,但是這些數據集通常是半自動注釋的,因此只能提供不完整和有噪聲真值估計。此外,在一些需要長期預測的應用領域中,軌跡長度往往不足。最后,數據集中的目標之間的交互通常是有限的,例如在稀疏的環境里面,目標之間很難有影響。
綜上:為了評價預測質量,研究者應該選擇更復雜的數據集(包括非凸的障礙、長軌跡和復雜的interaction)以及完整的度量指標(幾何+概率)。比較好的方法是根據不同的預測時間、不同的觀測周期,不同的場景復雜度設置不同的精度要求。并且應該有魯棒性評估以及實時性評估。此外應該有相關的指標可以衡量ADAS系統對后端影響程度的指標[18]以及衡量對危險場景敏感性的指標[1]。
8 未來方向
來自于[2]中的討論,此處為引用。
當前的趨勢時用更復雜的方法去超越使用單一模型+KF的方法
方向:
- 使用強化的上下文信息:可以使用更深層次的語義信息,這種語義信息應對靜態環境有更好的理解。并且當前使用語義特征進行軌跡預測仍有待于開發
- 關于有social-aware的場景:①當前大多數方法假設所有被觀察到的人的行為都是相似的,他們的運動可以由相同的模型和相同的特征來預測,而對高層次社會屬性的捕捉和推理還處于發展的早期階段。②大多數可行的方法基于的假設是人們之間的合作行為,而真實的人可能更傾向于優化個人目標,而不是聯合策略,因此結合傳統AI+博弈論的方法很有研究前途。
- 對于長期預測,上下文信息變得特別重要,因為要基于情境和周圍環境考慮意圖。當前許多基于學習的方法將個體視為粒子,用來學習轉移信息,以決定未來運動的方向。而通過更多的通過意圖驅動的預測來擴展這些模型,類似于人類目標導向的行為,將有利于長期預測。
- 大多數基于規劃的方法依賴于一組給定的目標,這使得它們在沒有事先知道目的地或可能目的地數量過高的情況下無法使用或不精確。這使得基于語義信息對目的終點進行自動推斷變得重要。或者可以動態識別環境里面的可能目的地,并基于此進行軌跡預測。這樣就可以在未知的環境里面使用基于規劃的方法了。
- 現在的方法都是集中于解決某一類特定的任務,比如當環境中存在明顯的運動模式時,或者當環境的空間結構和目標agent的目的地預先已知時。而軌跡預測方法需要能適應未定義的/不斷變化的環境,并且可以處理突發情況。這就需要遷移學習以及一些應對新環境的方法,這種情況下,學習和推理基本的不變的規則,或者通用的行人行為或者碰撞避免是不合適的。領域自適應是可以用于學習泛化模型。
- 另外需要注意的方向:魯棒性與可集成性。
綜上:簡潔來說就是上下文信息用的要更深入、最好對不同目標有不同行為模型、博弈論、基于更多信息做更魯棒的意圖預測、對終點的自動推斷、對新環境的泛化問題、魯棒性與可集成性。