looyifan / SparseDriveV2: Scoring is All You Need for End-to-End Autonomous Driving

Created Mon, 20 Apr 2026 00:00:00 +0000 Modified Fri, 15 May 2026 14:43:15 +0800

一、这篇论文在讲什么?

核心问题

端到端自动驾驶的多模态规划中,江湖上原本分为两派:

派系 代表方法 优点 缺点
静态词表派 VADv2、Hydra-MDP、DriveSuprim 算力友好,简单高效 颗粒度太粗,动作空间覆盖不足
动态生成派 ipad(回归)、DiffusionDrive、GoalFlow(扩散/流匹配) 极其精细,性能霸榜 模型臃肿,需要额外网络或疯狂迭代降噪

作者的灵魂拷问

动态生成真的是必需的吗?如果我把静态词表塞得密不透风,能不能打败它们?

SparseDriveV2 的答案

静态词表只要足够密,打分机制就能一统天下! 纯粹的打分范式(Purely Scoring-based),照样拿 SOTA!

形象的比喻

  • 动态生成派:像一个"现场作画"的艺术家,每次都要从头画一幅精细的作品,耗时耗力
  • SparseDriveV2:像一个"菜单点菜"的食客,只要菜单够厚(词表够密),就能精准选中自己想要的那道菜

二、暴力扩容实验:用数据说话

为了验证"静态词表的潜力是无穷的"这个猜想,作者拿经典的 Hydra-MDP 模型做了一场"大力出奇迹"实验:

轨迹锚点数量 NAVSIM v2 EPDMS 得分
1024 85.02
2048
4096
8192
16384 87.35
32768 💥 OOM(显存爆了)

结论:性能一路看涨,完全没有遇到瓶颈!限制它的只是你的算力和显存!

于是,SparseDriveV2 闪亮登场,它带来了两个改变游戏规则的核心创新,彻底打破了这个内存墙。


三、核心方法:两大创新

创新一:可扩展的词汇表征 —— 轨迹"解剖术"

一条轨迹包含两个维度:

  1. 空间几何:你去哪儿?(路径)
  2. 时间演进:你开多快?(速度)

既然完整的轨迹太多会导致内存爆炸,那就把它们拆了

轨迹因式分解(Factorization)

组成部分 定义 采样方式
几何路径 (Path, $p$) 剥离时间,只看地上的车辙印 在最大空间长度 $S_{max}$ 内,每隔固定空间间隔 $\Delta s$ 采一个点
速度配置 (Velocity, $v$) 剥离空间,只看迈速表 在总时间 $T$ 内,每隔固定时间 $\Delta t$ 记录一个平均速度

积木重组:如何还原轨迹?

当需要还原轨迹时,通过计算时间步 $t$ 时的累计行驶距离:

$$s_t = \sum v_k \Delta t$$

然后在路径 $p$ 上进行距离插值,就能完美拼出完整的时空轨迹 $\tau$!

形象比喻:就像玩乐高积木,你不需要为每种组合单独准备一个成品,只需要准备有限数量的"路径积木"和"速度积木",然后按需组装即可!

创新二:丝滑的打分策略 —— 大浪淘沙

面对几十万条轨迹,一个一个打分肯定会死机,于是作者设计了**“漏斗式"打分法**:

┌─────────────────────────────────────────────────────┐
│  第一层:场景编码 (Scene Encoding)                    │
│  - 用 ResNet 提取多视角图像特征                       │
│  - 编码自车状态                                       │
└─────────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────────┐
│  第二层:粗粒度解耦打分 (Coarse Factorized Scoring)   │
│  - 路径打分:MLP + 场景特征 → Top-K_p 个路径          │
│  - 速度打分:MLP + 场景特征 → Top-K_v 个速度          │
│  - 筛掉离谱组合(高速上猛打方向盘、拥堵路段狂飙)       │
└─────────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────────┐
│  第三层:细粒度轨迹打分 (Fine-Grained Scoring)        │
│  - 轨迹重条件化(Re-conditioning)                   │
│  - 可变形聚合(Deformable Aggregation)              │
│  - 高精度时空依赖推理                                 │
│  → 选出最终冠军轨迹                                   │
└─────────────────────────────────────────────────────┘

为什么需要"轨迹重条件化”?

高速行驶和急转弯之间存在物理冲突,路径和速度不是绝对独立的!

所以作者引入了轨迹重条件化(Trajectory Re-conditioning),用可变形聚合让组合后的轨迹特征再次与场景特征互动,进行高精度的时空依赖推理,最终给出精准打分!


四、词汇构建:从数据到锚点

两步聚类法

作者在海量人类驾驶数据中,用 K-Means 聚类算法 分别聚类出:

  • $N_p$ 个路径锚点:代表人类常见的行驶路径形态
  • $N_v$ 个速度锚点:代表人类常见的速度配置

奇迹时刻:排列组合

把它们两两排列组合!

$$\text{总轨迹数} = N_p \times N_v$$

