写在前面&笔者的个人理解
近年来,由于感知模型的性能持续进步,端到端自动驾驶受到了来自工业界和学术界的广泛关注,端到端自动驾驶算法直接从原始传感器采集到的信息输入中学习驾驶策略。这种基于数据驱动的方法为传统的基于规则的运动规划提供了一种可扩展且强大的替代方案,而传统的基于规则的运动规划通常难以推广到复杂的现实世界驾驶环境。为了有效地从数据中学习驾驶过程,主流的端到端规划器通常从自车查询中回归出单模轨迹,如下图所示。
然而,这种回归单模轨迹的框架模式并没有考虑到驾驶行为中固有的不确定性和多模式的性质。最近,提出的端到端自动驾驶算法VADv2引入了大量固定的锚点轨迹vocabulary。然后,根据预测的评分从这些锚点中进行采样。然而,这种大型固定vocabulary范式从根本上受到锚点轨迹数量和质量的限制,在vocabulary不足的情况下经常会失败。此外,管理大量锚点对实时的自动驾驶应用来说带来了巨大的计算挑战。
与离散化动作空间不同,扩散模型已被证明是机器人领域一种强大的生成决策策略,它可以通过迭代去噪过程的方式直接从高斯分布中采样多模式物理上合理的动作。这激励我们将机器人领域的扩散模型的成功经验复制到端到端自动驾驶领域当中。
我们将原始机器人扩散策略应用于单模回归方法Transfuser。与普通扩散策略不同,人类驾驶员遵循既定的驾驶模式,并根据实时交通状况进行动态调整。这一认识促使我们将这些先前的驾驶模式嵌入到扩散策略中,具体方法是将高斯分布划分为以先前锚点为中心的多个子高斯分布,称为anchored Gaussian分布。它是通过截断diffusion schedule来实现的,从而在先前的锚点周围引入一小部分高斯噪声,如下图所示。
为了增强与条件场景上下文的交互,我们提出了一种基于Transformer的扩散解码器,它不仅与感知模块的结构化查询交互,还通过稀疏可变形注意机制与鸟瞰图 和透视图特征交互。此外,我们引入了一种级联机制,在每个去噪步骤中迭代细化扩散解码器内的轨迹重建。
最终,我们提出了一种实时端到端自动驾驶的扩散模型,称之为DiffusionDrive。我们在NAVSIM数据集上对我们的方法进行闭环评估的基准测试。相关的实验结果表明,DiffusionDrive实现了88.1的PDMS,显著超过了之前的SOTA算法。此外,我们通过开环评估进一步验证了DiffusionDrive在nuScenes数据集上的性能, 相关的实验结果表明提出的DiffusionDrive实现了SOTA的表现结果。
论文链接:https://arxiv.org/pdf/2411.15139
算法模型网络结构&技术细节梳理
调研工作
如前文所述,我们先从非常具有代表性的端到端规划算法Transfuser开始,通过简单地将回归MLP层替换为遵循扩散策略的条件扩散模型 UNet,将其转变为生成模型。在评估过程中,我们采样随机噪声并通过20个step逐步对其进行细化,相关的实验结果如下表所示。
为了进一步研究扩散策略在驾驶中的多模式特性,我们从高斯分布中采样了20个随机噪声,并使用20个step对其进行去噪。如下图所示。
不同的随机噪声在去噪后会收敛到相似的轨迹。为了定量分析模式坍塌现象,我们定义了一个模式多样性得分D,根据每条去噪轨迹与所有去噪轨迹的并集之间的平均交并比计算得到:
相关的实验结果如下表所示。通过表格中的结果可以看出,mIoU 越高,表示去噪轨迹的多样性越低。通过可视化的结果可以看出类似的效果。此外,通过下表的实验结果还可以看出,DDIM扩散策略需要20个去噪step才能将随机噪声转换为可行轨迹,这会带来大量计算开销。这使得它对于实时在线驾驶应用来说不切实际。
截断扩散
人类的驾驶行为遵循着固定模式,不同于普通扩散策略中的随机噪声去噪。受此启发,我们提出了一种截断扩散策略,该策略从锚定高斯分布而不是从标准高斯分布开始进行去噪过程。为了使模型能够学习从锚定高斯分布到所需的驾驶策略进行去噪,我们在训练期间进一步截断扩散计划,只向锚点添加少量高斯噪声。
训练过程:我们首先通过向训练集上由K-Means 聚类的锚点添加高斯噪声来构建扩散过程。我们通过截断扩散噪声方案来将锚点扩散到锚定高斯分布,相关的计算公式如下。
在训练期间,扩散解码器将噪声轨迹作为输入,并预测分类分数和去噪轨迹,相关公式如下。
我们将最接近真实轨迹的锚点周围的噪声轨迹指定为正样本,其他轨迹指定为负样本。训练目标结合了轨迹重建和分类,计算公式如下所示。
推理过程:我们使用截断去噪过程,从锚定高斯分布中采样的噪声轨迹开始,并逐步对其进行去噪,直至完成最终预测。在每个去噪时间戳中,上一步估计的轨迹被传递给扩散解码器,该解码器预测分类分数和坐标。在获得当前时间戳的预测后,我们将 DDIM 更新规则应用于下一个时间戳的样本轨迹。
推理灵活性:我们提出的自动驾驶DiffusionDrive算法的一个关键优势在于其推理的灵活性。虽然模型是用轨迹进行训练的,但其推理过程可以容纳任意数量的轨迹样本,并可以根据计算资源或应用要求进行动态的调整。
DiffusionDrive算法整体框架图
如下图所示,展示了我们提出的算法模型DiffusionDrive的网络结构。
DiffusionDrive算法模型可以集成之前端到端规划器中使用的各种现有感知的模块,并接受不同的传感器信息作为输入。设计的扩散解码器专为复杂且具有挑战性的驾驶应用而量身定制,增强了与条件场景环境的交互。
Diffusion Decoder:给定一组从锚定高斯分布中采样的噪声轨迹,我们首先应用可变形空间交叉注意力来与基于轨迹坐标的鸟瞰图 (BEV) 或透视图 (PV) 特征进行交互。随后,在轨迹特征和从感知模块派生的代理/地图查询之间执行交叉注意力,然后接一个FFN网络。为了对扩散时间戳信息进行编码,我们使用Timestep Modulation Layer,然后是多层感知机网络,用于预测置信度得分和相对于初始噪声轨迹坐标的偏移量。该Timestep Modulation Layer的输出用作后续级联扩散解码器层的输入。DiffusionDrive 进一步重用级联扩散解码器在推理过程中迭代地对轨迹进行去噪,并在不同的去噪时间步长之间共享参数。选择置信度得分最高的最终轨迹作为输出。
实验结果&评价指标
整体性能比较
下表展现了将DiffusionDrive与NAVSIM数据集上最先进的算法模型进行比较的实验结果汇总。
此外,如下表所示,使用扩散策略将Transfuser算法模型转换为生成式Transfuser DP,可将PDMS 得分提高 0.6,并提高模式多样性得分11%。然而,它也显著增加了规划模块的开销,需要 20 倍以上的去噪step和 32 倍的时间,导致运行时开销总共增加了 650 倍。
通过采用所提出的截断扩散策略,将去噪step的数量从 20 减少到 2,同时实现了 PDMS 增加 1.1,模式多样性提高 59%。通过进一步结合所提出的扩散解码器,最终 DiffusionDrive 模型达到了 88.1 PDMS 和 74% 的模式多样性得分。相比于Transfuser DP,DiffusionDrive实现了3.5 PDMS 和 64% 模式多样性的改进, 以及去噪step减少了10倍,从而使 FPS 速度提高了 6 倍。这可以实现实时、高质量的多模式规划。
消融实验分析
下表显示了我们在扩散解码器中的设计选择的有效性。通过比较 ID-6 和 ID-1,我们可以看到所提出的扩散解码器减少了 39% 的参数,并将规划质量显著提高了 2.4 PDMS。由于缺乏与环境的丰富和层次化交互,ID-2 表现出严重的性能下降。通过比较 ID-2 和 ID-3,我们可以看到空间交叉注意对于准确规划至关重要。ID-5 表明所提出的级联机制是有效的,并且可以进一步提高性能。
下表的实验结果表明,由于起始点的选择比较合理,DiffusionDrive仅需1步即可达到良好的规划质量。进一步增加去噪步长可以提高规划质量,并使其在复杂的环境下具有灵活的推理能力。
通过下表的实验结果可以看出,消除了级联阶段数的影响。增加阶段数可以提高规划质量,但在 4 个阶段就会饱和,并且每一步都会花费更多的参数和推理时间。
由于在上文中已经有所提到,DiffusionDrive 只需从锚定高斯分布中采样可变数量的噪声即可生成不同的轨迹。下表的相关实验结果可以看出,10 个采样噪声已经可以实现不错的规划质量。通过采样更多噪声,DiffusionDrive 可以覆盖潜在的规划动作空间并提高规划质量。
由于 PDMS 规划指标基于得分最高的轨迹进行计算,而我们提出的分数评估模式多样性,因此仅凭这些指标无法完全捕捉多样化轨迹的质量。为了进一步验证多模式轨迹的质量,我们在 NAVSIM数据集上的具有挑战性的场景中可视化了 Transfuser、Transfuser DP和 DiffusionDrive 的规划结果,如下图所示。
通过可视化的结果可以看出,DiffusionDrive 生成的多模式轨迹不仅多样性,而且质量较高。在上图的a图展示的结果可以看出,DiffusionDrive 算法模型生成的得分最高的前 10 条轨迹与真实轨迹非常相似,而突出显示的前 10 条得分轨迹出人意料地试图执行高质量的车道变换。上图的b图展示的结果可以看出,突出显示的前 10 条得分轨迹也执行车道变换,相邻的低得分轨迹进一步与周围的代理交互以有效避免了碰撞的发生。
nuScenes 数据集是之前流行的端到端规划基准。由于 nuScenes 的主要场景都是简单而琐碎的情况,因此我们仅进行相关结果的比较,如下表所示。
我们根据 SparseDrive 的训练和推理方案,使用 ST-P3中提出的开环指标,在 SparseDrive之上实现了 DiffusionDrive算法模型。我们堆叠了 2 个级联扩散解码器层,并应用了具有 18 个聚类锚点的截断扩散策略。通过上表的实验结果可以看出,DiffusionDrive 将 SparseDrive 的平均 L2 误差降低了 0.04m,与之前最先进的方法相比,实现了最低的 L2 误差和平均碰撞率。同时 DiffusionDrive 算法模型也非常高效,运行速度比 VAD 快 1.8 倍,L2 误差降低了 20.8%,碰撞率降低了 63.6%。
结论
在本文中,我们提出了一种新颖的生成式驾驶决策模型 DiffusionDrive,该模型结合了所提出的截断扩散策略和高效的级联扩散解码器,用于端到端自动驾驶。全面的实验和定性比较验证了 DiffusionDrive 在规划质量、运行效率和模式多样性方面的优越性。