目标
DiffusionDrive旨在解决端到端自动驾驶中的实时性、多模式决策和复杂场景适应问题,通过高效生成多种驾驶轨迹,实现精准、鲁棒的驾驶规划。
贡献
- 截断扩散策略:设计从锚点高斯分布开始的截断扩散过程,仅需2步去噪,显著提升生成效率和轨迹多样性。
- 级联扩散解码器:引入高效的Transformer解码器,增强轨迹与场景特征的交互,优化轨迹质量。
- 性能突破:在NAVSIM数据集上实现88.1 PDMS,同时支持实时推理(45 FPS)。
- 多模式生成能力:生成多样化轨迹,显著提升复杂场景中的适应性与安全性。
- 资源效率提升:相比传统多模式方法,减少锚点需求(从8192降至20),降低计算成本。
总结:DiffusionDrive通过创新的扩散策略和解码器设计,实现了实时、多模式、高鲁棒性的端到端自动驾驶规划。
可能缺点(本人推测)
-
锚点依赖性:
- 依赖训练集的锚点分布,可能在锚点覆盖不足的稀有场景(如极端驾驶条件)中表现不佳。
- 锚点选择的质量直接影响生成轨迹的合理性和多样性。
- 较难做到不同场景之间的泛化和迁移
-
调试难度:
- 多模式规划方法本身较难调试,尤其是在生成和选择轨迹两阶段都可能出现问题时,错误分析复杂。
背景
特性 | 单模式回归 | 多模式回归 |
---|---|---|
实现方式 | 直接使用回归模型(如MLP、CNN, 上图中(a) )生成单条轨迹 | 通过锚点采样(上图中(b))或生成模型(上图中(c), (d))生成多条轨迹 |
优点 | 简单高效,适合简单场景,计算成本低,易于调试 | 多样性强,适应复杂场景和突发情况,鲁棒性更高 |
缺点 | 缺乏多样性,难以处理复杂场景,鲁棒性较差 | 计算成本较高,调试困难 |
轨迹数量 | 单一轨迹 | 多种潜在轨迹 |
适用场景 | 简单、明确的场景 | 复杂、不确定性高的场景 |
计算成本 | 低 | 较高 |
模型鲁棒性 | 对动态变化较敏感 | 更能适应复杂和突发场景 |
轨迹多样性 | 无多样性,单一解 | 具有多样性,支持多种潜在行为 |
方法
1. 截断扩散策略(Truncated Diffusion Policy)
核心思想:
- 传统扩散模型从标准高斯分布采样后,通过多步去噪生成目标分布,这种方法在动态交通场景中会导致模式坍缩且计算开销大。
- 截断扩散策略的核心是引入锚点高斯分布作为初始化,减少扩散步数,并确保生成轨迹更符合交通行为的多样性和合理性。
下图无Truncated Diffusion Policy的结果造成模式坍缩,下图w Truncated Diffusion Policy则更具有多样性;
实现步骤:
-
锚点生成:
- 对训练集轨迹使用K均值聚类生成固定锚点集合 ${a_k}$。
- 每个锚点 $ a_k $是代表不同驾驶模式的参考轨迹。
-
扩散过程定义:
在训练中,向锚点添加截断的高斯噪声来构造锚点高斯分布:$$
\tau_i^k = \sqrt{\bar{\alpha}_i}a_k + \sqrt{1-\bar{\alpha}_i}\epsilon, \epsilon \sim N(0, I)
$$其中 $i \in [1, T_{trunc}] $,$ T_{trunc} $是截断的扩散步数(远小于标准扩散步数)。
-
去噪过程:
模型学习从锚点高斯分布的噪声轨迹 $\tau_i^k$逐步去噪至真实轨迹分布:$$
p_\theta ( \tau_{i-1} | \tau_i, z )
$$z表示场景条件信息(如传感器数据)。
-
推理阶段:
- 在推理中,采样固定数量的噪声轨迹(可以动态调整数量),以少量去噪步骤生成最终轨迹。
2. 级联扩散解码器(Cascade Diffusion Decoder)
核心思想:
- 基于Transformer的解码器通过多层级结构增强与场景信息的交互,从而生成更加精确和多样化的轨迹。
架构设计:
-
输入特征:
- 解码器接收锚点高斯分布的噪声轨迹以及场景特征(鸟瞰图BEV、透视图PV)。
- 特征来源于感知模块的输出。
-
空间交叉注意力:
- 通过稀疏可变形注意力机制(Deformable Attention),噪声轨迹与BEV/PV特征交互,提取空间相关信息。
-
场景条件交叉注意力:
- 噪声轨迹进一步与感知模块的**代理(agent)和地图特征(map queries)**交互,捕获与驾驶决策相关的上下文信息。
-
时间步调制(Timestep Modulation):
- 在每一步去噪中,嵌入当前扩散时间步信息,帮助模型动态调整生成轨迹。
-
轨迹评分与选择:
- 使用多层感知机(MLP)对每条轨迹计算置信度得分, 和最终轨迹。
- 输出置信度最高的轨迹作为最终预测。
-
级联结构:
- 解码器层以级联方式迭代优化轨迹,每层共享参数。
- 在推理过程中,逐步提升轨迹质量。
3. 损失函数与训练策略
损失函数:
训练目标包含两部分:
- 轨迹重构损失(L1 Loss):
优化预测轨迹 $\hat{\tau}{k}$ 与真实轨迹 $\tau{gt}$ 的距离。
$$
L_{rec} = | \hat{\tau}k - \tau{gt} |_1
$$
-
分类损失(Binary Cross-Entropy Loss):
优化锚点轨迹的置信度评分 $\hat{s}_{k}$ 是否与实际匹配:
$$
L_{cls} = -y_k \log(\hat{s}_k) - (1-y_k) \log(1-\hat{s}_k)
$$$y_k=1$ 表示轨迹接近真实轨迹的锚点。
只预测离Groundtruth最近的anchor的分类损失和轨迹的重建损失,综合损失为:
$$
L = \sum_k \left[ y_k L_{rec} \left( \hat{\tau}{k}, \tau{gt} \right) + \lambda L_{cls} \left( \hat{s}_k, y_k \right) \right]
$$
其中 $\lambda$ 是损失平衡因子。
训练过程:
-
锚点选择:
- 对每条真实轨迹,选择距离最近的锚点作为正样本,其余为负样本。
-
截断扩散训练:
- 扩散步数设置为 $T_{trunc}$,减少训练复杂度。
-
优化器:
- 使用AdamW优化器,结合学习率调度策略。
4. 推理灵活性
- 在推理阶段,可以动态调整采样轨迹数量 $N_{infer}$,以权衡计算资源和轨迹多样性。
- 少量去噪步骤(如2步)即可生成高质量的多模式轨迹,满足实时性需求。
5. 模型整体架构
- 感知模块(输入:传感器数据) -> 锚点高斯分布采样 -> 截断扩散策略 -> 级联扩散解码器 -> 多模式轨迹生成。
- 模型可适配多种感知输入和环境特征,确保通用性与扩展性。
6.基本结果
DiffusionDrive的性能在多个下游任务中取得了显著的提升,尤其是在以下两个关键数据集上:
6.1NAVSIM数据集:
DiffusionDrive以88.1 PDMS超越了所有现有方法。比传统多模式方法(如Hydra-MDP)提升了5.1 PDMS,同时仅需20个锚点,显著减少了计算开销。推理速度达到45 FPS(使用NVIDIA 4090 GPU),远高于传统扩散策略的7 FPS。
6.2 nuScenes数据集:
在较简单的场景中,DiffusionDrive展现了更低的平均L2误差(0.57米)和碰撞率(0.08%),优于SparseDrive等基线模型。
推理效率提升1.8倍,同时降低了20.8%的L2误差和63.6%的碰撞率。
总结
相较于传统的单模式回归(如Transfuser),DiffusionDrive不仅显著提高了多模式轨迹的生成能力,还减少了模式坍缩现象。
在与固定词汇采样方法(如VADv2)的对比中,DiffusionDrive避免了对大规模锚点集合的依赖,提升了适应复杂交通场景的能力。