📄 论文信息

  • 标题Diffusion-Based Planning for Autonomous Driving with Flexible Guidance
  • 团队:清华大学(李升波、刘晶晶、詹仙园)× 中科院自动化所 × HAOMO.AI(毫末智行,顾维灏、艾锐)× 上海 AI Lab
  • arXiv:2501.15564(2025 年 1 月)
  • 关键词:扩散模型、闭环规划、联合预测与规划、分类器引导、DiT
  • 一句话总结:把轨迹规划重定义为"未来轨迹生成"任务,用一个 DiT 同时去噪出自车规划和他车预测,再用免训练的分类器引导在推理时按需注入安全/舒适/速度偏好,无需任何规则后处理就拿下 nuPlan 闭环 SOTA。

🤔 要解决什么问题?学习式规划的三道软肋

工业界规划长期被 规则方法(IDM、EM Planner)统治——可控、可解释,但规则枚举不完,长尾一改一片。学习式规划(行为克隆 BC)想用数据替代手写规则,却在闭环里屡屡翻车:

软肋表现后果
多模态拟合差BC 用 L2 回归"平均"人类轨迹mode averaging,输出落"无人区"
OOD 必须靠规则兜底模型直出轨迹质量差大量方法叠规则后处理,又回到规则老路
目标冲突难平衡安全/舒适/效率辅助 loss 互相打架缺"从错误中恢复"的学习信号
训完不可调想改驾驶风格得重训不满足个性化部署需求

核心判断:扩散模型有三个天然优势正好对症——能建模复杂多模态分布、生成质量高、而且有一套灵活引导机制可以在不重训的前提下调整行为。Diffusion Planner 就是把这三点在闭环规划上彻底打通的第一篇。


🏗️ Diffusion Planner 架构

Diffusion Planner 整体架构

Diffusion Planner 的架构基于 DiT(Diffusion Transformer),核心是将噪声轨迹 $\bm{x}^{(t)}$ 与异质条件 $\bm{C}$ 融合后逐步去噪。

条件去噪的数学形式

去噪目标 $\bm{x}^{(0)}$ 是一个将所有参与者未来轨迹摞起来的大矩阵:

$$\bm{x}^{(0)}=\begin{bmatrix} x_{\text{ego}}^{1} & \cdots & x_{\text{ego}}^{\tau} \\ x_{\text{nbr}_1}^{1} & \cdots & x_{\text{nbr}_1}^{\tau} \\ \vdots & \ddots & \vdots \\ x_{\text{nbr}_M}^{1} & \cdots & x_{\text{nbr}_M}^{\tau} \end{bmatrix}$$

扩散模型学习得分函数 $\bm{s}\theta$(等价于去噪网络 $\mu\theta$):

$$\mathcal{L}_\theta = \mathbb{E}_{t, \bm{x}^{(0)}, \bm{\epsilon}}\left[\big\|\mu_\theta(\bm{x}^{(t)}, t, \bm{C}) - \bm{x}^{(0)}\big\|^2\right]$$

推理时从纯噪声 $\bm{x}^{(T)}$ 开始,按 DDIM 调度逐步去噪至 $\bm{x}^{(0)}$。

条件注入方式

条件融合机制

条件类型表示融合方式
当前车辆状态(位姿)矢量拼接自注意力(多车交互)
历史轨迹 + 车道polyline 序列MLP-Mixer → 交叉注意力
静态目标(红绿灯等)单点特征MLP → 交叉注意力
导航路由 + 时间步路由序列MLP-Mixer → adaptive LayerNorm

一个反直觉的设计:自车速度/加速度被刻意剔除——实验表明这反而提升闭环表现,避免模型过度依赖瞬时速度。

联合预测与规划

联合预测与规划

传统 pipeline 将运动预测和轨迹规划串行处理。Diffusion Planner 将它们重定义为一次联合去噪——自车轨迹与邻车轨迹在同一去噪过程中协同生成,交互行为自然涌现,无需额外 loss。


💡 核心思想:任务重定义 + 联合生成

把规划和预测压成一个去噪目标

