在第4期Apollo自動駕駛公開課中,來自Apollo團隊的高級研發(fā)工程師-詹錕老師為大家?guī)砹岁P于Apollo 2.5預測系統(tǒng)的內容分享。
詹錕老師主要從三個方面講解了Apollo 2.5的預測系統(tǒng):
第一自動駕駛為什么需要預測,預測的作用是什么,如果沒有預測會怎樣;
第二從代碼層面詳述Apollo的預測系統(tǒng)代碼是如何實現(xiàn)的,每個模塊的功能,如果開發(fā)者要改動或者修改應該怎么介入;
第三Apollo預測系統(tǒng)在實際場景中所遇到的困難,以及解決方案。
這里,我們將整理后的公開課視頻和資料分享給大家,沒能到達現(xiàn)場的開發(fā)者可以通過視頻和PPT資料來詳細了解課程內容。
Apollo 2.5預測系統(tǒng)介紹
預測模塊是連接感知和決策規(guī)劃的橋梁,結合物理世界的人類行為習慣進行適當?shù)倪壿嬐评恚瑢⒅車系K物下一時刻和后續(xù)多個時刻的運動行為進行估計,給出對應可能的運動軌跡線。
詹錕老師主要從代碼層面剖析Apollo2.5的預測系統(tǒng)。

Apollo代碼架構預測部分分為3個部分,第一個是Container,作用是合理規(guī)劃整合上游數(shù)據(jù),處理歷史信息;第二部分是評估、評價,是預測系統(tǒng)的核心,非常適用于神經(jīng)網(wǎng)絡的學習,建立合理模型,使其找到人類的歷史行為軌跡,預測路線。通過第二部分的推理,系統(tǒng)會繪制出物體的行為軌跡,并將結果傳遞給決策規(guī)劃層。
Container

首先是Container, ADC trajectory可以通過路權做合理的推理,讓障礙物不直接發(fā)生預測。第二是構建來自感知障礙物、定位和高精圖等序列化特征。第三是本車的狀態(tài)。除了上面的特征抽取以外,更重要一步是需要把地圖信息進行合理的規(guī)劃。
如何在復雜的物理世界中,把地圖數(shù)據(jù)進行合理的刻畫,這是非常重要的步驟。通過把每條Lane,拆分成小的Lane,Lane1、Lane2、Lane3,按照前后級關系,組成具體的序列,每個序列上車都可以沿著其中一個序列進行走,就是這個車的軌跡線。上圖可以看到紅車有可能走三條軌跡線,就是Lane1、Lane2、Lane3,根據(jù)當前的地圖信息和當前的Lane的位置狀態(tài),刻畫出這樣具有特征表達的地圖信息出來,只有物理識別信息進行合理表達,才能進行網(wǎng)絡學習、數(shù)據(jù)驅動,這是根據(jù)地圖特征信息抽取非常重要的部分。

在Apollo代碼里,表達出每個特征的特性,如上圖左邊是關于障礙物的特征,包含了車的位置信息、速度信息、加速信息、位置方向還有它的長、寬、高等等,右邊是代表它的Lane信息,把細小的Lane,組成Lane feature。這就是Container需要做的事情。
Evaluator

第二部是邏輯推理階段,這也是預測直接使用神經(jīng)網(wǎng)絡的方式。就Apollo來說,對車輛進行了深度神經(jīng)網(wǎng)絡的學習。具體來講,結構如圖所示,將每個障礙物各自特征輸入給LSTM的模型,每個LSTM對特征信息進行了全連接,最后輸出走這一條LSTM。第一規(guī)劃Lane橫向行為的分類情況,選擇是否走此Lane,選擇Lane1還是Lane2。第二是它的動力學,速度是什么樣的,就是它縱向的問題。第一是分類問題,同時結合在一個神經(jīng)網(wǎng)絡中,這是Apollo 2.5的神經(jīng)網(wǎng)絡。
前面有兩種預測方式,開發(fā)者可以根據(jù)自己的特性選擇自己的評價網(wǎng)絡,只是這個結構可以根據(jù)Apollo配置。
Predictor
選擇某條Lane或者知道Lane上面的速度以后,可以繪制出這個物體在Lane的行為軌跡,具體怎么繪制,有以下三種方式:一個是Free move,根據(jù)障礙物的動力學模型繪制出軌跡。第二是Lane sequence,就是根據(jù)車道中心線和Kalman濾波方法繪制的軌跡。第三是Move sequence,結合里學和車道信息融合后降采樣的軌跡方式。第四是Regional,根據(jù)障礙物動力學和軌跡3Sigma方差構建的區(qū)域軌跡。
Apollo Data
數(shù)據(jù)開發(fā)者來說是非常重要的一部分,Apollo開放的數(shù)據(jù)對預測有很好的作用,基于Apollo Data,可以通過自己采集以及周圍開發(fā)者共享數(shù)據(jù)進一步開發(fā)預測模型 。

