1. 寫在前面
今天分享一篇自動駕駛領域的論文VADv2(End-to-End Vectorized Autonomous Driving via Probabilistic Planning), 基于矢量表征和概率規劃的E2E架構,2024年2月份華中科技大和地平線合作的一篇文章, 在經典的端到端模型架構上作出了基于概率規劃去輸出規劃軌跡的改進,更好的建模場景的不確定性。
- 論文地址: https://arxiv.org/pdf/2402.13243
- GitHub地址: https://hgao-cv.github.io/VADv2
內容如下
- 1. 寫在前面
- 2. 傳統自動駕駛 VS 端到端自動駕駛
- 3. 前期工作
- 3.1 MapTR
- 3.2 PIP網絡
- 3.3 VAD架構
- 3.3.1 Abstact & Introduction
- 3.3.2 模型架構
- 4. VADv2
- 4.1 論文動機
- 4.2 方法論
- 4.2.1 模型
- 4.2.2 Scene Encoder
- 4.2.3 概率規劃
- 4.2.4 思路來源
- 4.2.5 Planning詞典的構建
- 4.2.6 訓練損失
- 4.2.7 推理階段
- 4.3. 實驗
- 4.3.1 閉環結果
- 4.3.2 開環結果
- 4.3.3 定性定量
- 5. 小總
Ok, let’s go!
2. 傳統自動駕駛 VS 端到端自動駕駛
VAD是一個經典的端到端自動駕駛的模型結構框架, 介紹具體結構之前,先簡單了解下端到端自動駕駛和傳統自動駕駛的區別:
定義 | 特點 | |
---|---|---|
傳統自動駕駛 | 感知、預測、規控解耦,每個模塊獨立優化 | (1) 每個模塊需要單獨的encoder, 存在大量冗余計算,每個模塊難度會下降 (2) 模塊間梯度斷開,僅傳遞指定特征(檢測框), 存在信息丟失和誤差累計,影響模型最終性能 |
端到端自動駕駛 | 統一的感知-預測-規劃網絡,多任務聯合優化 | (1) 共享的Backbone, 大幅降低計算開銷 (2) 規劃任務的梯度可反轉到raw data, 所有上游任務均可以為規劃性能服務 (3) 端到端模型是data-driven, 對人工設計的依賴小,無需人工設計各種復雜的規則邏輯 |
3. 前期工作
VADv2是在VAD的基礎上進行的改進,模型架構沿用了VAD上面的模型架構, 而VAD又采用了他們之間提出的一些技術,所以這個部分,主要是先大概介紹下作者團隊之前的一些工作。這些工作不會詳細整理, 感興趣的可以看對應的論文。
3.1 MapTR
這是個在線預測的地圖方案(端到端在線局部建圖),地圖在自動駕駛領域中的重要性不言而喻, 主要負責給自動駕駛提供自車的位置以及周圍的環境等信息, 在傳統自駕領域里面用的是高精地圖, 精度非常高,但是標注和維護的成本非常搞。這篇論文的工作是提出了一個能實時在線建圖的方案, 用模型的力量取代之前人工的一些工作。
- 輸入: 周視的圖像(7V) + lidiar點云數據
- 輸出: 矢量化的道路結構(人行道, 車道分割線,路邊界)
優點:
- 傳感器 + 模型, cost 低
- 端到端輸出, 自動化
主要有兩篇paper:
-
MapTRv1: https://arxiv.org/abs/2208.14437(地圖的物理層級建模,比如道路分割線)
-
MapTRv2: https://arxiv.org/pdf/2308.05736(地圖的物理層級+邏輯層級(道路中心線)中心線,路口處各種先)
-
代碼:https://github.com/hustvl/MapTR
3.2 PIP網絡
有了在線的建圖方案之后, 作者團隊又進了一步, 把建圖方案和軌跡預測相結合來證明在線建圖方案的有效性,所以基于這個想法作了實驗, 提出了PIP網絡(Perceive, Interact, Predict: Learning Dynamic and Static Clues for End-to-End Motion Prediction: 基于動靜態場景元素交互的端到端軌跡預測)(在線預測地圖+軌跡預測方案)
- paper:https://arxiv.org/pdf/2212.02181
- 輸入:周視的6V圖片,提取出Map Query, Agent Query
- 核心: 地圖信息和Motion信息設計, 作到agent與地圖元素更好的交互
- 充分利用顯式地圖元素和隱式query的矢量化地圖元素特征
- 針對預測地圖(非高精地圖)設計交互策略, 需要規避預測地圖產生的誤差對模型的影響
- Agent-wise normalization: 多目標的軌跡預測,每個目標在場景中位置不同,所以把每個目標周圍的地圖元素放縮到每個目標為中心的坐標系下
- Filtering:
- 過濾掉confindence score低的地圖元素
- 針對距離范圍的過濾,使得每個目標只關注周圍的地圖元素
- 交互:
-
作完檢測, agent query包含目標的特征,這里又引入了一個軌跡模態的query(mode query), 來捕捉不同的駕駛意圖下的軌跡特征, 兩者合并,得到用來作軌跡預測的motion query
-
Mtion之間交互 + 地圖信息交互
-
更新后的Motion query, 用來預測未來的車輛軌跡
-
- 結論: 在線地圖也能有效的提升軌跡預測方法,接近使用高精地圖方案, 證明在線地圖的可行性
多模態的endpoint軌跡預測可視化(6模態的軌跡預測)
- 軌跡預測的中點可視化
- 原始的車輛朝向歸一化,統一朝前
3.3 VAD架構
在前面兩篇工作的基礎上,2023年2月份該團隊提出了一個經典的端到端模型架構VAD: Vectorized Scene Representation for Efficient Autonomous Driving,矢量化的場景表征的planning方案,把自車規劃的工作也加入了進來。(在線建圖 + Motion預測 + 自車規劃)
- paper:https://arxiv.org/pdf/2303.12077(ICCV.2023)
主要創新點:
- 首次提出基于矢量化環境表征的端到端感知+預測+規控的方案
- 提出三項矢量化規劃約束,訓練階段優化planning安全性
- 無需高精地圖和人工設計的后處理步驟
- 基于Transformer架構和統一的Query 表征,擴展性強
3.3.1 Abstact & Introduction
簡介 | 優/缺點 | 典型 | |
---|---|---|---|
已有方案 | 依賴密集的柵格化場景表示,比如OCC、語義Map | 1. 計算量大 2. 缺少instance級別的結構化信息 | UniAD |
新方案 | 將整個駕駛場景矢量化 | 1. instance級別的規劃約束,提升了規劃安全性 2. 運行速度更快 3.矢量化場景表示優于柵格化。因為矢量化的道路信息已經能夠表達道路結構,矢量化的障礙物信息已經能夠用于碰撞檢測,同時計算量更小 4.矢量化結果同時被規劃隱式和顯式的使用,隱性feature會用于規劃模型,同時顯式結果也會給到規劃做規劃約束,碰撞約束、車道線約束、車道方向約束 | VAD |
矢量化的場景信息建模, 矢量化 VS 柵格化(預測方面的兩個研究方向)
定義 | 特點 | |
---|---|---|
柵格化 | 1. 駕駛場景表征為渲染圖的形式 2. 重感知, 相對降低規控模塊的負但,引入了很多后處理測量,導致網絡魯棒性稍差 3. 占有圖網絡 | 1. 像素級別的預測,計算量大(比如與駕駛無關區域,場景路邊等,柵格化表征都需要作預測) 2. 丟失實例級別的特征(比如道路拓撲結構, 在柵格化場景表征中是pixel, 沒有方向信息和連接性) 3. 規控方面用的也比較多,原因是易于和現有的安全后處理策略結合(比如,基于占有圖(occupcy)預測,僅可在可行區域規劃軌跡) |
矢量化 | 1. 場景作抽象,把動靜態場景元素編碼成向量的形式 2. 軌跡預測領域大規模使用 | 1. 極大降低網絡計算量(場景做了抽象, 與場景無關的要素不編碼, 矢量表征 相比與 Pixel, 語義層級更高,信息更豐富) 2. 矢量化表征容易和Transformer結合 3. 更高效的場景表征, 保留實例級別特征(比如車輛的速度信息,道路方向等都可以編碼到向量中) |
3.3.2 模型架構
架構總結
模塊 | 模型結構 | 輸入/輸出 | loss設計 |
---|---|---|---|
BEV Encoder | 參考Bev Former, 采用了ResNet50 | 輸入: 多視角的圖片 輸出: BEV Feature | |
Vectorized Motion Transformer | 輸入:BEV feature 輸出:agent’s attributes (location, class score, orientation, etc.)和每個agent的多條未來軌跡 | Motion Loss: 1. L1 loss: 作為回歸loss預測agent的回歸屬性,比如location,orientation 2. forcal loss預測agent的class 3. l1 loss作為預測軌跡和真實軌跡的距離 4. forcal loss用于多模態之間的分類 Motion會給其他agent預測多條軌跡,有最小FDE的會被作為representative trajectory。Loss計算既考慮了軌跡距離,也考慮了多軌跡的分類loss | |
Vectorized Map Transformer | 輸入:BEV feature 輸出:Map vectors(只考慮3種,車道分隔線、道路邊界和人行橫道) | Map loss (Lmap) 1.Manhattan distance 2. map classification loss | |
Planning Transformer | 輸入:three kinds of driving commands: turn left, turn right and go straight, Ego status,Updated Agent Query Updated Map Query 輸出:自車未來一段時間的預測軌跡,一般6s | 1. imitation learning loss: 預測自車軌跡和真值自車軌跡的loss (Limi) 2. Ego-Agent Collision Constraint: 自車和他車的碰撞Loss (Lcol) 3. Ego-Boundary Overstepping Constraint: 自車軌跡和車道線的loss (Lbd) 4. Ego-Lane Directional Constraint: 自車軌跡和車道行駛方向的loss (Ldir) |
重點細節
- Map Query + Vectorized Map Transformer 是前面的MapTR方案
- Agent Query + Vectorized Motion Transformer 是前面PIP的方案
- 創新點:
- 加了一個Planning Transformer(端到端架構)
- 提取ego query(隨機初始化) ,分別和Motion agent query 與 Map query分別交互,提取駕駛場景中用到的動態 和 靜態的信息, query間隱式特征的交互
- 加 自車的狀態信息 + 導航的信息 預測自車的軌跡信息
- 顯示特征(motion的軌跡 + 地圖的元素道路拓撲) 作約束,提出了3種約束,以loss的形式體現并懲罰,監督模型訓練,使得網絡模型獲取一個駕駛的先驗信息。- Map Query + Vectorized Map Transformer 是前面的MapTR方案
- Ego-Agent碰撞約束 (Ego-Agent Collision Constraint):自車和它車是否碰撞,保證與它車的縱向和橫向的安全距離
- 自我邊界超越約束 (Ego-Boundary Overstepping Constraint): 與道路邊界保持一個安全距離
- 通道方向約束 (Ego-Lane Directional Constraint):預測出來的軌跡要和車道線的方向盡量一致, 車頭偏離車道線方向太多,不合理(角度約束)
- Ego-Agent碰撞約束 (Ego-Agent Collision Constraint):自車和它車是否碰撞,保證與它車的縱向和橫向的安全距離
- 加了一個Planning Transformer(端到端架構)
模型訓練
結果
和其他模型的對比結果:
模型自己的定型定量等實驗
4. VADv2
4.1 論文動機
自動駕駛的決策規劃存在天然不確定性, 主要來自:
- 場景的不確定性(同一個場景,自車可能有多種選擇)
- 人類行為的不確定性(司機的駕駛習慣和行為)
這些隱式的因素很難直接被建模出來(左邊兩張圖)。
判別式建模 VS 概率建模
特點 | 優/缺點 | 典型 | |
---|---|---|---|
判別式建模 | 1. 輸出一條確定性的軌跡, 場景與軌跡之間,建模的是一種確定性關系 2. Loss function追求的與軌跡的l2誤差最小 例子: 同一個場景, 可能司機兩次作出了不同的軌跡,判別式建模,可能會在兩個軌跡間作一個折中 | 確定性建模基于的假設是環境和行為之間有確定的相關性, 但實際上很多場景,人類的行為是多變的 1. 不能很好的處理非凸的可行性空間(決策不只一種)情景, 這時候可能兼顧多種決策,輸出折中結果,導致安全問題 2. 傾向于輸出訓練數據中看到的最多的主導軌跡或者行為 | VADv1及之前的方案 |
概率建模 | 1. 建模場景下不同action的分布, 最后根據場景選擇概率更大的action 2. 根據不同策略,選擇想要的軌跡 | 1. 更加豐富的監督信號:不僅監督正樣本,也監督了planning vocabulary的所有候選 2. 會輸出多種預測結果, 比較靈活,能更好的匹配規則進一步處理 | VADv2 |
4.2 方法論
4.2.1 模型
模型架構
總結
模塊 | 模型結構 | 輸入/輸出 | Loss設計 |
---|---|---|---|
Encoder | 輸入:multi-view image sequence 輸出:一組Scene Tokens map token: the vectorized representation of the map (including lane centerline, lane divider, road boundary, and pedestrian crossing). agent token: other traffic participants’ motion information (including location, orientation, size, speed, and multi-mode future trajectories). traffic element token: the states of traffic elements. In CARLA, we consider two types of traffic signals: traffic light signals and stop signs. image token | Scene Token Loss: Map tokens, agent tokens, and traffic element tokens are supervised with corresponding supervision signals to make sure they explicitly encode corresponding high-level information. | |
Planning Transformer | MLP Transformer | 輸入:Scene Tokens, Ego state, Navi info 輸出:多條軌跡及每個軌跡的概率 軌跡分布詞表:we collect all the planning actions in driving demonstrations and adopt the furthest trajectory sampling to select N representative actions to serve as the planning vocabulary. Each trajectory in V is sampled from driving demonstrations and thus naturally satisfies the kinematic constraints of the ego vehicle, which means that when the trajectory is converted into control signals (steer, throttle, and brake), the control signal values do not exceed the feasible range. By default, N isset to 4096. 根據駕駛演示得來,所以軌跡肯定能夠轉換為有效的控制信號;使用最遠軌跡抽樣法;N取值是4096 駕駛軌跡分布真值:訓練數據中軌跡概率分布 | Distribution Loss: 輸出的軌跡概率分布與訓練數據中的軌跡概率分布的KL散度 Conflict Loss: 與其他agent的軌跡沖突、與車道線的邊界沖突 |
創新點:
- 提出planning vocabulary
- Action Space是所有可行的空間, 離散化成詞典, vocabulary的每個action對應一條軌跡
- 根據數據集中的分布,來判斷當前場景下, 可行action的概率,讓模型建模action的分布
前向傳播過程:
給定某個特定的場景,模型要學習到和行為之間的相關性, 預測軌跡的一個分布,從而決定有哪些行為是可行的
4.2.2 Scene Encoder
Image本身是稀疏, 信息是低層級的, 所以通過各種Encoder對場景特征進行編碼,獲取instance-level的token, 獲得高級別的特征,主要有4中tokens(見圖):
- Map Tokens: 地圖表征信息, 道路中心線,分道線,道路邊界等路網拓撲
- Agent Tokens: 其他交通參與者(位置,方向,大小,速度,狀態,行為,軌跡等)
- Image Tokens: 多視圖,場景信息
- Traffic Element Tokens: 交通元素(信號燈, 標志牌)
其他: 導航信息和自車的一些狀態特幀,也通過NLP編碼成Embedding。
4.2.3 概率規劃
對于planning中的不確定性,采用了一種概率規劃。
Planning action的空間是高維連續的,直接建模不可行,所以基于收集的大量軌跡數據,對planning的動作空間離散化。具體做法:
-
在駕駛場景的數據集中,收集了所有的planning actions(軌跡)
-
采樣N個有代表性行為軌跡, 構成了一個planning詞典 V = a i N V = {a^i}^N V=aiN(默認 N = 4096 N=4096 N=4096)
-
軌跡點(N,2)需要編碼到高維空間,因為后面要和場景表征token進行交互
- 借鑒Ne