传统 pipeline 里,运动预测轨迹规划是两个串行子模块:先预测他车,再规划自车。Diffusion Planner 的第一步重定义是——把它们看成同一件事:给定条件 $\bm{C}$(车辆当前状态、历史、车道、导航),一次性联合生成自车与最近 $M$ 辆邻车的未来轨迹。

去噪目标 $\bm{x}^{(0)}$ 是一个把所有人未来轨迹摞起来的大矩阵:

$$\bm{x}^{(0)}=\begin{bmatrix} x_{\text{ego}}^{1} & \cdots & x_{\text{ego}}^{\tau} \\ x_{\text{nbr}_1}^{1} & \cdots & x_{\text{nbr}_1}^{\tau} \\ \vdots & \ddots & \vdots \\ x_{\text{nbr}_M}^{1} & \cdots & x_{\text{nbr}_M}^{\tau} \end{bmatrix}$$

其中每个状态 $x$ 只保留坐标 + 航向角的 sin/cos(足够喂给下游 LQR 控制器)。为什么这么做?因为自车和邻车是强交互的协作关系——你变道,别人就会避让。把它们放进同一个去噪过程,模型就能学到"我这样走,他会那样反应"的协同行为,而不需要额外加交互 loss。

这与 DiffusionDrive"只生成自车"的思路不同:Diffusion Planner 更激进,一次去噪 = 一次多智能体联合仿真。代价是状态维度变大,收益是交互建模更真。

条件去噪:以场景为指挥棒

训练目标是最小化去噪残差(等价于学得分函数 $\bm{s}_\theta$):

$$\mathcal{L}_\theta=\mathbb{E}\left[\big\|\mu_\theta(\bm{x}^{(t)},t,\bm{C})-\bm{x}^{(0)}\big\|^2\right]$$

条件 $\bm{C}$ 的注入是这篇的工程精华,见下节。


🏗️ 架构详解:DiT + MLP-Mixer 的精巧拼装

Diffusion Planner 建在 DiT(Diffusion Transformer) 上,核心是怎么把"噪声轨迹 $\bm{x}$“和"异质条件 $\bm{C}$“优雅融合。

1. 车辆信息整合

把噪声未来轨迹 $\bm{x}$ 与当前状态 $x^0$ 拼接作为约束(给出明确起点)。一个反直觉的细节:自车的速度、加速度被刻意剔除——实验表明这反而提升闭环表现(避免模型过度依赖瞬时速度、学会从位姿本身推规划)。多车之间用多头自注意力交互。

2. 历史/车道:MLP-Mixer 提稠密表示

历史状态和车道都是信息稀疏的矢量(polyline 点序列),直接融合很难训。作者用 MLP-Mixer 在"矢量维"和"特征维"上交替 mixing,再池化成紧凑表示:

$$\bm{S}=\bm{S}+\text{MLP}(\bm{S}^T)^T,\quad \bm{S}=\bm{S}+\text{MLP}(\bm{S})$$

两路 Mixer(车一路、车道一路)+ 静态目标 MLP,concat 后过 vanilla Transformer encoder 聚合成 $\bm{Q}_f$,再用多头交叉注意力注入到 $\bm{x}$。相比以往复杂结构设计,这是一个更统一、更简化的方案。

3. 导航信息:自适应 LayerNorm

导航(路由车道点序列)同样过 MLP-Mixer 得 $\bm{Q}_n$,与扩散时间步条件 $\bm{Q}_t$ 相加,通过 adaptive layer norm 注入所有 token——告诉模型"该往哪走 + 现在去噪到第几步”。

条件类型表示融合方式
当前车辆状态矢量拼接自注意力
历史 + 车道polyline 序列MLP-Mixer + 交叉注意力
静态目标单点特征MLP
导航 + 时间步路由序列MLP-Mixer + adaptive LN

⚔️ 灵魂创新:免训练的分类器引导

这是 Diffusion Planner 区别于所有"扩散+规划"前作的最大亮点。前人要么叠规则后处理,要么加辅助 loss 重训。Diffusion Planner 利用扩散与能量模型的近亲关系,在推理时用分类器梯度做"手术”:

$$\tilde{\bm{s}}_\theta(\bm{x}^{(t)},t)=\bm{s}_\theta(\bm{x}^{(t)},t)-\nabla_{\bm{x}^{(t)}}\mathcal{E}_\phi(\bm{x}^{(t)},t)$$

