在第4期Apollo自動(dòng)駕駛公開課中,來(lái)自Apollo團(tuán)隊(duì)的高級(jí)研發(fā)工程師-詹錕老師為大家?guī)?lái)了關(guān)于Apollo 2.5預(yù)測(cè)系統(tǒng)的內(nèi)容分享。
詹錕老師主要從三個(gè)方面講解了Apollo 2.5的預(yù)測(cè)系統(tǒng):
第一自動(dòng)駕駛為什么需要預(yù)測(cè),預(yù)測(cè)的作用是什么,如果沒(méi)有預(yù)測(cè)會(huì)怎樣;
第二從代碼層面詳述Apollo的預(yù)測(cè)系統(tǒng)代碼是如何實(shí)現(xiàn)的,每個(gè)模塊的功能,如果開發(fā)者要改動(dòng)或者修改應(yīng)該怎么介入;
第三Apollo預(yù)測(cè)系統(tǒng)在實(shí)際場(chǎng)景中所遇到的困難,以及解決方案。
這里,我們將整理后的公開課視頻和資料分享給大家,沒(méi)能到達(dá)現(xiàn)場(chǎng)的開發(fā)者可以通過(guò)視頻和PPT資料來(lái)詳細(xì)了解課程內(nèi)容。
Apollo 2.5預(yù)測(cè)系統(tǒng)介紹
預(yù)測(cè)模塊是連接感知和決策規(guī)劃的橋梁,結(jié)合物理世界的人類行為習(xí)慣進(jìn)行適當(dāng)?shù)倪壿嬐评恚瑢⒅車系K物下一時(shí)刻和后續(xù)多個(gè)時(shí)刻的運(yùn)動(dòng)行為進(jìn)行估計(jì),給出對(duì)應(yīng)可能的運(yùn)動(dòng)軌跡線。
詹錕老師主要從代碼層面剖析Apollo2.5的預(yù)測(cè)系統(tǒng)。
Apollo代碼架構(gòu)預(yù)測(cè)部分分為3個(gè)部分,第一個(gè)是Container,作用是合理規(guī)劃整合上游數(shù)據(jù),處理歷史信息;第二部分是評(píng)估、評(píng)價(jià),是預(yù)測(cè)系統(tǒng)的核心,非常適用于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),建立合理模型,使其找到人類的歷史行為軌跡,預(yù)測(cè)路線。通過(guò)第二部分的推理,系統(tǒng)會(huì)繪制出物體的行為軌跡,并將結(jié)果傳遞給決策規(guī)劃層。
Container
首先是Container, ADC trajectory可以通過(guò)路權(quán)做合理的推理,讓障礙物不直接發(fā)生預(yù)測(cè)。第二是構(gòu)建來(lái)自感知障礙物、定位和高精圖等序列化特征。第三是本車的狀態(tài)。除了上面的特征抽取以外,更重要一步是需要把地圖信息進(jìn)行合理的規(guī)劃。
如何在復(fù)雜的物理世界中,把地圖數(shù)據(jù)進(jìn)行合理的刻畫,這是非常重要的步驟。通過(guò)把每條Lane,拆分成小的Lane,Lane1、Lane2、Lane3,按照前后級(jí)關(guān)系,組成具體的序列,每個(gè)序列上車都可以沿著其中一個(gè)序列進(jìn)行走,就是這個(gè)車的軌跡線。上圖可以看到紅車有可能走三條軌跡線,就是Lane1、Lane2、Lane3,根據(jù)當(dāng)前的地圖信息和當(dāng)前的Lane的位置狀態(tài),刻畫出這樣具有特征表達(dá)的地圖信息出來(lái),只有物理識(shí)別信息進(jìn)行合理表達(dá),才能進(jìn)行網(wǎng)絡(luò)學(xué)習(xí)、數(shù)據(jù)驅(qū)動(dòng),這是根據(jù)地圖特征信息抽取非常重要的部分。
在Apollo代碼里,表達(dá)出每個(gè)特征的特性,如上圖左邊是關(guān)于障礙物的特征,包含了車的位置信息、速度信息、加速信息、位置方向還有它的長(zhǎng)、寬、高等等,右邊是代表它的Lane信息,把細(xì)小的Lane,組成Lane feature。這就是Container需要做的事情。
Evaluator
第二部是邏輯推理階段,這也是預(yù)測(cè)直接使用神經(jīng)網(wǎng)絡(luò)的方式。就Apollo來(lái)說(shuō),對(duì)車輛進(jìn)行了深度神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。具體來(lái)講,結(jié)構(gòu)如圖所示,將每個(gè)障礙物各自特征輸入給LSTM的模型,每個(gè)LSTM對(duì)特征信息進(jìn)行了全連接,最后輸出走這一條LSTM。第一規(guī)劃Lane橫向行為的分類情況,選擇是否走此Lane,選擇Lane1還是Lane2。第二是它的動(dòng)力學(xué),速度是什么樣的,就是它縱向的問(wèn)題。第一是分類問(wèn)題,同時(shí)結(jié)合在一個(gè)神經(jīng)網(wǎng)絡(luò)中,這是Apollo 2.5的神經(jīng)網(wǎng)絡(luò)。
前面有兩種預(yù)測(cè)方式,開發(fā)者可以根據(jù)自己的特性選擇自己的評(píng)價(jià)網(wǎng)絡(luò),只是這個(gè)結(jié)構(gòu)可以根據(jù)Apollo配置。
Predictor
選擇某條Lane或者知道Lane上面的速度以后,可以繪制出這個(gè)物體在Lane的行為軌跡,具體怎么繪制,有以下三種方式:一個(gè)是Free move,根據(jù)障礙物的動(dòng)力學(xué)模型繪制出軌跡。第二是Lane sequence,就是根據(jù)車道中心線和Kalman濾波方法繪制的軌跡。第三是Move sequence,結(jié)合里學(xué)和車道信息融合后降采樣的軌跡方式。第四是Regional,根據(jù)障礙物動(dòng)力學(xué)和軌跡3Sigma方差構(gòu)建的區(qū)域軌跡。
Apollo Data
數(shù)據(jù)開發(fā)者來(lái)說(shuō)是非常重要的一部分,Apollo開放的數(shù)據(jù)對(duì)預(yù)測(cè)有很好的作用,基于Apollo Data,可以通過(guò)自己采集以及周圍開發(fā)者共享數(shù)據(jù)進(jìn)一步開發(fā)預(yù)測(cè)模型 。
Apollo Data的數(shù)據(jù)使用規(guī)范:
使用SL坐標(biāo)系,車在軌道上做相對(duì)軌道的刻劃,然后確定要走的車道線每一個(gè)車道的狀態(tài)。通過(guò)這樣的數(shù)據(jù)結(jié)構(gòu),給特定的Lane,檢測(cè)它到底走沒(méi)走這條線,通過(guò)這樣的數(shù)據(jù)訓(xùn)練模型,通過(guò)數(shù)據(jù)驅(qū)動(dòng)方式,可能就非常貼切的表達(dá)出人類的駕駛行為習(xí)慣,而不是通過(guò)規(guī)則算法來(lái)做。
實(shí)際效果
通過(guò)動(dòng)圖了解一下其效果:
自行車過(guò)馬路的時(shí)候,本來(lái)應(yīng)該是紅燈變綠燈了,然后它應(yīng)該在原地等待車輛駛過(guò),但是其選擇了闖紅燈,系統(tǒng)能很好的給出預(yù)測(cè)線,這在預(yù)測(cè)場(chǎng)景是非常好的應(yīng)用。
在無(wú)人車加速過(guò)路口的時(shí)候,有一個(gè)被隔離帶遮擋的障礙物出現(xiàn)了,同時(shí)其也選擇在無(wú)人車之前搶過(guò)這個(gè)路口,因此此時(shí)必須要有預(yù)測(cè)提前給主車提供這樣的信號(hào),讓主車能及時(shí)做反應(yīng),而不是發(fā)生更危險(xiǎn)的情況,這就是預(yù)測(cè)在承上啟下作用中,有非常好的范圍。
其實(shí)在中國(guó)的這些道路場(chǎng)景中,預(yù)測(cè)其實(shí)還遇到了非常多困難,最大的挑戰(zhàn)預(yù)測(cè)其實(shí)是在路口上。路口有很多種行為方式,比如一個(gè)車道既可以調(diào)頭,也可以左轉(zhuǎn),也可以直行,還有各種社會(huì)車輛不按軌跡行走,這其實(shí)也是對(duì)預(yù)測(cè)有非常大的困難。如圖左側(cè)車輛并沒(méi)有按照真正的軌跡走,這樣的場(chǎng)景對(duì)主車是非常大的威脅,理論上從交規(guī)上肯定是他們的過(guò)錯(cuò),但是主車一切以安全為先,所以主車必須避讓。對(duì)這樣的場(chǎng)景,預(yù)測(cè)還是有很多困難。
第二場(chǎng)景是博弈的問(wèn)題,低速過(guò)程中往往發(fā)生博弈現(xiàn)象,到底是哪輛車先走,這個(gè)情況是非常常見。如圖中,兩輛車都在等待對(duì)方先行,一方先行后,另一方又要開始行駛,所以需要進(jìn)行上下游的溝通,才能進(jìn)行更好的處理。
第三個(gè)場(chǎng)景是切車,有一些車輛行為比較暴躁,會(huì)在非常不合理的情況下急速加塞進(jìn)來(lái),導(dǎo)致主車處于很不安全的狀態(tài),從規(guī)則上并沒(méi)有問(wèn)題,但是這種場(chǎng)景對(duì)于自動(dòng)駕駛也是要盡量躲讓,這時(shí)預(yù)測(cè)需要更好刻畫出駕駛行為是不是很危險(xiǎn)、激進(jìn)。
這種典型的挑戰(zhàn)場(chǎng)景,其實(shí)還有很多,整個(gè)預(yù)測(cè)的問(wèn)題也分為這兩部分,一個(gè)是內(nèi)部挑戰(zhàn),一個(gè)是外部挑戰(zhàn),內(nèi)部挑戰(zhàn)主要是數(shù)據(jù)怎么能把所有的特征表達(dá)充分,模型是否在建立的非常合理,是不是還有更好的建模方式,這都是內(nèi)部的挑戰(zhàn)。
同時(shí)既然是承上啟下的模塊,對(duì)上游數(shù)據(jù)的容忍度、依賴性都需要做一些處理,上游如果感知發(fā)出了消息,系統(tǒng)應(yīng)該怎么根據(jù)歷史信息做很好的規(guī)避?做很好的容錯(cuò),這也是一個(gè)挑戰(zhàn)。同時(shí)像博弈問(wèn)題,需要給下游決策做一些很好的交互,怎么提醒它先避讓還是先加速過(guò)去,這也是給預(yù)測(cè)帶來(lái)了非常多困難。
后續(xù)Apollo預(yù)測(cè)還是要不斷迭代更新,具體來(lái)說(shuō),會(huì)在特征方面做更多的融合處理,利用歷史信息,除了考慮當(dāng)前的障礙物,還要考慮周圍所有障礙物,對(duì)全局進(jìn)行估計(jì)。另外模型的迭代,同時(shí)數(shù)據(jù)積累,把仿真和真實(shí)打通,作為系統(tǒng)整合,需要上下游的聯(lián)系,通過(guò)多個(gè)維度,對(duì)預(yù)測(cè)模塊進(jìn)行整合,這是后續(xù)Apollo需要做的事情。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103622 -
Apollo
+關(guān)注
關(guān)注
5文章
348瀏覽量
18860
原文標(biāo)題:?自動(dòng)駕駛公開課 | Apollo 2.5預(yù)測(cè)系統(tǒng)介紹
文章出處:【微信號(hào):zuosiqiche,微信公眾號(hào):佐思汽車研究】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
智能電網(wǎng)預(yù)測(cè)負(fù)荷波動(dòng)的影響
如何對(duì)Apollo2.5 CANBUS進(jìn)行全面調(diào)試?
Ambiq Apollo4的相關(guān)資料推薦
Apollo Heritage版音頻接口附帶的插件
Apollo 2.5版基于相對(duì)地圖的新導(dǎo)航模式

關(guān)于Apollo“云+端”的實(shí)戰(zhàn)內(nèi)容, Apollo 2.0 實(shí)戰(zhàn)技術(shù)基礎(chǔ)
百度發(fā)布Apollo 2.5,傳感器解決方案成本更低
百度Apollo周年_“數(shù)據(jù)”才是真正的主角
百度Apollo2.5全球首發(fā):比亞迪成第100位合作伙伴,進(jìn)一步提升自動(dòng)駕駛安全性
淺析Apollo 2.5限定場(chǎng)景低成本技術(shù)方案
關(guān)于Apollo3.0 PnC更新以及車輛開放平臺(tái)的講解
基于規(guī)則的預(yù)測(cè)算法和基于機(jī)器學(xué)習(xí)的預(yù)測(cè)算法
將預(yù)測(cè)問(wèn)題簡(jiǎn)化為選擇問(wèn)題——Apollo車道預(yù)測(cè)詳解

apollo系列之apollo2 mcu開發(fā)(基礎(chǔ)篇)之1.1-apollo2 mcu簡(jiǎn)介

評(píng)論