DiffusionDrive:端到端自动驾驶的截断扩散模型
24 年 11 月来自华中理工和地平线的论文“DiffusionDrive: Truncated Diffusion Model for End-to-End Autonomous Driving”。扩散模型已成为机器人策略学习的强大生成技术,能够对多模式动作分布进行建模。利用其能力实现端到端自动驾驶是一个很有前途的方向。然而,机器人扩散策略中的众多去噪步骤以及交通场景更具动态性和开放性,对实时生
24 年 11 月来自华中理工和地平线的论文“DiffusionDrive: Truncated Diffusion Model for End-to-End Autonomous Driving”。
扩散模型已成为机器人策略学习的强大生成技术,能够对多模式动作分布进行建模。利用其能力实现端到端自动驾驶是一个很有前途的方向。然而,机器人扩散策略中的众多去噪步骤以及交通场景更具动态性和开放性,对实时生成多样化驾驶动作构成巨大挑战。为了应对这些挑战,提出了一种截断扩散策略 DiffusionDrive,该策略结合了先前的多模式锚点并截断扩散调度,使模型能够学习从锚定高斯分布到多模式驾驶动作分布的去噪过程。此外,设计一个高效的级联扩散解码器,增强与条件场景上下文的交互。与普通扩散策略相比,该模型 DiffusionDrive 将去噪步减少 10 倍,仅需 2 步即可提供卓越的多样性和质量。在面向规划的 NAVSIM 数据集上,借助对齐的 ResNet- 34 主干,DiffusionDrive 无需花哨考虑即可实现 88.1 PDMS,同时在 NVIDIA 4090 上以 45 FPS 的实时速度运行。在具有挑战性的场景中的定性结果进一步证实,DiffusionDrive 可以稳健地生成各种合理的驾驶行为。
如图所示不同端到端范式的比较。(a)单模回归 [6, 13, 17]。(b)从词汇表中抽样 [3, 22]。(c)原始扩散策略 [5, 16]。(d)提出的截断扩散策略。
近年来,端到端自动驾驶因感知模型(检测 [14, 21, 35]、跟踪 [45–47]、在线地图 [24, 25, 27] 等)的进步而备受关注,这些模型直接从原始传感器输入中学习驾驶策略。这种数据驱动的方法为传统的基于规则运动规划提供了一种可扩展且强大的替代方案,而传统的基于规则运动规划通常难以推广到复杂的现实世界驾驶环境。
为了有效地从数据中学习,主流的端到端规划器(例如 Transfuser [6]、UniAD [13]、VAD [17])通常从自我查询中回归出单模式轨迹,如上图 a 所示。然而,这种范式没有考虑到驾驶行为固有的不确定性和多模式性。最近,VADv2 [17] 引入了一个大型固定锚点轨迹词汇表(4096 个锚点)来离散化连续动作空间并捕捉更广泛的驾驶行为,然后根据预测分数从这些锚点中抽样,如上图 b 所示。然而,这种大型固定词汇范式从根本上受到锚点轨迹的数量和质量的限制,通常会在词汇量之外的场景中失败。此外,管理大量锚点对实时应用而言也带来了巨大的计算挑战。扩散模型 [5] 已被证明是机器人领域一种强大的生成决策策略,而不是离散化动作空间,它可以通过迭代去噪过程直接从高斯分布中采样多模态物理上合理的动作。
端到端自动驾驶。UniAD [13] 是一项开创性的工作,它通过整合多种感知任务来增强规划性能,展示了端到端自动驾驶的潜力。VAD [17] 进一步探索使用紧凑的矢量化场景表示来提高效率。随后,一系列工作 [4、6、10、20、23、36、38、48] 采用了单轨迹规划范式来进一步提高规划性能。最近,VADv2 [3] 通过从大量固定的锚轨迹词汇表中进行评分和采样,将范式转向多模态规划。Hydra-MDP [22] 通过引入基于规则评分器的额外监督来改进 VADv2 的评分机制。SparseDrive [32] 探索了一种替代的无 BEV 解决方案。
用于交通模拟的扩散模型。在交通模拟中,人们仅利用抽象感知事实来探索驾驶扩散策略 [7、15、18、37]。MotionDiffuser [18] 和 CTG [50] 是扩散模型在多智体运动预测中的开创性应用,它们使用条件扩散模型从高斯噪声中采样目标轨迹。CTG++ [49] 进一步整合了一个大语言模型 (LLM),用于语言驱动的指导,提高了可用性并实现了逼真的交通模拟。Diffusion-ES [41] 用进化搜索取代奖励梯度引导的去噪。 VBD [15] 引入一种场景一致的场景优化器,该优化器使用具有博弈论指导的条件扩散模型来生成抽象的安全关键驾驶场景。
机器人策略学习的扩散模型。扩散策略 [5] 展示了机器人策略学习的巨大潜力,有效地捕捉了多模态动作分布和高维动作空间。扩散器 [16] 提出一种用于轨迹采样的无条件扩散模型,结合了无分类器指导和图像修复等技术来实现引导采样。随后,许多研究将扩散模型应用于各种机器人任务,包括静止操作 [1, 44]、移动操作 [40]、自主导航 [30, 42]、四足机器人运动 [31] 和灵巧操作 [39]。然而,将原始扩散策略直接应用于端到端自动驾驶带来了独特的挑战,因为它需要实时效率以及在动态和开放世界交通场景中生成合理的多模态轨迹。
端到端自动驾驶以原始传感器数据作为输入,预测自车的未来轨迹。轨迹表示为一系列航路点 τ = {(x/t, y/t)}^T/f,其中 T 表示规划范围,(x/t , y/t) 是当前自车坐标系中每个航路点在时间 t 的位置。
从代表性的确定性端到端规划器 Transfuser [6] 开始,通过简单地将回归 MLP 层替换为遵循原始扩散策略的条件扩散模型 UNet [5],将其转变为生成模型 Transfuser/DP。在评估过程中,采样随机噪声并通过 20 个步骤逐步对其进行细化。Transfuser/DP 比确定性 Transfuser 实现更好的规划质量。
如图所示在 NAVSIM navtest split 的挑战性场景中对 Transfuser、Transfuser/DP 和 DiffusionDrive 进行定性比较。使用来自前置摄像头和 LiDAR 的相同输入,DiffusionDrive 实现最高规划质量的 top-1 得分轨迹。在正面视图中渲染 DiffusionDrive 预测突出显示的不同轨迹。(a)和(b)显示,DiffusionDrive 的 top-1 得分轨迹与直行和左转的真值情况非常吻合。此外,DiffusionDrive 的前 10 名得分轨迹,展示了高质量的车道变换——这是多模态Transfuser/DP 中未观察到的能力。
DDIM [29] 扩散策略需要 20 个去噪步才能将随机噪声转换为可行轨迹,这会带来显著的计算开销,使 FPS 从 60 降低到 7,这使其对于实时在线驾驶应用来说并不实用。
人类驾驶遵循固定模式,不同于普通扩散策略中的随机噪声去噪。受此启发,本文提出一种截断扩散策略,该策略从锚定高斯分布而不是标准高斯分布开始去噪过程。为了使模型能够学习从锚定高斯分布到所需的驾驶策略进行去噪,在训练期间进一步截断扩散规划,只向锚点添加少量高斯噪声。
如图所示:通过与原始扩散策略进行比较来说明截断扩散策略。其截断扩散过程,只添加一小部分高斯噪声来扩散锚点轨迹。然后,训练扩散模型,从具有条件场景上下文的锚定高斯分布中重建真值轨迹。在推理过程中,还从锚定高斯分布中比纯高斯噪声更好的样本开始,从而截断去噪过程。
其首先向训练集上通过 K-Means 聚类的锚点 {a/k} 添加高斯噪声来构建扩散过程,其中 ak = {(x/t, y/t)}。截断扩散噪声规划,将锚点扩散到锚定高斯分布:
在训练期间,扩散解码器 f/θ 将 N 条噪声轨迹 {τ^i/k} 作为输入,并预测分类分数 {sˆk} 和去噪轨迹 {τˆk}:
将最接近真实轨迹 τ/gt 锚点周围的噪声轨迹指定为正样本(y/k = 1),其他轨迹指定为负样本(y/k = 0)。训练目标结合轨迹重建和分类:
推理。用截断去噪过程,从锚定高斯分布中采样的噪声轨迹开始,并逐步对其进行去噪以得到最终预测。在每个去噪时间步长中,上一步估计的轨迹被传递到扩散解码器 f/θ ,该解码器预测分类分数 {sˆk} 和 坐标 {τˆk}。在获得当前时间步长的 预测后,应用 DDIM [29] 更新规则来对下一个时间步长的轨迹进行采样。
推理灵活性。方法的一个关键优势在于其推理灵活性。虽然模型是使用 N/anchor 个轨迹训练的,但推理过程可以容纳任意数量的轨迹样本 N/infer,其中 N/infer 可以根据计算资源或应用要求进行动态调整。
DiffusionDrive 的整体架构如图所示。DiffusionDrive 可以集成以前的端到端规划器中使用的各种现有感知模块 [6、13、17、32],并接受不同的传感器输入。设计的扩散解码器是针对复杂且具有挑战性的驾驶应用量身定制的,它增强了与条件场景上下文的交互。
扩散解码器。给定从锚定高斯分布中采样的噪声轨迹集 {τˆk},首先应用可变形空间交叉注意 [26、35、51] 与基于轨迹坐标的鸟瞰图 (BEV) 或透视图 (PV) 特征进行交互。随后,在轨迹特征和从感知模块派生的智体/地图查询之间执行交叉注意,然后是前馈网络 (FFN)。为了对扩散时间步长信息进行编码,使用时间步长调制层,随后是多层感知器 (MLP),用于预测置信度得分和相对于初始噪声轨迹坐标的偏移量。该扩散解码器层的输出用作后续级联扩散解码器层的输入。DiffusionDrive 进一步重用级联扩散解码器,在推理过程中迭代地对轨迹进行去噪,并在不同的去噪时间步长之间共享参数。选择置信度得分最高的最终轨迹作为输出。
为了公平比较,采用与 Transfuser 相同的感知模块和 ResNet-34 主干 [11]。在扩散解码器层,采用空间交叉注意,仅按照 Transfuser 基于 BEV 的设置与 BEV 特征交互。只执行智体交叉注意,因为 Transfuser 的感知模块不包括矢量化地图构建。堆叠 2 个级联扩散解码器层,并应用具有 20 个聚类锚点的截断扩散策略。训练扩散调度被截断 50/1000 以扩散锚点,而在推理过程中,仅使用 2 个去噪步骤并选择得分最高的 1 个预测轨迹进行评估。训练和推理配方直接遵循 Transfuser:用三个裁剪和缩小的前向摄像头图像,连接为 1024×256 图像,以及栅格化的 BEV 激光雷达作为输入; DiffusionDrive 在 navtrain split 上从头开始训练 100 个 epoch,使用 AdamW 优化器在 8 个 NVIDIA 4090 GPU 上训练,总批次大小为 512,学习率设置为 6 × 10−4。未应用任何测试时间增强,navtest split 上的最终评估输出是 4 秒内的 8 个航路点轨迹。
更多推荐
所有评论(0)