目标分布变成 $p_0(\bm{x}^{(0)})\propto q_0(\bm{x}^{(0)}),e^{-\mathcal{E}(\bm{x}^{(0)})}$,其中能量函数 $\mathcal{E}$ 编码安全/舒适/速度偏好。

关键技巧是扩散后验采样(DPS):不需要额外训练分类器,直接用已训好的去噪网络 $\mu_\theta$ 近似引导能量,完全免训练。而且不同引导(碰撞、舒适、限速)的梯度可并行计算、自由组合,按需开关。

引导能做什么

  • 强化安全:把碰撞能量推高,轨迹主动绕开占用区;
  • 调节舒适:压低大 jerk,轨迹更平顺;
  • 控制速度:引导朝期望速度收敛,适配个性化驾驶风格(保守 vs. 激进)。

论文给了同一场景下不同引导设置生成不同轨迹的可视化——一个模型,推理时换引导就换风格,无需重训。这对真实部署是极具吸引力的特性:白天激进、雨天保守,全靠引导权重切换。

为什么引导能"免训练"

其原理值得多说一句。传统分类器引导要训一个分类器 $\mathcal{E}\phi$ 去判别"这条轨迹安不安全",引入额处开销。Diffusion Planner 改用扩散后验采样(DPS):直接用已训好的去噪网络 $\mu\theta$ 在每个去噪步对当前 $\bm{x}^{(t)}$ 做一次近似 CleanFP(clean full prediction),把"反推的干净轨迹"代入能量函数算梯度。于是能量函数 $\mathcal{E}$ 可以是任意可微的代价——碰撞距离、jerk 平方、速度偏差,写个公式就能用,一行额外训练都不需要。这本质上是把"规则代价函数"重新包装成"能量引导",让规则的灵活性与生成的多模态性兼得。


🧪 实验与结果

nuPlan 闭环 SOTA

在真实世界大规模 benchmark nuPlan 上,Diffusion Planner 在学习式基线中取得闭环 SOTA不依赖任何规则精修直接用模型输出,就能与甚至超过规则方法。挂上现成后处理模块后,进一步在所有基线中登顶。

200 小时配送车数据:验证迁移性

团队额外采集了 200 小时配送车驾驶数据(多种城市工况),验证模型对不同驾驶风格的鲁棒迁移——这对"轿车训练、货车部署"的真实场景意义重大。配送车的视野、动力学、驾驶节奏都和私家车迥异,模型能在其上保持稳定闭环表现,说明它学到的不是"某种车型的动作分布",而是更本质的交互与规划规律。这也呼应了 DriveVLA-W0 的发现:学到世界表征的模型才具备跨域泛化能力,而死记动作的模型换域即崩。

闭环表现的关键细节

值得注意的是,Diffusion Planner 的闭环优势尤其体现在对抗性/罕见场景(reactive-test):当自车做出一个非典型动作,周围智能体(通过 log-replay 的非反应式仿真或反应式仿真)会产生非常规反应,那些"只会模仿"的 BC 模型在这里立刻失效,而联合建模了多车交互的 Diffusion Planner 仍能产出合理轨迹。这正是"把预测和规划一起做"最直接的红利——它对交互的敏感度是单输出自车轨迹的方法学不来的。

关键消融

  • 联合建模的威力:把预测和规划放一起训,比拆开加 loss 显著更好,证明协同行为是"涌现"出来的;
  • 剔除自车速度:去掉反而涨,反直觉但稳定;
  • 引导有效性:安全引导显著降碰撞,舒适引导降 jerk,可独立开关。

与其他扩散规划对比

维度一般扩散规划Diffusion Planner
输出仅自车轨迹自车 + M 辆邻车联合
后处理重度依赖规则无需规则
行为调整重训 / 加 loss推理时引导切换
交互建模额外 loss联合去噪自然涌现

📊 实验与结果

nuPlan 闭环 SOTA(无规则后处理)

在 nuPlan 闭环 benchmark 上,Diffusion Planner 在不使用任何规则后处理的情况下即达到学习式 SOTA:

