端到端自动驾驶的范式跃迁与路线之争

Topic: End-to-End Autonomous Driving Paradigm Evolution
Keywords: UniAD, VAD, VADv2, SparseDrive, SparseDriveV2, DiffusionDrive, Trajectory Vocabulary, Diffusion Policy, Score-based vs Generation-based

知识图谱

下面这张交互式图谱串起本文涉及的端到端自动驾驶论文与上下游依赖。点击节点可跳转到对应论文笔记;右下角按钮支持缩放、适应窗口和全屏。

🟣 端到端规划主链(UniAD → VAD → VADv2 → SparseDrive 系列 / DiffusionDrive)
🔵 评分派阵营(VADv2 / SparseDriveV2)
🔴 生成派阵营(DiffusionDrive)
🩵 上游 BEV / 地图依赖(BEVFormer / MapTR,详见 《BEV+Transformer 感知统一框架》

引言

2023 年的 UniAD 拿下 CVPR Best Paper 之后,端到端自动驾驶(End-to-End Autonomous Driving,E2E AD)成为学术界与工业界共同押注的新范式。短短三年,这条路线快速分化、自我否定、再次融合,已经走完了”多任务级联 → 向量化场景 → 概率分布建模 → 稀疏 token 化 → 生成式扩散”五个清晰的阶段,并在 2025 年形成了 评分派 vs 生成派 的路线之争。

本文以一条主线串起这段演进:

UniAD (2023)  →  VAD (2023)  →  VADv2 (2024)  →  SparseDrive (2024) ─┐
├─ NAVSIM 评分派
SparseDriveV2 (2025) ─┘

DiffusionDrive (2025) ──── 生成派

每一次跳迁都对应一个具体的”被否定”假设:UniAD 被认为太重 → VAD 砍掉中间表示;VAD 被认为不够多模态 → VADv2 引入概率词汇表;VADv2 被认为离不开 BEV → SparseDrive 全 token 化;SparseDrive 词表不够 → SparseDriveV2 拆成路径×速度组合 26 万候选;评分派整体被嫌弃”穷举不优雅” → DiffusionDrive 用扩散生成多模态。

读这篇文章前,建议先看一遍 BEV+Transformer 感知统一框架 中的”map query”小节,理解”任务 query 在同一 attention 中互相读写”这一基础范式。本文是它在决策层的延展。

与本文配套的论文笔记:UniADVAD/VADv2SparseDrive/SparseDriveV2DiffusionDrive。本文聚焦”演进逻辑”,论文细节请到对应笔记中查阅。

1. 起点:为什么需要端到端?

1.1 模块化时代的两个原罪

在 E2E 之前,自动驾驶的主流架构是 感知 → 预测 → 规划 → 控制 的串联流水线。每个模块独立训练、独立优化,模块之间通过结构化接口(3D box、轨迹、占用栅格)传递信息。这种架构的两个根本缺陷:

  • 信息瓶颈(Information Bottleneck):感知输出的”3D box + 类别”是对原始传感器信号的一次极端压缩,规划器无法访问原始的视觉/几何不确定性,被迫做出过于保守的决策;
  • 目标错位(Objective Misalignment):感知模块用 mAP 优化、规划模块用 collision rate / L2 优化,两者梯度互不可见,感知过拟合于”框得准”而非”对规划有用”。

1.2 端到端的承诺

E2E 的承诺非常直接:让规划损失反向传播到原始像素。这意味着:

  • 感知特征会自动学会”对规划重要的部分”,而不是均匀分配表示能力;
  • 模块间的信息流以可微分的特征张量传递,而不是离散的结构化对象;
  • 整个系统只有一个训练目标,工程上可以一次性优化。

这个承诺在 2022 年之前一直停留在纸面上,因为没人知道怎么把这么多任务塞进一个可训练的网络。直到 UniAD 给出了第一份可工作的答卷。

2. 第一代:UniAD —— 多任务级联的全栈端到端

2.1 核心思想:planning-oriented 的级联监督

UniAD 的核心贡献不是”端到端”这个想法本身,而是给出了一个把所有任务串成可微分级联的具体架构

BEV Encoder (BEVFormer)

├── TrackFormer (multi-object tracking query)
├── MapFormer (online HD map query)
├── MotionFormer (motion forecasting query)
├── OccFormer (occupancy prediction query)
└── Planner (planning query) ◄── 全部上游 query 在 attention 中读写

五个模块全部用 query-based Transformer 实现,前序模块的输出 query 直接作为后续模块的输入 token。Planning loss 通过这五层级联反向传播到 BEV encoder,是名副其实的端到端。

2.2 性能与代价

指标 UniAD 当时 SOTA 模块化 baseline
nuScenes avg L2 (m) 1.03 1.40+
Collision rate (%) 0.31 0.50+
推理 FPS (A100) 1.8 2.5–3.0

UniAD 拿到了 CVPR 2023 Best Paper,但也暴露了三个明显问题:

  1. 太重:dense BEV + 5 个 Transformer 头,1.8 FPS 在量产车上无法接受;
  2. planning 仍是单轨迹回归:没有多模态建模,安全裕度全靠 collision loss 兜底;
  3. track / occupancy 是否必要存疑:这两个模块占了大量算力,但消融发现去掉它们 planning 性能几乎不变。

这三个问题直接催生了下一代:VAD

3. 第二代:VAD —— 把场景”向量化”

3.1 关键洞察:dense BEV 是冗余的

VAD (Vectorized Autonomous Driving) 由 hustvl + Horizon Robotics 在 2023 年 ICCV 发表,核心思想是用 vector 表示替代 dense BEV,并砍掉 tracking / occupancy 两个”看似必要但实际无用”的中间任务

VAD 的场景表示只有三类向量化对象:

  • Map:polyline 形式的车道线 / 路沿(来自 MapTR 系列的输出);
  • Agent:每个动态目标用一个 query 表示,包含位置 + 多模态未来轨迹;
  • Ego:一条 ego query,通过 cross-attention 与 map / agent 全 attention 交互,最后 MLP 出未来 3 秒轨迹。

“MapTR + Planning = VAD” 是这条线上最干净的工程公式。

3.2 三项几何约束:把规则”焊”进损失函数

VAD 最聪明的设计是把三条交通规则改写成可微分的几何损失,而不是后处理的硬约束:

$$
\mathcal{L}{\text{vad}} = \mathcal{L}{\text{reg}} + \lambda_1 \mathcal{L}{\text{collision}} + \lambda_2 \mathcal{L}{\text{boundary}} + \lambda_3 \mathcal{L}_{\text{direction}}
$$

  • Collision Loss:ego 未来轨迹的每个点对所有 agent 未来轨迹的最近距离,小于安全半径就罚;
  • Boundary Loss:ego 轨迹点与最近车道边界 polyline 的距离,越界就罚;
  • Direction Loss:ego 轨迹切向量与所在车道中心线切向量的夹角余弦,方向不一致就罚。

这三项把”安全 + 合规 + 合理”三个直觉编码进梯度,是 VAD 性能跃升的关键。

3.3 性能对比

模型 avg L2 (m) Collision (%) FPS
UniAD 1.03 0.31 1.8
VAD-Tiny 0.78 0.38 16.8
VAD-Base 0.72 0.22 4.5

VAD-Base 在 avg L2 上比 UniAD 降了 30%,FPS 提升 2.5×;VAD-Tiny 直接做到 16.8 FPS,第一次让 E2E 进入了”可量产”的算力区间。

3.4 VAD 的两个未解之谜

VAD 用回归输出单条确定性轨迹,回避了一个根本问题:驾驶决策天然是多模态的(左转/直行/右转通常都安全)。这导致:

  • 训练数据中”专家走中间”的偏置会被模型学成”永远走中间”,遇到分叉路口表现僵硬;
  • agent 预测虽然是多模态的,但 ego 不是,多模态预测的信息无法被 ego 充分利用。

VADv2 正是为解决这两个问题而生。

4. 第三代:VADv2 —— 把规划变成”$p(a\mid o)$ 分布建模”

4.1 核心思想:从回归到分类,再到分布

VADv2(2024 年 arXiv)做了一个看似激进、实则非常自然的概念跳迁:

不再回归一条轨迹,而是在一个固定的轨迹词汇表(trajectory vocabulary)上学习概率分布 $p(a \mid o)$。

具体做法:

  1. 离线聚类:在 nuScenes / CARLA 训练集上,对所有专家轨迹做 K-means 聚类,得到 4096 条 代表性轨迹作为词汇表 ${a_1, a_2, \dots, a_{4096}}$;
  2. 概率场编码:每条候选轨迹 $a_i$ 由 6 个未来 waypoint 组成,每个 waypoint 用 NeRF 风格的位置编码 $\Gamma(x)$ 投到高维空间,再用 Transformer 聚合成一个 token:

$$
E(a_i) = \mathrm{Transformer}\Bigl(\bigl[\Gamma(x_1^i), \Gamma(y_1^i), \dots, \Gamma(x_6^i), \Gamma(y_6^i)\bigr]\Bigr)
$$

  1. 环境 + 导航 + 状态条件建模:把环境特征 $E_{\text{env}}$、导航指令 $E_{\text{navi}}$、自车状态 $E_{\text{state}}$ 拼到 $E(a_i)$ 上,再过一层 MLP 给出每条轨迹的得分:

$$
p(a_i \mid o) = \mathrm{softmax}i\Bigl(\mathrm{MLP}\bigl(\mathrm{Transformer}(E(a_i), E{\text{env}}) + E_{\text{navi}} + E_{\text{state}}\bigr)\Bigr)
$$

  1. 训练损失:用 KL 散度让预测分布对齐”专家轨迹近邻分配出的软标签分布”,再叠加 conflict loss(专家轨迹的临近候选不能被罚得过低)。

4.2 为什么这个改动是范式级的

回归 → 分类看起来只是”换了个 head”,但实际带来的影响是范式级的:

维度 VAD(回归) VADv2(分布)
输出 1 条确定性轨迹 4096 条候选 + 概率
多模态 不支持 天然支持(top-k 采样即多模态)
安全裕度 靠 collision loss 训练时约束 推理时可基于 $p$ 加任意约束
与 LLM 思路 完全不同 同构——都是在固定 token 词汇表上学 $p(\cdot \mid \text{context})$

最后一点尤其重要:VADv2 把 LLM 的”在词汇表上建模条件分布”思想引进了端到端规划。这条线另一头的 VLA 路线(DriveVLA、AutoVLA 等)从同一个思想原点出发,只是把轨迹词汇表换成了语言 token。可以说,VADv2 是后续所有”评分派”端到端规划方法的范式基线

4.3 性能与限制

VADv2 在 CARLA Town05 Long 闭环测试上:

模型 Driving Score Route Completion Infraction
DriveMLM (LLM-based) 76.1 95.5 0.78
VADv2 85.1 98.4 0.87

并且消融发现:去掉 distribution loss 改回 single-trajectory regression,avg L2 会恶化 17 倍,证明分布建模是性能的真正来源。

但 VADv2 也有两个明显限制:

  1. 词汇表 4096 固定不可扩充:聚类粒度决定了表达力上限,路径形状的细微差异无法被表达;
  2. 只在 CARLA 验证:nuScenes 因为是开环 replay,无法体现概率规划的多模态优势。

针对这两点,2024–2025 年出现了两条相反的路线:SparseDrive 把词表做得更密DiffusionDrive 干脆用扩散生成代替穷举

5. 第四代分支 A:SparseDrive 系列 —— 评分派的极致

5.1 SparseDrive:去 BEV,全 token 化

SparseDrive(2024 年)对 VAD 系列做了进一步的”减法”:连 BEV 也去掉,整个网络全程 sparse query。

  • 检测、跟踪、地图全部 token 化:每个对象一个 query,没有任何 dense feature map;
  • 并行 motion-planner:motion 和 planning 共享 query,并行预测而不是 UniAD 式的串联;
  • 碰撞感知重评分:对候选轨迹基于预测出的 agent 轨迹做碰撞检测,碰撞概率作为评分修正项。

性能上 SparseDrive 训练快 7.2×、参数量降 50%,且 nuScenes avg L2 略优于 VAD。但它仍然继承了 VADv2 的”评分派”基因——候选集是固定的,只是用 sparse query 加快了评分速度。

5.2 SparseDriveV2:超密分解词表

SparseDriveV2(2025 年)把”评分派”推到了极致:

把轨迹词汇表从 4096 拆成 路径 × 速度 两个维度,分别有 1024 条路径 × 256 个速度剖面 = 262,144 (≈ 26 万) 候选组合。

为了让 26 万候选可计算,SparseDriveV2 引入:

  1. 粗到细分解评分:先在 1024 条路径上选 top-K,再在所选路径的 256 个速度剖面上细评,最终实际评分量压缩到 ~400 条;
  2. 分解评分:路径评分只看几何与障碍物,速度评分只看动力学与舒适性,两个评分独立训练;
  3. 重排列正则:相似候选的评分必须接近,避免训练不稳定。

性能上 SparseDriveV2 在 NAVSIM 闭环榜单上拿到 PDMS 92.0,超过同期所有生成式方法。

5.3 评分派的优势与瓶颈

优势

  • 推理可控,候选集封闭,安全审计容易;
  • 与 LLM/VLA 思路同构,迁移到大模型时代代价低;
  • 工程稳定,候选集可以人工审计、人工增删。

瓶颈

  • 候选集表达力受词表大小线性限制,提升精度只能堆词表;
  • 26 万候选的评分本身需要大量 attention,推理时延难压;
  • 极端场景(如绕障)需要词表外的轨迹,候选集天然失效。

针对最后一点,”生成派”给出了完全相反的答案。

6. 第四代分支 B:DiffusionDrive —— 生成派的轻量化

6.1 截断扩散:只去噪 2 步

DiffusionDrive(CVPR 2025)走了完全相反的路线:

不要词汇表,用 截断扩散策略(Truncated Diffusion Policy) 直接生成多模态轨迹,且只需 20 个锚点 + 2 步去噪

核心设计:

  • 20 个锚点(vs VADv2 的 4096):用 K-means 在数据集上聚类 20 条代表性轨迹作为扩散起点,覆盖驾驶意图的粗粒度模态(直行/左变道/右变道/…);
  • 截断扩散:传统扩散需要几十步去噪,DiffusionDrive 把扩散过程截断到 2 步,每一步把锚点细化一次,最终输出连续的多模态轨迹分布;
  • 场景条件去噪器:去噪网络把 BEV/sparse 场景特征作为条件,每步去噪都参考当前场景做局部调整。

6.2 性能与意义

DiffusionDrive 在 NAVSIM 上:

模型 PDMS NC DAC EP TTC Comf
VADv2 80.9
DiffusionDrive 88.1 98.2 96.2 82.2 94.7 100

意义不在于绝对分数(SparseDriveV2 后来反超到 92.0),而在于:

  • 证明了生成式方法在 E2E AD 上可以做到实时(45 FPS),扩散不必然慢;
  • 证明了多模态轨迹不需要超大词表,20 个锚点 + 去噪足以覆盖驾驶意图;
  • 引入了 LLM 之外的另一条”生成式建模”路线(diffusion vs autoregressive)。

6.3 生成派的优势与瓶颈

优势

  • 锚点数量小,推理快;
  • 自然支持多模态,且模态边界平滑;
  • 与机器人 / 通用 diffusion policy 的工具链共享,可受益于大模型社区进展。

瓶颈

  • 截断 2 步后仍要精调,对超参敏感;
  • 缺乏可解释的”候选集”概念,安全审计较难;
  • 极端场景下扩散可能生成不合理轨迹,需要额外的安全后处理。

7. 评分派 vs 生成派:当前的路线之争

到 2025 年,端到端规划已经清晰分化为两条路线:

维度 评分派(VADv2 / SparseDriveV2) 生成派(DiffusionDrive)
输出建模 在固定词表上学 $p(a\mid o)$ 用扩散从噪声生成轨迹
词表大小 4K – 260K 20 锚点
多模态 显式(top-k) 隐式(去噪结果分布)
推理可控性 高(候选集封闭) 低(生成结果不可枚举)
安全审计 容易 困难
NAVSIM 当前最优 SparseDriveV2 92.0 DiffusionDrive 88.1
与大模型生态 与 LLM/VLA 同构 与机器人 diffusion policy 同构

这场路线之争还远没有结束。2025 年下半年出现的 Hydra-MDP、GoalFlow 等工作开始尝试”评分 + 生成”的混合范式:用扩散生成候选,再用评分器精排。这条混合路线很可能是下一代的主流。

8. 五代演进的统一视角

把五代方法摆在一起,可以看到三条清晰的演进轴线:

8.1 表示在变轻:dense BEV → vector → sparse token

代次 场景表示 单帧特征量级
UniAD dense BEV (200×200×256) $10^7$
VAD vectorized polylines + agent queries $10^4$
SparseDrive sparse query tokens(无 dense feature) $10^3$

这条轴线与 BEV+Transformer 文章 §6.1 的 map 表示演进 完全同构——“绕过中间表示”是 BEV+Transformer 时代的主旋律。

8.2 决策在变多模态:single trajectory → anchor scoring → distribution

代次 决策建模 模态数
UniAD / VAD 回归一条确定性轨迹 1
VADv2 / SparseDrive 在固定词表上评分 4K
SparseDriveV2 路径 × 速度分解评分 260K
DiffusionDrive 扩散生成多模态分布 连续

VADv2 是这条轴线上唯一的概念跳迁——从”输出一个最优”变成”输出一个分布”。后续无论评分派还是生成派,都建立在这个跳迁之上。

8.3 与大模型的关系在变近

代次 与 LLM/Diffusion 生态
UniAD 完全独立的 CV 范式
VAD 仍是 CV 范式,但开始用 attention 做规划
VADv2 思想上与 LLM 同构(词汇表 + 条件概率)
SparseDriveV2 与 LLM 同构 + 工程化分解
DiffusionDrive 与 robot diffusion policy 同构

这条轴线意味着:端到端自动驾驶正在加速融入大模型生态。VADv2 之后的工作可以直接复用 LLM/diffusion 的训练 trick(KL 散度、guidance、CFG、scheduler 等),社区的进展会以越来越快的速度迁移到 AD 上。

9. 工程视角:选型决策树

如果你在工业界做 E2E AD 选型,下面这棵决策树或许有用:

是否需要量产部署?
├── 否(学术研究,追求 SOTA)
│ ├── 偏好 NAVSIM 高分 → SparseDriveV2(评分派)
│ └── 偏好生成式范式 → DiffusionDrive

└── 是(量产部署)
├── 算力充足(A100+) → VADv2 / SparseDriveV2
│ └── 优势:候选集封闭,安全审计容易

└── 算力受限(车规 SoC)
├── 不需要多模态 → VAD-Tiny(16.8 FPS)
└── 需要多模态 → DiffusionDrive(45 FPS,但需要安全后处理)

实际选型中还要考虑:

  • 数据规模:评分派受益于大数据(词表越大越好),生成派对数据量需求较小;
  • 可解释性需求:监管严格的市场(如欧盟)建议评分派;
  • 大模型团队基础:已有 VLA/LLM 团队建议评分派(思路同构,工具链共享)。

10. 总结与展望

E2E 自动驾驶在三年内走完了”模块级联 → 向量化 → 概率分布 → 稀疏 token → 扩散生成”五个阶段,每一次跳迁都对应着对前一代核心假设的否定。当前的”评分派 vs 生成派”路线之争还没有定论,但混合范式(生成候选 + 评分精排)已经显出主流潜质。

更宏观地看,E2E AD 已经不再是一个孤立的 CV 课题,而是与 LLM、VLA、Diffusion Policy 共享同一套思想框架。下一代 E2E 方法很可能会以下列形态出现:

  • Vocabulary scaling:词汇表从 4K 扩展到 100M(与 LLM token 数量级齐平);
  • Multi-modality fusion:场景特征 + 语言指令 + 历史轨迹联合编码;
  • World model 反馈:用世界模型生成的反事实轨迹作为评分器的训练信号;
  • 闭环数据飞轮:仿真 → 真实路测 → 反馈训练,与 LLM 的 RLHF 同构。

想看 E2E AD 在更宏观的”自动驾驶五次跃迁”中所处位置,请阅读 自动驾驶的觉醒:从感知像素到重构世界的五次跃迁
想看本文涉及论文的完整知识图谱与推荐阅读顺序,请阅读 自动驾驶感知论文知识图谱