📄 论文信息

  • 标题VAD: Vectorized Scene Representation for Efficient Autonomous Driving
  • 作者机构华中科技大学(HUST) × 地平线机器人(Horizon Robotics)(Jiang, Chen, Xu, Liao, Chen, Zhou, Zhang, Liu, Huang, Wang)
  • arXiv2303.12077
  • 收录ICCV 2023
  • 代码github.com/hustvl/VAD
  • 一句话总结:把驾驶场景全部向量化(地图元素、agent 运动都变成矢量),抛弃稠密栅格表示,在 nuScenes 上做到性能更强、速度快 2.5–9.3 倍

栅格化 vs 向量化表征:传统方法用稠密栅格(语义图/占用图/代价图)做规划,VAD 全程用向量化场景表示


🤔 要解决什么问题?

UniAD(CVPR 2023 最佳论文)确立了"以规划为导向的端到端“范式,把感知、预测、规划统一进一个网络,证明了端到端联合优化的潜力。但 UniAD 仍然有一个大包袱:稠密栅格化表征(rasterized representation)

无论是语义地图、占用图(occupancy)、光流图还是代价图(cost map),本质都是一张张密集的 BEV 网格图。这种表示在 UniAD 里被用于规划时的代价计算和碰撞检查。它有两个根本问题:

痛点具体表现后果
计算昂贵大量卷积处理密集像素级栅格,分辨率越高越慢推理慢,难上车端实时系统
丢失实例结构栅格只有像素,没有"这是一辆车/一条车道"的实例概念约束不住规划,安全约束只能粗粒度
依赖后处理还要手设计规则把栅格转成决策、做轨迹筛选鲁棒性、泛化性差,规则难覆盖长尾

VAD 的灵魂拷问:自动驾驶真的需要把场景画成一张张密集的栅格图吗?人类开车看的是"车道线、边界、周围的车辆”,这些天然就是"矢量"概念——为什么不用向量来表示场景? 一条车道线用几个有序点就能精确描述,何必用一张几百×几百的栅格图去近似?


💡 核心思想:全向量化场景表征

VAD 的主张非常鲜明:

把整个驾驶场景建模成完全向量化的表示——地图是矢量,agent 运动也是矢量——彻底抛弃密集栅格。

向量化表征的两大优势:

优势说明
天然的实例级约束矢量地图(车道线/边界)告诉车"往哪开、边界在哪";agent 运动矢量告诉车"别撞谁"——都是精确的实例级信息
计算高效向量数量远少于栅格像素,且省掉了手工后处理,推理飞快

VAD 用两套机制榨取向量化信息的价值:隐式通过 query 交互学特征(让自车 query 主动"询问"地图和 agent),显式通过三个向量化规划约束(把矢量直接变成可微的安全 loss)。这"一隐一显"是 VAD 设计的精髓。

VAD 整体架构:Backbone → 向量化场景学习 → 规划交互,用 agent/map queries 编码场景,ego query 交互输出轨迹


⚙️ 方法细节

整个 VAD 流水线分四阶段:骨干网络提取特征、向量化场景学习、规划交互、规划约束。

🗺️ 向量化场景学习

VAD 用三类 query 从 BEV 特征里"抽"出实例级信息,借鉴 BEVFormer + MapTR:

Query学什么输出
BEV queryBEV 编码多视图特征压成 BEV 特征图
Agent query每个交通参与者agent 运动矢量(未来轨迹)
Map query地图元素(车道、边界、分隔带)地图矢量(有序点集)

地图矢量包括车道向量(提供方向、交通流信息,帮助缩小轨迹搜索空间)和边界向量(提供可行驶边界,防止冲出路面);agent 运动矢量则给出每个动态参与者的未来轨迹,用于碰撞约束。

这里的关键洞察是:地图和 agent 的输出从始至终都是向量(有序点集/轨迹),而不是栅格图——这就从源头避免了"栅格化"的开销。

🤝 规划:通过 query 交互

VAD 的规划不靠代价图、不靠规则搜索,而是用一个 ego query(自车 query) 通过注意力机制去和 map query、agent query 交互,把场景信息汇聚到 ego query 里。再结合自车状态特征(速度、加速度等)和高层驾驶指令(左转/右转/直行),由 Planning Head 直接回归出未来轨迹。

