首個大一統(tǒng)預(yù)訓(xùn)練模型!BEVGPT:集預(yù)測、決策、運動規(guī)劃于一體!
本文經(jīng)自動駕駛之心公眾號授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
筆者的個人理解
BEVGPT 是第一個生成式, 集預(yù)測、決策、運動規(guī)劃于一體的自監(jiān)督 pre-trained的大模型。輸入BEV images, 輸出自車軌跡, 并且能夠輸出對駕駛場景的預(yù)測, 該方案訓(xùn)練時需要高精地圖.
之所以叫GPT,一方面是因為利用了GPT式的自回歸訓(xùn)練方法, 這里自回歸的輸入是歷史的軌跡及BEV, target 是下一個BEV和軌跡.
另一方面,能夠做到生成, 即給定初始楨的BEV, 算法能夠自己生成接下來的多楨BEV場景.
該方法并不是一個從傳感器輸入的端到端方法, 可以看成是基于感知的結(jié)果,將后面的模塊用一個模型給模型化了, 在實際中也有重要的應(yīng)用價值. 比如能夠基于很多駕駛回傳數(shù)據(jù)的感知結(jié)果和軌跡真值來訓(xùn)練駕駛專家模型.
問題&思考
- causal transformer訓(xùn)練那塊兒感覺不是很詳細(xì), 沒有具體說BEV圖像和BEV軌跡在進入transformer之前是如何編碼或token化的?
 - BEV預(yù)測Head結(jié)構(gòu)是什么樣?
 - trajectory head 結(jié)構(gòu)是什么樣?
 - 訓(xùn)練時需要高精地圖, 如何去掉高精度地圖, 高精地圖在這里起到的作用是和動態(tài)障礙物信息一起組成了當(dāng)前BEV場景;
 - 如果不用高精地圖, 就只用障礙物的信息來訓(xùn)練的話, 即BEV Image里面只有障礙物的信息, 效果是怎樣的? (人在沒有車道線和路沿的鄉(xiāng)間小路上仍然會開車), 個人認(rèn)為應(yīng)該做這個實驗.
 - 自動駕駛場景, 可以看作是連續(xù)序列, 使用GPT這種語言模型可能天然具有一定的優(yōu)勢, 但是對于輸入, 目前還沒有做到像語言那樣簡單又富含語義,這可能是接下來思考的重點. 一個可能的嘗試是這里的BEV image,如果換成了BEV feature(比如用BEVformer或者LSS得到的BEV feature), 效果是怎樣的?
 