方法闭环得分碰撞率↓驾驶评分↑
PlanTF(Transformer BC)
PLUTO(多阶段规划)中高中高
GameFormer(博弈交互)依赖规则
Diffusion Planner(无refine)
Diffusion Planner(w/ refine)SOTA最低最高

关键发现:Diffusion Planner 在对抗性/罕见场景(reactive-test) 中优势最大,因为联合生成的自车-邻车交互建模使模型能理解"我变道→他避让"的因果链。

200 小时配送车迁移

方法私家车场景配送车场景(迁移)下降幅度
PDM(规则)显著下降
GameFormer中高下降
Diffusion Planner几乎不变

配送车视野、动力学、驾驶节奏与私家车迥异,Diffusion Planner 仍保持稳定闭环表现,说明模型学到了更本质的交互规则而非记忆车型特定动作分布。

引导效果消融

引导类型碰撞率Jerk平均速度
无引导~12 m/s
+安全引导↓ 显著~11 m/s
+舒适引导↓ 显著~11.5 m/s
+速度引导(10–14 m/s)~12.5 m/s
全部组合可控

引导可并行计算、自由组合,无需额外训练——一个模型,万种风格。


⚠️ 局限与未来方向

  • 采样步数仍存在:扩散天然比单次回归多几次前向,虽能用 DDIM 加速,但对极高频率控制仍是负担;
  • 引导是软约束:概率性的引导无法 100% 保证不碰撞,安全攸关场景仍需确定性安全网;
  • 联合维度爆炸:邻车数 $M$ 增大时去噪维度线性涨,长时序 + 多车显存压力大。

我看好的后续方向:用 Flow Matching 替换 score 头进一步直化路径、用一致性蒸馏压到一步生成、与 GRPO 强化学习结合把分布对齐到奖励信号(参见本系列 AlphaDrive / PlannerRFT),以及把引导能量和可解释代价函数挂钩,让"软引导"具备"硬可审计性"。


📝 个人思考

Diffusion Planner 最打动我的,是它对"规划该建模什么“和”模型该多灵活“两个问题的双重发问。第一,它把预测与规划合并成一次去噪,本质上是承认了一个被 pipeline 范式掩盖的事实——自车和他车在交通里是一个耦合系统,拆开建模就是在丢信息。联合生成让"我变道、他避让"这种交互从"额外设计 loss"变成"去噪过程里自然涌现的副产品”,这种化繁为简的优雅,比堆模块更能体现对问题本质的理解。

第二点启发在**“免训练引导"的工程哲学**。绝大多数学习式规划把"训练完就定型"当成天经地义,要调风格只能重训或加规则。Diffusion Planner 用扩散与能量模型的等价关系,把"行为偏好"从权重里搬到推理时的梯度上——一个模型,万种风格,按需切换。这对我做产品的人是巨大诱惑:它意味着可以用一套底座服务不同品牌、不同城市、不同人群的驾驶偏好,差异化全靠引导配置实现。我认为这种"权重共享 + 推理分化"的范式,会从规划外溢到整个自动驾驶栈。

最后,它和规则方法的关系值得玩味。Diffusion Planner 不再像早期学习派那样把规则当对立面,而是用引导能量把规则的"可解释、可调"优点吸收了进来——能量函数本质就是连续化的代价函数。这暗示着学习与规则的融合不是"谁替代谁”,而是"学习负责分布,规则/能量负责偏好“的分层协作。当 PlannerRFT 这类工作再把 RL 闭环奖励叠上来,“扩散生成 + 引导偏好 + RL 对齐"很可能就是端到端规划的下一站终局。


🔗 延伸阅读

工作关系
DiffusionDrive本系列第 8 篇,扩散规划同行,轨迹初始化加速;Diffusion Planner 走联合生成路线
Diffusion-ES / PlannerRFT扩散规划 + 闭环 RL 微调,本篇的下游进化
Traffic Simulation(CTG++)多智能体联合生成的精神来源
DiT / EDM本篇的骨干与得分参数化基础
AlphaDrive本系列第 16 篇,GRPO 强化学习驾驶,与本篇引导互补

📖 这是论文精读系列的第 15 篇。当扩散模型学会"既规划又预测还能换风格”,学习式规划离真正摆脱规则拐杖还有多远?欢迎留言。