Apollo Data的數(shù)據(jù)使用規(guī)范:
使用SL坐標系,車在軌道上做相對軌道的刻劃,然后確定要走的車道線每一個車道的狀態(tài)。通過這樣的數(shù)據(jù)結構,給特定的Lane,檢測它到底走沒走這條線,通過這樣的數(shù)據(jù)訓練模型,通過數(shù)據(jù)驅動方式,可能就非常貼切的表達出人類的駕駛行為習慣,而不是通過規(guī)則算法來做。
實際效果
通過動圖了解一下其效果:
自行車過馬路的時候,本來應該是紅燈變綠燈了,然后它應該在原地等待車輛駛過,但是其選擇了闖紅燈,系統(tǒng)能很好的給出預測線,這在預測場景是非常好的應用。
在無人車加速過路口的時候,有一個被隔離帶遮擋的障礙物出現(xiàn)了,同時其也選擇在無人車之前搶過這個路口,因此此時必須要有預測提前給主車提供這樣的信號,讓主車能及時做反應,而不是發(fā)生更危險的情況,這就是預測在承上啟下作用中,有非常好的范圍。
其實在中國的這些道路場景中,預測其實還遇到了非常多困難,最大的挑戰(zhàn)預測其實是在路口上。路口有很多種行為方式,比如一個車道既可以調頭,也可以左轉,也可以直行,還有各種社會車輛不按軌跡行走,這其實也是對預測有非常大的困難。如圖左側車輛并沒有按照真正的軌跡走,這樣的場景對主車是非常大的威脅,理論上從交規(guī)上肯定是他們的過錯,但是主車一切以安全為先,所以主車必須避讓。對這樣的場景,預測還是有很多困難。
第二場景是博弈的問題,低速過程中往往發(fā)生博弈現(xiàn)象,到底是哪輛車先走,這個情況是非常常見。如圖中,兩輛車都在等待對方先行,一方先行后,另一方又要開始行駛,所以需要進行上下游的溝通,才能進行更好的處理。
第三個場景是切車,有一些車輛行為比較暴躁,會在非常不合理的情況下急速加塞進來,導致主車處于很不安全的狀態(tài),從規(guī)則上并沒有問題,但是這種場景對于自動駕駛也是要盡量躲讓,這時預測需要更好刻畫出駕駛行為是不是很危險、激進。
這種典型的挑戰(zhàn)場景,其實還有很多,整個預測的問題也分為這兩部分,一個是內部挑戰(zhàn),一個是外部挑戰(zhàn),內部挑戰(zhàn)主要是數(shù)據(jù)怎么能把所有的特征表達充分,模型是否在建立的非常合理,是不是還有更好的建模方式,這都是內部的挑戰(zhàn)。
同時既然是承上啟下的模塊,對上游數(shù)據(jù)的容忍度、依賴性都需要做一些處理,上游如果感知發(fā)出了消息,系統(tǒng)應該怎么根據(jù)歷史信息做很好的規(guī)避?做很好的容錯,這也是一個挑戰(zhàn)。同時像博弈問題,需要給下游決策做一些很好的交互,怎么提醒它先避讓還是先加速過去,這也是給預測帶來了非常多困難。
后續(xù)Apollo預測還是要不斷迭代更新,具體來說,會在特征方面做更多的融合處理,利用歷史信息,除了考慮當前的障礙物,還要考慮周圍所有障礙物,對全局進行估計。另外模型的迭代,同時數(shù)據(jù)積累,把仿真和真實打通,作為系統(tǒng)整合,需要上下游的聯(lián)系,通過多個維度,對預測模塊進行整合,這是后續(xù)Apollo需要做的事情。
-
神經(jīng)網(wǎng)絡
+關注
關注
42文章
4844瀏覽量
108203 -
Apollo
+關注
關注
5文章
351瀏覽量
19768
原文標題:?自動駕駛公開課 | Apollo 2.5預測系統(tǒng)介紹
文章出處:【微信號:zuosiqiche,微信公眾號:佐思汽車研究】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
智能電網(wǎng)預測負荷波動的影響
如何對Apollo2.5 CANBUS進行全面調試?
Ambiq Apollo4的相關資料推薦
Apollo Heritage版音頻接口附帶的插件
Apollo 2.5版基于相對地圖的新導航模式
關于Apollo“云+端”的實戰(zhàn)內容, Apollo 2.0 實戰(zhàn)技術基礎
百度發(fā)布Apollo 2.5,傳感器解決方案成本更低
百度Apollo周年_“數(shù)據(jù)”才是真正的主角
百度Apollo2.5全球首發(fā):比亞迪成第100位合作伙伴,進一步提升自動駕駛安全性
淺析Apollo 2.5限定場景低成本技術方案
關于Apollo3.0 PnC更新以及車輛開放平臺的講解
基于規(guī)則的預測算法和基于機器學習的預測算法
apollo系列之apollo2 mcu開發(fā)(基礎篇)之1.1-apollo2 mcu簡介
關于Apollo 2.5預測系統(tǒng)的內容分享
評論