BEVGPT到底做了什么?
預(yù)測,決策,運動規(guī)劃在自動駕駛的模塊設(shè)計中起著至關(guān)重要的作用。在很多工作中,這幾個模塊是通過共享backbone 用不同的head,以multi-task的方式進行學(xué)習(xí)。
作者認(rèn)為這些模塊應(yīng)該集成到一個綜合的框架中.盡管已經(jīng)有一些工作在這么做,但是已有的方法中,有一些問題,比如復(fù)雜的輸入表示,以及網(wǎng)絡(luò)框架上的冗余設(shè)計,更重要的是,已有的工作不能夠?qū)︸{駛場景做長時間的預(yù)測。
為了處理這些問題,作者重新思考每個模塊的必要性,設(shè)計了一個盡可能性小的框架, 叫BEVGPT, 它是一種自監(jiān)督pre-trained大模型, 并且集駕駛場景的預(yù)測,決策,運動規(guī)劃與一體。
BEVGPT輸入BEV的images, 根據(jù)周圍的交通場景做決策。為了確保駕駛軌跡的可行性和光滑性, 作者設(shè)計了一套基于優(yōu)化的運動規(guī)劃方法。
BEVGPT在多個數(shù)據(jù)集上體現(xiàn)出了有效性和魯棒性。并且BEVGPT能夠精確地產(chǎn)生長時間的BEV images,這一點通過駕駛場景的預(yù)測得已體現(xiàn)。
BEVGPT簡介
自動駕駛車輛是集成了預(yù)測、決策和規(guī)劃技術(shù)的智能系統(tǒng)。一個被廣泛接受的解決方案是將這些任務(wù)劃分為不同的模塊,并為每個模塊設(shè)計并發(fā)展針對具體任務(wù)的模型。
在這個方案中,首先基于環(huán)境信息預(yù)測周圍交通參與者的未來軌跡。然后利用預(yù)測的交通參與者行為以及地圖信息來進行駕駛決策和規(guī)劃自車的未來軌跡。然而,采用這種模塊化的方法,系統(tǒng)容易受到不同模塊之間累積誤差的影響。
另一種替代范式是多任務(wù)學(xué)習(xí),其中共享backbone進行特征提取, 但各自有獨立任務(wù)heads。雖然這種方法減小了模型的大小和復(fù)雜性,并實現(xiàn)了更快的計算速度和較少的計算開銷,但由于與不相關(guān)任務(wù)共享信息可能會損害模型性能,因此可能會遭受負(fù)面影響。
相反,作者認(rèn)為自動駕駛的各個模塊應(yīng)該被整合到一個綜合框架中。最近的研究表明,俯視圖(BEV)視角對自動駕駛系統(tǒng)具有巨大潛力。BEV為以視覺為中心的感知提供了鄰近交通情況的準(zhǔn)確表示。然而,現(xiàn)有的BEV生成方法需要復(fù)雜的輸入表示。此外,這些方法缺乏長期建模的能力,使得它們對未來BEV的預(yù)測不可靠。
作者提出了一個名為BEVGPT的綜合框架,它將預(yù)測、決策和運動規(guī)劃整合到一個單一的具有BEV圖像作為輸入的生成式預(yù)訓(xùn)練GPT中。
如圖所示,

整個框架采用了一個兩階段的訓(xùn)練過程。首先,使用大量的自動駕駛數(shù)據(jù)來訓(xùn)練一個casual transformer。隨后,通過在線學(xué)習(xí)使用一個逼真的模擬器對模型進行微調(diào)。預(yù)訓(xùn)練階段的目標(biāo)是學(xué)習(xí)駕駛場景的預(yù)測和決策,即自動駕駛?cè)蝿?wù)中的BEV生成和自車的預(yù)測。
該模型具有較高的容量,可以預(yù)測未來4秒的軌跡,并預(yù)測未來6秒內(nèi)的駕駛場景。
BEVGPT的方法設(shè)計
框架設(shè)計
作者從人類駕駛員的角度重新評估每個模塊的必要性,以設(shè)計自動駕駛系統(tǒng)框架。
- 人類駕駛員對環(huán)境地圖有先驗的知識, 比如在使用導(dǎo)航軟件時,每條道路的結(jié)構(gòu)和路口位置都比較明顯.
 - 人類駕駛員并不會顯示地追蹤周圍的其他車輛,并預(yù)測它們的未來軌跡。相反,他們更關(guān)注的是預(yù)測的自車軌跡是否會被其他車輛所占據(jù)。然后,他們會做出相應(yīng)地駕駛決策。
 
基于上述思考, 作者設(shè)計了一個基本的模塊, 即包括決策,運動規(guī)劃和駕駛場景預(yù)測,而把目標(biāo)跟蹤以及他車運動預(yù)測模塊去掉了.
在該框架中,決策輸出的是自車未來T = 4秒內(nèi)的位置,在motion planner進一步處理后生成一個符合動力學(xué)和平滑的軌跡??紤]到靜態(tài)環(huán)境信息可以從高清地圖輕松獲取,我們更加關(guān)注包括車輛和行人在內(nèi)的動態(tài)物體的精確預(yù)測。駕駛場景預(yù)測通過環(huán)境地圖和動態(tài)物體預(yù)測的組合獲得, 如下圖所示

車輛模型
為了合理地表示自車運動并規(guī)劃可行的軌跡, 這里用的是自行車模型.