这种"query 交互"思路很优雅:规划不再是"在代价图上找路",而是"自车向周围元素发问,综合答案做决策"——和 Transformer 的注意力机制天然契合。这也意味着规划模块可以直接接收特征级信息,而不是上游丢掉细节的结构化结果,避免了 UniAD 里提到的"信息丢失"问题。

🔒 三个向量化规划约束(VAD 的精髓)

这是 VAD 最有创意、也是性能提升最大的部分。仅靠轨迹回归(L2)监督远远不够安全——回归只会让轨迹"像真值",但不会主动避让。VAD 在训练阶段额外加三个实例级约束,直接用矢量信息把轨迹"管"住:

约束作用用到的矢量
ego-agent 碰撞约束横向/纵向都和动态 agent 保持安全距离agent 运动矢量
ego-boundary 越界约束把轨迹推离道路边界,防止冲出路面地图边界矢量
ego-lane 方向约束用车道方向正则化自车未来朝向地图车道矢量

这三个约束都是可微的,可以无缝接入端到端训练,几乎不增加推理开销——因为矢量数量少,约束计算极其便宜(相比稠密代价图的逐像素计算)。消融实验证明三者缺一不可,去掉任何一个碰撞率都显著上升。

🏋️ 端到端训练

整个 VAD 完全可微,一次性端到端训练,无需分阶段。所有 loss(感知检测 + 在线建图 + agent 运动预测 + 三个规划约束 + 轨迹回归)联合优化,梯度从规划一路传回骨干网络。这种"规划目标反向驱动所有任务"的思想直接继承自 UniAD。


🔬 架构细节与消融洞察

骨干网络与 BEV 编码

VAD 的前端采用标准的图像骨干 + BEV 编码器组合:多帧多视图图像先过图像骨干(如 ResNet)提特征,再用一组 BEV query 借助空间/时间注意力(参考 BEVFormer)把多视图特征压成统一的 BEV 特征图。值得注意的是,VAD 的向量化感知直接从 BEV 特征 query 出矢量结果,而不需要像 HDMapNet 那样先生成栅格语义图再后处理成矢量——这就从源头省掉了栅格化的开销。

Map / Agent Query 的设计

地图 query 的设计借鉴 MapTR,识别地图实例点的排列不变性——一条车道线的若干点无论以什么顺序输出,都代表同一条线。这使得模型可以并行预测所有地图元素,而不必像 VectorMapNet 那样自回归逐个生成,效率更高。Agent query 则参考 DETR 系列,每个 query 负责一个潜在的交通参与者,输出其类别、位置和未来运动矢量。

消融实验的关键发现

论文的消融研究揭示了几个有价值的现象:(1) 三个向量化约束中,ego-agent 碰撞约束对碰撞率影响最大,去掉它碰撞率几乎翻倍;(2) ego-lane 方向约束对轨迹合理性贡献明显,没有它轨迹容易出现不合理朝向;(3) 向量化地图和向量化 agent 各自都贡献正向收益,二者结合效果最佳。这些发现为后续工作的安全约束设计提供了清晰的优先级参考——先保碰撞安全,再管方向,最后抠边界。

从 VAD 到 VADv2 的演进线索

VAD 的单模态回归局限,直接催生了后续的 VADv2——后者引入大规模轨迹词表,把"回归轨迹"转化为"从词表中选轨迹 + 微调"的分类-回归混合问题,实现多模态输出。可以看出 VAD 系列沿着"向量化"主线持续演进:第一代(本文)确立向量化范式,第二代引入多模态词表。这条线索与 SparseDrive、GoalFlow 的"目标点/轨迹词表"思路殊途同归,共同指向"稀疏 + 多模态"这个端到端规划的成熟形态。


📊 实验结果:性能与效率双赢

VAD 在 nuScenes 上同时拿下最强性能最高效率,对比 UniAD:

VAD-Base(标准版)

指标UniADVAD-Base提升
平均位移误差1.03m0.72m30.1%
平均碰撞率0.31%0.22%29.0%
推理速度1.8 FPS4.5 FPS2.5× 加速

VAD-Tiny(轻量版)

指标UniADVAD-Tiny说明
推理速度1.8 FPS16.8 FPS9.3× 加速
平均位移误差1.03m0.78m性能仍可比
平均碰撞率0.31%0.38%略有牺牲

