一段式端到端自動駕駛:VAD:Vectorized Scene Representation for Efficient Autonomous Driving

論文地址:https://github.com/hustvl/VAD

代碼地址:https://arxiv.org/pdf/2303.12077

1. 摘要

自動駕駛需要對周圍環境進行全面理解,以實現可靠的軌跡規劃。以往的方法依賴于密集的柵格化場景表示(如:占據圖、語義地圖)來進行規劃,這種方式計算量大,且缺乏實例級的結構信息。
本文提出了 VAD(Vectorized Autonomous Driving),一種端到端的向量化自動駕駛范式,將駕駛場景建模為完全向量化的表示方式。這一范式具有兩大優勢:
一方面,VAD 利用向量化的動態目標運動信息與地圖元素作為顯式的實例級規劃約束,從而有效提升了規劃的安全性;
另一方面,VAD 摒棄了計算密集的柵格表示和手工設計的后處理步驟,因此比以往端到端方法運行速度更快。
在 nuScenes 數據集上,VAD 實現了當前最優的端到端規劃性能,在多個指標上大幅超越現有最優方法。基礎模型 VAD-Base 將平均碰撞率降低了 29.0%,運行速度提升了 2.5 倍;而輕量版本 VAD-Tiny 在保持可比規劃性能的同時,實現了高達 9.3 倍的推理速度提升。

2. 方法

VAD 的整體框架如圖 2所示。輸入為多幀、多視角的圖像,輸出為自車未來的規劃軌跡。VAD 的框架分為四個階段:

Backbone:提取圖像特征并投影為 BEV(Bird’s-Eye View)特征;

Vectorized Scene Learning:構建向量化的地圖與運動表示;

Planning(推理階段):通過 ego query 與地圖/目標交互,生成未來軌跡;

Planning(訓練階段):引入三種向量化約束,對軌跡進行訓練正則化。

2.1?向量化場景學習

VAD使用 ResNet50 提取圖像特征,經過多層卷積神經網絡提取圖像的低級和高級特征。使用 BEV Encoder 將圖像特征通過空間映射轉換為 Bird’s Eye View(BEV)特征圖,并使用 Transformer 對其進行進一步的處理,學習圖像的全局語義和空間關系。

向量化地圖

相比柵格化語義地圖,向量化表示能保留更細致的結構信息。論文使用一組 Map Query?Q_m,從 BEV 特征中提取地圖元素,如:車道線(lane divider)、道路邊界(road boundary)以及人行道(pedestrian crossing),每個地圖元素表示為 一組點(polyline),并附帶類別信息。Q_m是可學習的embedding,類似 DETR 中的 Object Query,維度為100xC(例如100個地圖目標),Vecorized Map Transformer使用的是典型的Transformer Decoder結構,先進行self-attention,然后在進行cross-attention,最終輸出向量維度為MxD,然后經過地圖head可以解析出來就是100x20x2,也就是100個目標,每個目標數據點個數為20個,二維坐標。

向量化交通參與者運動預測