【補充】自行車模型(Bicycle Model)的建立基于如下假設(shè):
- 不考慮車輛在垂直方向(Z軸方向)的運動,即假設(shè)車輛的運動是一個二維平面上的運動。
 - 假設(shè)車輛左右側(cè)輪胎在任意時刻都擁有相同的轉(zhuǎn)向角度和轉(zhuǎn)速;這樣車輛的左右兩個輪胎的運動可以合并為一個輪胎來描述。
 - 假設(shè)車輛行駛速度變化緩慢,忽略前后軸載荷的轉(zhuǎn)移。
 - 假設(shè)車身和懸架系統(tǒng)都是剛性系統(tǒng)。
 - 假設(shè)車輛的運動和轉(zhuǎn)向是由前輪驅(qū)動(front?wheel?only)的。
 
運動方程如下

分別代表著后輪的中心位置, 朝向角, 車輛速度, 是車輛的加速度及前輪的轉(zhuǎn)角, 是前后輪子間的距離。由于整個系統(tǒng)是可微的, 這有助于軌跡的表示和運運規(guī)劃。

軌跡表示
這里采用的是分段的表示, 每個子段都是由5次多項式來表達,用5次多項式是為了減少抖動. 假設(shè)軌跡總共有 個段組成, 每段的時間間隔相等,記為 , 因此對于第 段軌跡,便可表達為下面的多項式

運動規(guī)劃
可以看到,上面設(shè)計的表達 , 基本上滿足了對于可行性和平滑性的要求, 在我們的設(shè)定下, 我們選擇jerk來表示控制effort【補充: minimum-jerk是軌跡優(yōu)化的經(jīng)典算法】。初始狀態(tài) 和最終狀態(tài)已指定。決策輸出應(yīng)包含在軌跡中??傊?,運動規(guī)劃提出了下面的最小jerk問題.

上面的方程看起來很親切, 是運動規(guī)劃問題的一般形式, 目標(biāo)就是最小化控制effort jerk, 其他幾項是初始條件,最終條件以及滿足的一些約束. 確保每個片段的初始位置都是由pretrained的causal transformer預(yù)測的軌跡點得到. 代表了兩個連續(xù)片段之間的連續(xù)性和光滑性, 代表了最大速度和最大加速度的限制,這里用的是車輛加速度的上界來作為整個系統(tǒng)的約束。
模型訓(xùn)練
訓(xùn)練數(shù)據(jù)
用的數(shù)據(jù)集是由Houston等人于2021年提出的, 包括了超過1000個小時的駕駛數(shù)據(jù),采集跨度4個月,是由20輛車組成的車隊。
從數(shù)據(jù)集中提取車輛姿態(tài)、語義BEV圖像和靜態(tài)環(huán)境地圖圖像。去除持續(xù)時間短于24秒(即240幀,時間間隔Δt = 0.1秒)的駕駛情景。然后將自車的未來目標(biāo)位置作為決策訓(xùn)練的label。將每幀的車輛位置、當(dāng)前BEV圖像、下一楨BEV圖像和下一楨環(huán)境地圖圖像作為訓(xùn)練集。
Pre-training
在預(yù)訓(xùn)練階段,BEVGPT進行了20個epochs的訓(xùn)練。為了提高模型的決策能力和預(yù)測能力,這里使用均方誤差(MSE)作為Loss。

分別代表著接下來4秒的決策輸出和自車位置的GT.
代表著 BEV的預(yù)測和GT, 代表著靜態(tài)地圖, 所以這個系統(tǒng)是要用高精地圖信息的. 是用來平衡各loss的.
超參信息
整個的超參信息如下