关键结论

  • VAD-Base 在性能更强的同时还快 2.5 倍——打破了"端到端一定慢"的偏见,证明了向量化表征的威力
  • VAD-Tiny 用 9.3× 的速度换少量精度,16.8 FPS 已经接近车端实时部署门槛(20+ FPS)
  • 消融实验证明:三个向量化约束缺一不可,去掉任何一个碰撞率都显著上升;向量化地图和向量化 agent 各自都贡献明显

⚖️ 与 UniAD 对比:从"稠密"到"稀疏"的范式跃迁

VAD 是 UniAD 的直接继承者也是颠覆者:

维度UniADVAD
场景表示稠密栅格(占用图、语义图、代价图)全向量化(地图矢量 + 运动矢量)
轨迹约束隐式 + 代价图后处理三个显式实例级约束
后处理有手设计规则,纯端到端
推理速度慢(1.8 FPS)快(4.5–16.8 FPS)
实例结构像素级,丢失实例实例级,保留结构
核心思想统一所有任务统一 + 向量化提效

VAD 的贡献在于:它证明了"向量化不仅能更快,还能更准更安全"。这为后来的 SparseDrive、VADv2 等一系列"稀疏/向量化"工作铺平了道路——可以说 VAD 开启了端到端驾驶的"稀疏化时代"。地平线团队(Horizon Robotics)也凭借这条技术路线,把研究成果推向了量产。


⚠️ 优势与局限

✅ 优势

  • 效率革命:抛弃栅格后推理快 2.5–9.3×,首次让端到端方案具备车端部署潜力
  • 实例级安全约束:三个向量化约束直接针对碰撞/越界/方向,可解释且有效
  • 完全端到端:无手工后处理,梯度从规划贯通回骨干
  • 代码完全开源:hustvl/VAD 社区影响力大,是后续大量工作的基线

❌ 局限

  • 仍依赖稠密 BEV query 编码,BEV 部分仍是计算大头(SparseDrive 进一步把 BEV 也去掉)
  • 轨迹是回归输出,单模态,无法表达"可左转也可直行"的多选择场景(VADv2 才引入多模态词表)
  • 主要在 nuScenes 开环 验证,闭环性能待考察
  • 向量化感知对复杂拓扑(如环岛、多岔路口)的建模仍有限

📝 个人思考

VAD 的历史定位:把 VAD 放在时间轴上看,它是端到端驾驶从"稠密"走向"稀疏"的关键转折点。UniAD 证明了"端到端统一"可行,但太重;VAD 证明了"向量化"可以让端到端既快又准;之后的 SparseDrive 把向量化推到极致(连 BEV 都省了),VADv2 引入大规模轨迹词表做多模态。这条演进路线非常清晰,而 VAD 是承上启下的枢纽。它也奠定了地平线团队在端到端驾驶领域的领先地位。

向量化是"物理先验"的胜利:VAD 之所以快又准,本质是把驾驶场景的天然结构(车道、边界、车辆都是实例)作为归纳偏置(inductive bias)注入模型。这比让网络从像素里硬学结构要高效得多。这个思想在后续工作(GoalFlow 的目标点词表、SparseDrive 的稀疏 query)里反复出现——用对先验,比堆参数更重要。这也是为什么端到端驾驶不会走向"完全黑盒",而是"结构化表征 + 端到端优化"的折中。

对我们 Flow-GRPO 工作的启示:VAD 的三个规划约束本质是"硬编码的安全先验"。在做强化学习优化时,这些约束可以天然转化为奖励函数——碰撞约束 ↔ 碰撞惩罚、越界约束 ↔ 越界惩罚、方向约束 ↔ 偏航惩罚。VAD 提供了一份现成的"安全 prior 清单",可以直接迁移到 RL 的奖励设计里。相比于从零设计奖励,借鉴 VAD 这种经过验证的约束体系,能让 RL 训练更稳定、更安全。

单模态回归的天花板:VAD 用回归输出单条轨迹,在简单场景没问题,但在"可左转也可直行"的多选择路口就显得别扭——这也是后来 GoalFlow、SparseDrive 都转向多模态生成的根本原因。VAD 的局限恰恰催生了下一代工作,这就是好的基础研究的价值:它不仅解决问题,更暴露出新的问题。


📖 论文精读系列。VAD 建议和 UniAD(前作)、SparseDrive(后继)、GoalFlow(多模态延伸)串起来读,能看清端到端驾驶"稀疏化"演进的全貌。