首個大一統(tǒng)預訓練模型!BEVGPT:集預測、決策、運動規(guī)劃于一體!
本文經(jīng)自動駕駛之心公眾號授權轉載,轉載請聯(lián)系出處。
筆者的個人理解
BEVGPT 是第一個生成式, 集預測、決策、運動規(guī)劃于一體的自監(jiān)督 pre-trained的大模型。輸入BEV images, 輸出自車軌跡, 并且能夠輸出對駕駛場景的預測, 該方案訓練時需要高精地圖.
之所以叫GPT,一方面是因為利用了GPT式的自回歸訓練方法, 這里自回歸的輸入是歷史的軌跡及BEV, target 是下一個BEV和軌跡.
另一方面,能夠做到生成, 即給定初始楨的BEV, 算法能夠自己生成接下來的多楨BEV場景.
該方法并不是一個從傳感器輸入的端到端方法, 可以看成是基于感知的結果,將后面的模塊用一個模型給模型化了, 在實際中也有重要的應用價值. 比如能夠基于很多駕駛回傳數(shù)據(jù)的感知結果和軌跡真值來訓練駕駛專家模型.
問題&思考
- causal transformer訓練那塊兒感覺不是很詳細, 沒有具體說BEV圖像和BEV軌跡在進入transformer之前是如何編碼或token化的?
- BEV預測Head結構是什么樣?
- trajectory head 結構是什么樣?
- 訓練時需要高精地圖, 如何去掉高精度地圖, 高精地圖在這里起到的作用是和動態(tài)障礙物信息一起組成了當前BEV場景;
- 如果不用高精地圖, 就只用障礙物的信息來訓練的話, 即BEV Image里面只有障礙物的信息, 效果是怎樣的? (人在沒有車道線和路沿的鄉(xiāng)間小路上仍然會開車), 個人認為應該做這個實驗.
- 自動駕駛場景, 可以看作是連續(xù)序列, 使用GPT這種語言模型可能天然具有一定的優(yōu)勢, 但是對于輸入, 目前還沒有做到像語言那樣簡單又富含語義,這可能是接下來思考的重點. 一個可能的嘗試是這里的BEV image,如果換成了BEV feature(比如用BEVformer或者LSS得到的BEV feature), 效果是怎樣的?
BEVGPT到底做了什么?
預測,決策,運動規(guī)劃在自動駕駛的模塊設計中起著至關重要的作用。在很多工作中,這幾個模塊是通過共享backbone 用不同的head,以multi-task的方式進行學習。
作者認為這些模塊應該集成到一個綜合的框架中.盡管已經(jīng)有一些工作在這么做,但是已有的方法中,有一些問題,比如復雜的輸入表示,以及網(wǎng)絡框架上的冗余設計,更重要的是,已有的工作不能夠對駕駛場景做長時間的預測。
為了處理這些問題,作者重新思考每個模塊的必要性,設計了一個盡可能性小的框架, 叫BEVGPT, 它是一種自監(jiān)督pre-trained大模型, 并且集駕駛場景的預測,決策,運動規(guī)劃與一體。
BEVGPT輸入BEV的images, 根據(jù)周圍的交通場景做決策。為了確保駕駛軌跡的可行性和光滑性, 作者設計了一套基于優(yōu)化的運動規(guī)劃方法。
BEVGPT在多個數(shù)據(jù)集上體現(xiàn)出了有效性和魯棒性。并且BEVGPT能夠精確地產(chǎn)生長時間的BEV images,這一點通過駕駛場景的預測得已體現(xiàn)。
BEVGPT簡介
自動駕駛車輛是集成了預測、決策和規(guī)劃技術的智能系統(tǒng)。一個被廣泛接受的解決方案是將這些任務劃分為不同的模塊,并為每個模塊設計并發(fā)展針對具體任務的模型。
在這個方案中,首先基于環(huán)境信息預測周圍交通參與者的未來軌跡。然后利用預測的交通參與者行為以及地圖信息來進行駕駛決策和規(guī)劃自車的未來軌跡。然而,采用這種模塊化的方法,系統(tǒng)容易受到不同模塊之間累積誤差的影響。
另一種替代范式是多任務學習,其中共享backbone進行特征提取, 但各自有獨立任務heads。雖然這種方法減小了模型的大小和復雜性,并實現(xiàn)了更快的計算速度和較少的計算開銷,但由于與不相關任務共享信息可能會損害模型性能,因此可能會遭受負面影響。
相反,作者認為自動駕駛的各個模塊應該被整合到一個綜合框架中。最近的研究表明,俯視圖(BEV)視角對自動駕駛系統(tǒng)具有巨大潛力。BEV為以視覺為中心的感知提供了鄰近交通情況的準確表示。然而,現(xiàn)有的BEV生成方法需要復雜的輸入表示。此外,這些方法缺乏長期建模的能力,使得它們對未來BEV的預測不可靠。
作者提出了一個名為BEVGPT的綜合框架,它將預測、決策和運動規(guī)劃整合到一個單一的具有BEV圖像作為輸入的生成式預訓練GPT中。
如圖所示,
整個框架采用了一個兩階段的訓練過程。首先,使用大量的自動駕駛數(shù)據(jù)來訓練一個casual transformer。隨后,通過在線學習使用一個逼真的模擬器對模型進行微調(diào)。預訓練階段的目標是學習駕駛場景的預測和決策,即自動駕駛任務中的BEV生成和自車的預測。
該模型具有較高的容量,可以預測未來4秒的軌跡,并預測未來6秒內(nèi)的駕駛場景。
BEVGPT的方法設計
框架設計
作者從人類駕駛員的角度重新評估每個模塊的必要性,以設計自動駕駛系統(tǒng)框架。
- 人類駕駛員對環(huán)境地圖有先驗的知識, 比如在使用導航軟件時,每條道路的結構和路口位置都比較明顯.
- 人類駕駛員并不會顯示地追蹤周圍的其他車輛,并預測它們的未來軌跡。相反,他們更關注的是預測的自車軌跡是否會被其他車輛所占據(jù)。然后,他們會做出相應地駕駛決策。
基于上述思考, 作者設計了一個基本的模塊, 即包括決策,運動規(guī)劃和駕駛場景預測,而把目標跟蹤以及他車運動預測模塊去掉了.
在該框架中,決策輸出的是自車未來T = 4秒內(nèi)的位置,在motion planner進一步處理后生成一個符合動力學和平滑的軌跡??紤]到靜態(tài)環(huán)境信息可以從高清地圖輕松獲取,我們更加關注包括車輛和行人在內(nèi)的動態(tài)物體的精確預測。駕駛場景預測通過環(huán)境地圖和動態(tài)物體預測的組合獲得, 如下圖所示
車輛模型
為了合理地表示自車運動并規(guī)劃可行的軌跡, 這里用的是自行車模型.
【補充】自行車模型(Bicycle Model)的建立基于如下假設:
- 不考慮車輛在垂直方向(Z軸方向)的運動,即假設車輛的運動是一個二維平面上的運動。
- 假設車輛左右側輪胎在任意時刻都擁有相同的轉向角度和轉速;這樣車輛的左右兩個輪胎的運動可以合并為一個輪胎來描述。
- 假設車輛行駛速度變化緩慢,忽略前后軸載荷的轉移。
- 假設車身和懸架系統(tǒng)都是剛性系統(tǒng)。
- 假設車輛的運動和轉向是由前輪驅動(front?wheel?only)的。
運動方程如下
分別代表著后輪的中心位置, 朝向角, 車輛速度, 是車輛的加速度及前輪的轉角, 是前后輪子間的距離。由于整個系統(tǒng)是可微的, 這有助于軌跡的表示和運運規(guī)劃。
軌跡表示
這里采用的是分段的表示, 每個子段都是由5次多項式來表達,用5次多項式是為了減少抖動. 假設軌跡總共有 個段組成, 每段的時間間隔相等,記為 , 因此對于第 段軌跡,便可表達為下面的多項式
運動規(guī)劃
可以看到,上面設計的表達 , 基本上滿足了對于可行性和平滑性的要求, 在我們的設定下, 我們選擇jerk來表示控制effort【補充: minimum-jerk是軌跡優(yōu)化的經(jīng)典算法】。初始狀態(tài) 和最終狀態(tài)已指定。決策輸出應包含在軌跡中??傊?,運動規(guī)劃提出了下面的最小jerk問題.
上面的方程看起來很親切, 是運動規(guī)劃問題的一般形式, 目標就是最小化控制effort jerk, 其他幾項是初始條件,最終條件以及滿足的一些約束. 確保每個片段的初始位置都是由pretrained的causal transformer預測的軌跡點得到. 代表了兩個連續(xù)片段之間的連續(xù)性和光滑性, 代表了最大速度和最大加速度的限制,這里用的是車輛加速度的上界來作為整個系統(tǒng)的約束。
模型訓練
訓練數(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秒)的駕駛情景。然后將自車的未來目標位置作為決策訓練的label。將每幀的車輛位置、當前BEV圖像、下一楨BEV圖像和下一楨環(huán)境地圖圖像作為訓練集。
Pre-training
在預訓練階段,BEVGPT進行了20個epochs的訓練。為了提高模型的決策能力和預測能力,這里使用均方誤差(MSE)作為Loss。
分別代表著接下來4秒的決策輸出和自車位置的GT.
代表著 BEV的預測和GT, 代表著靜態(tài)地圖, 所以這個系統(tǒng)是要用高精地圖信息的. 是用來平衡各loss的.
超參信息
整個的超參信息如下
在線Fine-tuning
作者使用的是Woven Planet L5Kit進行自動駕駛仿真,以微調(diào)預訓練模型。
BEV輸入模型后,輸出未來時間間隔內(nèi)的軌跡點。運動planner根據(jù)決策輸出生成動態(tài)可行的軌跡, 而后得到BEV的預測。
回看上面的loss公式, 模型要fine-tuning, 需要地圖的信息, 這里作者開發(fā)了一種經(jīng)驗光柵化器,以幫助模型獲得仿真駕駛場景的靜態(tài)信息。這里的出發(fā)點是一旦知道靜態(tài)全局地圖、自車的初始世界坐標和世界坐標與光柵坐標之間的轉換,就可以將所有車道和交叉口輕松映射到光柵化的BEV圖像中。
有了BEV和靜態(tài)圖的信息之后, 接下來就是要得到真值的BEV。
仿真器經(jīng)過Δt時間間隔的仿真后,就可以獲得接下來BEV圖像的真實數(shù)據(jù)。
然后算loss
因為這里仿真器是按照預測的軌跡進行走的, 所以軌跡那項的loss是0, 這也解釋了為啥前面說pre-training主要是為了學習預測軌跡, 而fine-tuing為了學習預測接下來的BEV。這里模型微調(diào)1w步。
模型評測
用的是以下的指標來評估的模型的決策能力:
- 最終位移誤差指標(FDE),指的是最終預測位置與參考位置之間的距離。
- 平均位移誤差指標(ADE),指的是時刻t之前所有預測位置與參考位置的均方誤差。
- 最終距離參考軌跡的距離指標(FDR),指的是時刻t預測位置與參考軌跡中最近航點的距離。
- 平均距離參考軌跡的距離指標(ADR),指的是時刻t之前所有預測位置與其最近位置的均方誤差。
這里評估了不同預測時段的所有指標。我們將性能與《Houston et al. 2021》中使用的基于ResNet的方法進行比較。他們的論文中只提供了FDE指標的結果。由于驗證數(shù)據(jù)集中的場景數(shù)量較大,這里隨機選擇了其中的50個場景來測試決策基線。我們計算了這些指標的平均值
我們從以下幾個指標評估的模型的運動規(guī)劃能力:
1)L2誤差(L2),它指的是在模擬過程中執(zhí)行的軌跡和日志記錄中的真實位置之間的均方誤差。每個場景的模擬持續(xù)時間為t。
2)碰撞率(CR),它指的是模擬持續(xù)時間t內(nèi)發(fā)生碰撞的場景比例。
3)越野率(OR),它指的是越野場景數(shù)與總場景數(shù)的比例。越野指標定義為模擬持續(xù)時間t內(nèi)參考軌跡與自車之間的距離大于2米。
從上表上可以看出來, 效果是優(yōu)于UniAD的, 尤其是在越野率和碰撞率上面.
駕駛場景預測
為了評估長期未來駕駛情景預測的能力,作者設計了一些實驗,其中模型需要在T = 6秒內(nèi)生成未來的BEV圖像。在這種情況下,BEVGPT需要通過自回歸方法在60個時間步內(nèi)預測未來的駕駛情景,其中第一幀的BEV為基礎真實數(shù)據(jù)。我們選擇了四種具有挑戰(zhàn)性的交通情景。如圖所示
第一個是帶有紅綠燈的十字路口,車輛需要理解紅燈的意義,并在十字路口前停下來。第二個是具有高動態(tài)性的十字路口,車輛需要正確通過交叉口。第三個是交通參與者較多的直路,自車應該盡可能快地向前行駛。最后一個是道路交叉口,交通信號燈由紅變綠,車輛需要理解這一信息并及時啟動。
原文鏈接:https://mp.weixin.qq.com/s/XF8eL_wt5Ss-yJLRxAQuSQ