為了高效預測交通參與者(如其他車輛、行人等)的未來軌跡,VAD 使用了一種基于向量化表示的方法來描述它們的運動。這一部分的目標是通過 Agent Queries(交通參與者查詢)來學習每個交通參與者的運動特征,并通過 Deformable Attention 機制與環境的 BEV(Bird's-Eye View)特征進行交互,從而預測它們的未來行為。

Agent Queries 是一組表示交通參與者(例如其他車輛、行人等)運動特征的查詢向量,每個 Agent Query 用來捕捉交通參與者的狀態信息,如位置、速度、加速度、方向等。論文采用一組可學習的向量Q_a,首先進行self-attention,獲得agent-agent之間的交互,然后query與BEV特征和更新的map queries進行交叉注意力,其中與BEV特征進行交叉注意力采用deformable attention的方法,最終獲得輸出的特征向量AxD。經過運動預測head輸出維度為300x6x12,300個目標,每個目標6個模態,每個模態6幀,每幀2個坐標點。

交互式規劃

在預測模塊之后,VAD 使用一個規劃模塊來為自車(ego vehicle)規劃一條可行的軌跡。與預測模塊中用于運動建模的 Motion Queries 相似,引入了一個專用于 ego vehicle 的查詢向量,稱為 Ego Query,它被輸入到一個新的 Transformer 解碼器中,用于軌跡規劃。為了捕捉自車與其他交通參與者之間的相互作用(agent-agent interaction),將預測模塊中輸出的 Motion Queries 作為上下文(context)輸入到規劃模塊的解碼器中。該機制允許 ego vehicle 考慮其他交通參與者的未來意圖,并進行反應。論文采用一組可學習的向量Q_{ego},維度為N_{q}\times D,其中N_{q}表示時間步數,如取6。Q_{ego}先進行self-attention,然后ego-agent和ego-map分別進行cross-attention,輸出維度為N_{q}\times D。經過軌跡規劃head,輸出為3*6*2,3個模態,每個莫模態6個時間步,每步2個坐標點,其中3個模態論文中設定為右轉、左轉和直行。

3. 總結

論文探索了一種完全向量化的駕駛場景表示方法,以及如何有效地將這種向量化場景信息融合到系統中以提升自動駕駛的規劃性能。VAD 同時達成了高性能與高效率的結合,使用 NVIDIA GeForce RTX 3090 GPU,VAD-Tiny推理時間在50-60ms之間。此外,VAD 支持對其他動態交通參與者的多模態運動軌跡預測。與此同時,如何將更多的交通信息(例如:車道圖、交通標志、信號燈、限速信息等)融入此類自動駕駛系統,也是一個具有發展前景的研究方向。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902267.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902267.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902267.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenCV訓練題

一、創建一個 PyQt 應用程序,該應用程序能夠: 使用 OpenCV 加載一張圖像。在 PyQt 的窗口中顯示這張圖像。提供四個按鈕(QPushButton): 一個用于將圖像轉換為灰度圖一個用于將圖像恢復為原始彩色圖一個用于將圖像進行…

opencv函數展示4

一、形態學操作函數 1.基本形態學操作 (1)cv2.getStructuringElement() (2)cv2.erode() (3)cv2.dilate() 2.高級形態學操作 (1)cv2.morphologyEx() 二、直方圖處理函數 1.直方圖…

iPhone 13P 換超容電池,一年實記的“電池循環次數-容量“柱狀圖

繼上一篇 iPhone 13P 更換"移植電芯"和"超容電池"🔋體驗,詳細記錄了如何更換這兩種電池,以及各自的優略勢對比。 一晃一年過去,時間真快,這次分享下記錄了使用超容電池的 “循環次數 - 容量(mAh)…

基于 pnpm + Monorepo + Turbo + 無界微前端 + Vite 的企業級前端工程實踐

基于 pnpm Monorepo Turbo 無界微前端 Vite 的企業級前端工程實踐 一、技術演進:為什么引入 Vite? 在微前端與 Monorepo 架構落地后,構建性能成為新的優化重點: Webpack 構建瓶頸:復雜配置導致開發啟動慢&#…

(五)機器學習---決策樹和隨機森林

在分類問題中還有一個常用算法:就是決策樹。本文將會對決策樹和隨機森林進行介紹。 目錄 一.決策樹的基本原理 (1)決策樹 (2)決策樹的構建過程 (3)決策樹特征選擇 (4&#xff0…

Vue3使用AntvG6寫拓撲圖,可添加修改刪除節點和邊

npm安裝antv/g6 npm install antv/g6 --save 上代碼 <template><div id"tpt1" ref"container" style"width: 100%;height: 100%;"></div> </template><script setup>import { Renderer as SVGRenderer } from …

Arduino編譯和燒錄STM32——基于J-link SWD模式

一、安裝Stm32 Arduino支持 在arduino中添加stm32的開發板地址&#xff1a;https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json 安裝stm32開發板支持 二、安裝STM32CubeProgrammer 從stm32網站中安裝&#xff1a;https://ww…

智慧城市氣象中臺架構:多源天氣API網關聚合方案

在開發與天氣相關的應用時&#xff0c;獲取準確的天氣信息是一個關鍵需求。萬維易源提供的“天氣預報查詢”API為開發者提供了一個高效、便捷的工具&#xff0c;可以通過簡單的接口調用查詢全國范圍內的天氣信息。本文將詳細介紹如何使用該API&#xff0c;以及其核心功能和調用…

Vue 組件化開發

引言 在當今的 Web 開發領域&#xff0c;構建一個功能豐富且用戶體驗良好的博客是許多開發者的目標。Vue.js 作為一款輕量級且高效的 JavaScript 框架&#xff0c;其組件化開發的特性為我們提供了一種優雅的解決方案。通過將博客拆分成多個獨立的組件&#xff0c;我們可以提高代…

Deno 統一 Node 和 npm,既是 JS 運行時,又是包管理器

Deno 是一個現代的、一體化的、零配置的 JavaScript 運行時、工具鏈&#xff0c;專為 JavaScript 和 TypeScript 開發設計。目前已有數十萬開發者在使用 Deno&#xff0c;其代碼倉庫是 GitHub 上 star 數第二高的 Rust 項目。 Stars 數102620Forks 數5553 主要特點 內置安全性…

應用篇02-鏡頭標定(上)

本節主要介紹相機的標定方法&#xff0c;包括其內、外參數的求解&#xff0c;以及如何使用HALCON標定助手實現標定。 計算機視覺——相機標定(Camera Calibration)_攝像機標定-CSDN博客 1. 原理 本節介紹與相機標定相關的理論知識&#xff0c;不一定全&#xff0c;可以參考相…

PG CTE 遞歸 SQL 翻譯為 達夢版本

文章目錄 PG SQLDM SQL總結 PG SQL with recursive result as (select res_id,phy_res_code,res_name from tbl_res where parent_res_id (select res_id from tbl_res where phy_res_code org96000#20211203155858) and res_type_id 1 union all select t1.res_id, t1.p…

C# Where 泛型約束

在C#中&#xff0c;Where關鍵字主要有兩種用途 1、在泛型約束中限制類型參數 2、在LINQ查詢中篩選數據 本文主要介紹where關鍵字在在泛型約束中的使用 泛型定義中的 where 子句指定對用作泛型類型、方法、委托或本地函數中類型參數的參數類型的約束。通過使用 where 關鍵字和…

《MySQL:MySQL表的約束-主鍵/復合主鍵/唯一鍵/外鍵》

表的約束&#xff1a;表中一定要有各種約束&#xff0c;通過約束&#xff0c;讓未來插入數據庫表中的數據是符合預期的。約束本質是通過技術手段&#xff0c;倒逼程序員插入正確的數據。即&#xff0c;站在mysql的視角&#xff0c;凡是插入進來的數據&#xff0c;都是符合數據約…

Qt 創建QWidget的界面庫(DLL)

【1】新建一個qt庫項目 【2】在項目目錄圖標上右擊&#xff0c;選擇Add New... 【3】選擇模版&#xff1a;Qt->Qt設計師界面類&#xff0c;選擇Widget&#xff0c;填寫界面類的名稱、.h .cpp .ui名稱 【4】創建C調用接口&#xff08;默認是創建C調用接口&#xff09; #ifnd…

汽車免拆診斷案例 | 2011款雪鐵龍世嘉車刮水器偶爾自動工作

故障現象 一輛2011款雪鐵龍世嘉車&#xff0c;搭載1.6 L 發動機&#xff0c;累計行駛里程約為19.8萬km。車主反映&#xff0c;該車刮水器偶爾會自動工作&#xff0c;且前照燈偶爾會自動點亮。 故障診斷 接車后試車發現&#xff0c;除了上述故障現象以外&#xff0c;當用遙控器…

【Linux】NAT、代理服務、內網穿透

NAT、代理服務、內網穿透 一. NAT1. NAT 技術2. NAT IP 轉換過程3. NAPT 技術4. NAT 技術的缺陷 二. 代理服務器1. 正向代理2. 反向代理3. NAT 和代理服務器 內網穿透內網打洞 一. NAT NAT&#xff08;Network Address Translation&#xff0c;網絡地址轉換&#xff09;技術&a…

MobaXterm連接Ubuntu(SSH)

1.查看Ubuntu ip 打開終端,使用指令 ifconfig 由圖可知ip地址 2.MobaXterm進行SSH連接 點擊session,然后點擊ssh,最后輸入ubuntu IP地址以及用戶名

Spring Boot系列之使用Arthas Tunnel Server 進行遠程調試實踐

Spring Boot系列之使用Arthas Tunnel Server 進行遠程調試實踐 前言 在開發和運維 Java 應用的過程中&#xff0c;遠程診斷和調試是一個不可或缺的需求。尤其是當生產環境出現問題時&#xff0c;能夠快速定位并解決這些問題至關重要。Arthas 是阿里巴巴開源的一款強大的 Java…

圖像預處理-添加水印

一.ROI切割 類似裁剪圖片&#xff0c;但是原理是基于Numpy數組的切片操作(ROI數組切片是會修改原圖數據的)&#xff0c;也就是說這個“裁剪”不是為了保存“裁剪”部分&#xff0c;而是為了方便修改等處理。 import cv2 as cv import numpy as npimg cv.imread(../images/dem…