只需极小的内存,就能组合出包含几十万条候选轨迹的超高密度轨迹词表


五、训练与推理

训练秘籍

损失函数:基于距离的软分类交叉熵损失(CE Loss)

评估维度 距离度量
路径评估 点到点的平均平方距离($L_2$ 距离)
速度评估 绝对误差($L_1$ 距离)
细粒度轨迹评估 $L_2$ 距离

额外监督:还请了一位"基于规则的老师(Rule-based Teacher)“来传授心法:

  • 安全性
  • 行驶进度
  • 舒适度
  • 交通规则遵守度

使用二元交叉熵(BCE)损失进行监督。

推理流程

综合这些分数,选出"选秀冠军"直接控车!


六、实验设置:赛场与装备

主战场 NAVSIM

配置 数值
路径词表 $N_p$ 1024(1米间隔,最长50米)
速度词表 $N_v$ 256(0.5秒间隔,最长4秒)
总候选轨迹 262,144 条
与前人对比 比常用的 8192 个锚点密 32 倍

推流过滤魔法

26万条轨迹怎么算?

层级 筛选策略 结果
第一层 Top 128 路径 + Top 64 速度 筛掉大部分离谱组合
第二层 Top 20 路径 + Top 20 速度(v2加速:Top 10 速度) 形成高质量子集
最终 细粒度打分 只给 400 条最靠谱的轨迹打分

轻量级装备

配置项 数值
骨干网络 ResNet-34(仅 21.8M 参数)
输入分辨率 256 x 512
训练设备 8 张 NVIDIA L20 GPU
Batch Size 128
学习率 $1 \times 10^{-4}$
权重衰减 0
训练 Epochs 10

七、主打战绩:越级挑战

PDMS 终极高分:92.0

  • 完爆其他打分方法和动态生成方法
  • “以下犯上”:用袖珍的 ResNet-34 干翻了配备 V2-99 骨干网络(96.9M参数)的 GoalFlow 和 Hydra-MDP!
模型 EPDMS 分数
SparseDriveV2 90.1
DiffusionDriveV2(前任霸主) 87.5

特别是在 EP(驾驶进度) 指标上进步神速,证明了致密词表真的能覆盖更广的动作空间!

Bench2Drive(闭环测试)

指标 分数
驾驶得分 89.15
成功率 70.00%
多能力得分 67.67%

全面碾压 TCP-traj 和 DriveAdapter 等一众强敌,展现了强大的复杂场景泛化能力。


八、消融实验:抽丝剥茧

词表密度实验

词表大小 EPDMS 分数
512 × 128 88.7
1024 × 256 90.1

结论:词表越密,效果越好!

关键组件实验

配置 效果
可变形聚合(DFA) ✅ 提升
轨迹重条件化(Re-conditioning) ✅ 提升
DFA + Re-conditioning 🏆 黄金搭档

九、附录彩蛋:Bench2Drive 闭环实验细节

配置调整

配置项 数值
路径锚点最大长度 15 米
速度视野 3 秒
骨干网络 ResNet-50
训练设备 16 张 L20 显卡
输入 6 个摄像头(256 x 704)
辅助任务 3D 目标检测、在线建图、运动预测

两段式训练

  1. 第一阶段:100 个 Epoch 的感知训练
  2. 第二阶段:10 个 Epoch 的感知与规划联合训练(纯模仿学习,没用规则老师监督)

学习率分别为 $4 \times 10^{-4}$ 和 $3 \times 10^{-4}$。

如何控车?

控制维度 策略
横向控制 “随速可变目标距离”:$d = 0.5 \times \text{自车速度} + 2.5$,寻找路径上的预瞄点打方向盘
纵向控制 直接取速度配置里的第一个速度作为目标油门/刹车

定性结果展示

与基线相比(红线),SparseDriveV2 的轨迹(蓝线):

  • 更贴近人类老司机(绿线)
  • 急转弯更平滑
  • 交通效率更高
  • 不会像呆子一样停在原地!

坦诚的局限性:在缺乏导航信息的情况下,系统偶尔也会"迷路”。


十、个人思考与疑问

值得学习的亮点

  1. 极简哲学:用最纯粹的打分思路,证明了"简单方法 + 大规模"可以打败"复杂方法 + 小规模"
  2. 因式分解的智慧:把轨迹拆成路径和速度两个维度,巧妙地绕过了显存爆炸的问题
  3. 漏斗式打分:三层筛选机制既保证了计算效率,又没有牺牲最终精度

待探索的问题

  1. 词表密度的极限:如果显存继续增大,词表密到什么程度会开始出现边际效应递减?
  2. 路径和速度的耦合:重条件化机制是否可以进一步优化,更好地捕捉两者的深层关联?
  3. 与扩散模型的融合:能否将 SparseDriveV2 的致密词表思想与扩散模型的生成能力结合起来?

参考链接

  • 论文原文:https://arxiv.org/pdf/2603.29163
  • 相关工作:Hydra-MDP, VADv2, DiffusionDrive, GoalFlow