0. 简介
最近,扩散模型已经成为机器人策略学习的一种强大的生成技术,能够对多模式动作分布进行建模。利用其端到端自动驾驶的能力是一个有前途的方向。然而,机器人扩散策略中的大量去噪步骤和交通场景的更动态、开放世界的性质对以实时速度生成多样化的驾驶动作提出了实质性的挑战。为了解决这些挑战,《DiffusionDrive: Truncated Diffusion Model for End-to-End Autonomous Driving》提出了一种新的截断扩散策略,该策略结合了先前的多模式锚并截断扩散时间表,使模型能够从锚定高斯分布到多模式驾驶动作分布学习去噪。此外,我们设计了一个有效的级联扩散解码器,用于增强与条件场景上下文的交互。提出的模型,扩散驱动,证明了10×与普通扩散策略相比,减少了去噪步骤,只需两步即可实现卓越的多样性和质量。相关的代码将会在Github上开源。
1. 主要贡献
为了增强与条件场景上下文的交互,我们提出了一种高效的基于Transformer的扩散解码器,该解码器不仅与来自感知模块的结构化查询进行交互,还通过稀疏可变形注意机制与鸟瞰图(BEV)和透视图(PV)特征进行交互。此外,我们引入了一种级联机制,在每个去噪步骤中迭代地细化扩散解码器中的轨迹重建。
凭借这些创新,我们推出了DiffusionDrive,这是一种用于实时端到端自动驾驶的扩散模型。我们在以规划为导向的NAVSIM数据集上对我们的方法进行了基准测试,使用非反应性仿真和闭环评估。DiffusionDrive在NAVSIM navtest分割上以对齐的ResNet-34骨干网络实现了88.1 PDMS,显著超越了之前的最先进方法。即使与NAVSIM挑战赛获胜解决方案Hydra-MDP-V8192-W-EP [22]相比,该方案遵循VADv2,使用8192个锚定轨迹,并进一步结合后处理和额外监督,DiffusionDrive仍然通过直接从人类示范中学习并在不进行后处理的情况下推断,超越了1.6 PDMS,同时在NVIDIA 4090上以45 FPS的实时速度运行。
我们进一步在流行的nuScenes数据集[2]上验证了DiffusionDrive的优越性,通过开放循环评估,DiffusionDrive的运行速度比VAD快1.8倍,并且在相同的ResNet-50骨干网络下,L2误差降低了20.8%,碰撞率降低了63.6%,展示了最先进的规划性能。我们的贡献可以总结如下:
• 我们首次将扩散模型引入端到端自动驾驶领域,并提出了一种新颖的截断扩散策略,以解决在将普通扩散策略直接应用于交通场景时出现的模式崩溃和计算开销过大的问题。
• 我们设计了一种高效的基于变换器的扩散解码器,以级联方式与条件信息进行交互,从而实现更好的轨迹重建。
• DiffusionDrive在没有额外复杂性的情况下,显著超越了之前的最先进方法,在相同骨干网络下,在NAVSIM navtest分割上实现了创纪录的88.1 PDMS,同时在NVIDIA 4090上保持45 FPS的实时性能。
• 我们定性展示了DiffusionDrive能够生成更具多样性和合理性的轨迹,在各种具有挑战性的场景中展现出高质量的多模态驾驶行为。
2. 初步介绍
2.1 初步任务表述
端到端自动驾驶以原始传感器数据作为输入,并预测自我车辆的未来轨迹。轨迹表示为一系列航点,记作 τ = { ( x t , y t ) } t = 1 T f \tau = \{(x_t, y_t)\}_{t=1}^{T_f} τ={(xt,yt)}t=1Tf,其中 T f T_f Tf 表示规划时间范围,而 ( x t , y t ) (x_t, y_t) (xt,yt) 是当前自我车辆坐标系下时间 t t t 每个航点的位置。
2.1 条件扩散模型
条件扩散模型将前向扩散过程视为逐渐向数据样本添加噪声,其定义为:
q ( τ i ∣ τ 0 ) = N ( τ i ; α ˉ i τ 0 , ( 1 − α ˉ i ) I ) , q(\tau^i | \tau^0) = \mathcal{N}(\tau^i; \sqrt{\bar{\alpha}^i} \tau^0, (1 - \bar{\alpha}^i) I), q(τi∣τ0)=N(τi;αˉiτ0,(1−αˉi)I),
其中 τ 0 \tau^0 τ0 是干净的数据样本, τ i \tau^i τi 是时间 i i i 的带噪声数据样本(注意:我们使用上标 i i i 表示扩散时间步)。常数 α ˉ i = ∏ s = 1 i α s = ∏ s = 1 i ( 1 − β s ) \bar{\alpha}^i = \prod_{s=1}^{i} \alpha^s = \prod_{s=1}^{i} (1 - \beta^s) αˉi=∏s=1iαs=∏s=1i(1−βs),其中 β s \beta_s βs 是噪声调度。我们训练反向过程模型 f θ ( τ i , z , i ) f_\theta(\tau^i, z, i) fθ(τi,z,i),以在条件信息 z z z 的指导下从 τ i \tau^i τi 预测 τ 0 \tau^0 τ0,其中 θ \theta θ 是可训练的模型参数。在推理过程中,训练好的扩散模型 f θ f_\theta fθ 逐步从在高斯分布中采样的随机噪声 τ T \tau_T τT 精炼到预测的干净数据样本 τ 0 \tau_0 τ0,其定义为:
p θ ( τ 0 ∣ z ) = ∫ p ( τ T ) ∑ i = 1 T p θ ( τ i − 1 ∣ τ i , z ) d τ 1 : T . p_\theta(\tau^0 | z) = \int p(\tau^T) \sum_{i=1}^{T} p_\theta(\tau^{i-1} | \tau^i, z) d\tau^{1:T}. pθ(τ0∣z)=∫p(τT)i=1∑Tpθ(τi−1∣τi,z)dτ1:T.
3. 调研内容
3.1 将Transfuser [6] 转变为条件扩散模型
我们从代表性的确定性端到端规划器Transfuser [6] 开始,通过简单地用条件扩散模型UNet替换回归多层感知器(MLP)层,转变为生成模型TransfuserDP,遵循经典扩散策略 [5]。在评估过程中,我们随机采样噪声,并通过20个步骤逐步精炼它。表2显示,TransfuserDP在规划质量上优于确定性的Transfuser。
3.2 模式崩溃
为了进一步研究经典扩散策略在驾驶中的多模态特性,我们从高斯分布中采样了20个随机噪声,并使用20个步骤对其进行去噪。如图2所示,不同的随机噪声在去噪过程中收敛到相似的轨迹。为了定量分析模式崩溃现象,我们定义了一个基于每个去噪轨迹与所有去噪轨迹的并集之间的平均交并比(mIoU)的模式多样性评分D:
D = 1 − 1 N ∑ i = 1 N Area ( τ i ∩ ∑ j = 1 N τ j ) Area ( τ i ∪ ∑ j = 1 N τ j ) , D=1− \frac{1}{N} \sum_{i=1}^{N} \frac{\text{Area}(\tau_i \cap \sum_{j=1}^{N} \tau_j)}{\text{Area}(\tau_i \cup \sum_{j=1}^{N} \tau_j)} , D=1−N1i=1∑NArea(τi∪∑j=1Nτj)Area(τi∩∑j=1Nτj),
其中, τ i \tau_i τi表示第 i i i个去噪轨迹, N N N是采样轨迹的总数, ∑ j = 1 N τ j \sum_{j=1}^{N} \tau_j ∑j=1Nτj是所有去噪轨迹的并集。更高的mIoU值表示去噪轨迹的多样性较低。表2中的定量模式多样性结果进一步验证了图2中所呈现的观察结果。
图2. Transfuser、TransfuserDP 和 DiffusionDrive 在 NAVSIM navtest 划分的挑战场景中的定性比较。使用来自前置摄像头和激光雷达的相同输入,DiffusionDrive 实现了最高的规划质量,获得了表2中所示的最高得分轨迹。我们在前视图中渲染了 DiffusionDrive 预测的多样化轨迹(以高亮显示)。图 (a) 和 (b) 显示,DiffusionDrive 的最高得分轨迹在直行和左转时均与真实轨迹紧密匹配。此外,DiffusionDrive 的前十名得分轨迹展示了高质量的变道能力——这是在多模式的 TransfuserDP 中未观察到的,而 Transfuser 则无法实现这一点。
3.3 去噪开销较重
DDIM [29] 扩散策略需要20个去噪步骤将随机噪声转化为可行轨迹,这引入了显著的计算开销,使得每秒帧数(FPS)从60降至7,如表2所示,这使得其在实时在线驾驶应用中变得不切实际。
表1. 在规划导向的NAVSIM导航测试分割上,使用闭环指标的比较。“C&L”表示同时使用相机和激光雷达作为传感器输入。“V8192”表示8192个锚点。“Hydra-MDP-V8192-W-EP”是Hydra-MDP [22] 的一个变体,经过进一步训练以适应EPe评估指标,并从基于规则的评估器获得额外的监督,同时使用加权置信度后处理。Diffusion Drive仅从人类演示中学习,并在没有后处理的情况下进行推断。最佳和第二佳结果用粗体和下划线表示。
表2. 从Transfuser到Diffusion Drive的路线图,基于NAVSIM导航测试分割。“TransfuserDP”表示使用经典DDIM扩散策略 [5] 的Transfuser。“TransfuserTD”表示使用截断扩散策略的Transfuser。“Step Time”表示每个去噪步骤的运行时间。“FPS”和运行时间是在NVIDIA 4090 GPU上测量的。“D”表示在公式(3)中定义的模式多样性评分。
4. 截断扩散
人类驾驶遵循固定的模式,这与经典扩散策略中的随机噪声去噪不同。基于此,我们提出了一种截断扩散策略,该策略从锚定的高斯分布开始去噪过程,而不是标准高斯分布。为了使模型能够学习从锚定的高斯分布到所需驾驶策略的去噪,我们在训练过程中进一步截断扩散计划,仅向锚点添加少量高斯噪声。
4.1 训练
我们首先通过向训练集上通过K-Means聚类得到的锚点 { a k } k = 1 N anchor \{a_k\}^{N_{\text{anchor}}}_{k=1} {ak}k=1Nanchor 添加高斯噪声来构建扩散过程,其中 a k = { ( x t , y t ) } t = 1 T f a_k = \{(x_t, y_t)\}^{T_f}_{t=1} ak={(xt,yt)}t=1Tf。我们截断扩散噪声计划,以将锚点扩散到锚定的高斯分布:
τ k i = α ˉ i a k + ( 1 − α ˉ i ) ϵ , ϵ ∼ N ( 0 , I ) , (4) \tau^i_k = \sqrt{\bar{\alpha}^i a_k + (1 - \bar{\alpha}^i) \epsilon}, \quad \epsilon \sim N(0, I), \tag{4} τki=αˉiak+(1−αˉi)ϵ,ϵ∼N(0,I),(4)
其中 i ∈ [ 1 , T trunc ] i \in [1, T_{\text{trunc}}] i∈[1,Ttrunc] 且 T trunc ≪ T T_{\text{trunc}} \ll T Ttrunc≪T 是截断的扩散步骤。
在训练过程中,扩散解码器 f θ f_\theta fθ 以 N anchor N_{\text{anchor}} Nanchor 个噪声轨迹 { τ k i } k = 1 N anchor \{\tau^i_k\}^{N_{\text{anchor}}}_{k=1} {τki}k=1Nanchor 为输入,预测分类分数 { s ^ k } k = 1 N anchor \{\hat{s}_k\}^{N_{\text{anchor}}}_{k=1} {s^k}k=1Nanchor 和去噪轨迹 { τ ^ k } k = 1 N anchor \{\hat{\tau}_k\}^{N_{\text{anchor}}}_{k=1} {τ^k}k=1Nanchor:
{ s ^ k , τ ^ k } k = 1 N anchor = f θ ( { τ k i } k = 1 N anchor , z ) , (5) \{\hat{s}_k, \hat{\tau}_k\}^{N_{\text{anchor}}}_{k=1} = f_\theta(\{\tau^i_k\}^{N_{\text{anchor}}}_{k=1}, z), \tag{5} {s^k,τ^k}k=1Nanchor=fθ({τki}k=1Nanchor,z),(5)
其中 z z z 表示条件信息。我们将与最近锚点最接近的噪声轨迹分配给真实轨迹 τ gt \tau_{\text{gt}} τgt 作为正样本 ( y k = 1 y_k = 1 yk=1),其余作为负样本 ( y k = 0 y_k = 0 yk=0)。训练目标结合了轨迹重建和分类:
L = ∑ k = 1 N anchor [ y k L rec ( τ ^ k , τ gt ) + λ BCE ( s ^ k , y k ) ] , (6) L = \sum^{N_{\text{anchor}}}_{k=1} [y_k L_{\text{rec}}(\hat{\tau}_k, \tau_{\text{gt}}) + \lambda \text{BCE}(\hat{s}_k, y_k)], \tag{6} L=k=1∑Nanchor[ykLrec(τ^k,τgt)+λBCE(s^k,yk)],(6)
其中 λ \lambda λ 平衡简单的 L1 重建损失 L rec L_{\text{rec}} Lrec 和二元交叉熵 (BCE) 分类损失。
4.2 推理
我们使用一种截断去噪过程,该过程从锚定高斯分布中采样的噪声轨迹开始,并逐步将其去噪至最终预测。在每个去噪时间步,来自上一步的估计轨迹被传递给扩散解码器 f θ f_\theta fθ,后者预测分类分数 { s ^ k } k = 1 N infer \{\hat{s}_k\}^{N_{\text{infer}}}_{k=1} {s^k}k=1Ninfer 和坐标 { τ ^ k } k = 1 N infer \{\hat{\tau}_k\}^{N_{\text{infer}}}_{k=1} {τ^k}k=1Ninfer。在获得当前时间步的预测后,我们应用 DDIM [29] 更新规则以采样下一时间步的轨迹。