在線Fine-tuning
作者使用的是Woven Planet L5Kit進行自動駕駛仿真,以微調(diào)預(yù)訓(xùn)練模型。
BEV輸入模型后,輸出未來時間間隔內(nèi)的軌跡點。運動planner根據(jù)決策輸出生成動態(tài)可行的軌跡, 而后得到BEV的預(yù)測。
回看上面的loss公式, 模型要fine-tuning, 需要地圖的信息, 這里作者開發(fā)了一種經(jīng)驗光柵化器,以幫助模型獲得仿真駕駛場景的靜態(tài)信息。這里的出發(fā)點是一旦知道靜態(tài)全局地圖、自車的初始世界坐標(biāo)和世界坐標(biāo)與光柵坐標(biāo)之間的轉(zhuǎn)換,就可以將所有車道和交叉口輕松映射到光柵化的BEV圖像中。
有了BEV和靜態(tài)圖的信息之后, 接下來就是要得到真值的BEV。
仿真器經(jīng)過Δt時間間隔的仿真后,就可以獲得接下來BEV圖像的真實數(shù)據(jù)。
然后算loss

因為這里仿真器是按照預(yù)測的軌跡進行走的, 所以軌跡那項的loss是0, 這也解釋了為啥前面說pre-training主要是為了學(xué)習(xí)預(yù)測軌跡, 而fine-tuing為了學(xué)習(xí)預(yù)測接下來的BEV。這里模型微調(diào)1w步。
模型評測
用的是以下的指標(biāo)來評估的模型的決策能力:
- 最終位移誤差指標(biāo)(FDE),指的是最終預(yù)測位置與參考位置之間的距離。
 - 平均位移誤差指標(biāo)(ADE),指的是時刻t之前所有預(yù)測位置與參考位置的均方誤差。
 - 最終距離參考軌跡的距離指標(biāo)(FDR),指的是時刻t預(yù)測位置與參考軌跡中最近航點的距離。
 - 平均距離參考軌跡的距離指標(biāo)(ADR),指的是時刻t之前所有預(yù)測位置與其最近位置的均方誤差。
 
這里評估了不同預(yù)測時段的所有指標(biāo)。我們將性能與《Houston et al. 2021》中使用的基于ResNet的方法進行比較。他們的論文中只提供了FDE指標(biāo)的結(jié)果。由于驗證數(shù)據(jù)集中的場景數(shù)量較大,這里隨機選擇了其中的50個場景來測試決策基線。我們計算了這些指標(biāo)的平均值

我們從以下幾個指標(biāo)評估的模型的運動規(guī)劃能力:
1)L2誤差(L2),它指的是在模擬過程中執(zhí)行的軌跡和日志記錄中的真實位置之間的均方誤差。每個場景的模擬持續(xù)時間為t。
2)碰撞率(CR),它指的是模擬持續(xù)時間t內(nèi)發(fā)生碰撞的場景比例。
3)越野率(OR),它指的是越野場景數(shù)與總場景數(shù)的比例。越野指標(biāo)定義為模擬持續(xù)時間t內(nèi)參考軌跡與自車之間的距離大于2米。

從上表上可以看出來, 效果是優(yōu)于UniAD的, 尤其是在越野率和碰撞率上面.
駕駛場景預(yù)測
為了評估長期未來駕駛情景預(yù)測的能力,作者設(shè)計了一些實驗,其中模型需要在T = 6秒內(nèi)生成未來的BEV圖像。在這種情況下,BEVGPT需要通過自回歸方法在60個時間步內(nèi)預(yù)測未來的駕駛情景,其中第一幀的BEV為基礎(chǔ)真實數(shù)據(jù)。我們選擇了四種具有挑戰(zhàn)性的交通情景。如圖所示

第一個是帶有紅綠燈的十字路口,車輛需要理解紅燈的意義,并在十字路口前停下來。第二個是具有高動態(tài)性的十字路口,車輛需要正確通過交叉口。第三個是交通參與者較多的直路,自車應(yīng)該盡可能快地向前行駛。最后一個是道路交叉口,交通信號燈由紅變綠,車輛需要理解這一信息并及時啟動。

原文鏈接:https://mp.weixin.qq.com/s/XF8eL_wt5Ss-yJLRxAQuSQ















 
 
 














 
 
 
 