51c自动驾驶~合集53
我自己的原文哦~ https://blog.51cto.com/whaosoft/13431196
#DriveTransformer
上交提出:以Decoder为核心的大一统架构写在前面 & 笔者的个人理解
当前端到端自动驾驶架构的串行设计导致训练稳定性问题,而且高度依赖于BEV,严重限制了其Scale Up潜力。在我们ICLR2025工作DriveTransformer中,不同于以往算法Scale Up Vision Backbone,我们设计了一套以Decoder为核心的无需BEV的大一统架构。在Scale Up提出的类GPT式并行架构后,我们发现训练稳定性大幅提高,并且增加参数量对于决策的收益优于Scale Up Encoder。在大规模的闭环实验中,通过Scale Up新架构到0.6B,我们实现了SOTA效果。本篇论文三位共一中的游浚琦和张致远在参与本项目时分别为大二、大三的本科生。
端到端自动驾驶(E2E-AD)已成为自动驾驶领域的一种趋势,有望为系统设计提供一种数据驱动且可扩展的方法。然而现有的端到端自动驾驶方法通常采用感知 - 预测 - 规划的顺序范式,这会导致累积误差和训练不稳定性。任务的手动排序也限制了系统利用任务间协同效应的能力(例如,具有规划感知的感知以及基于博弈论的交互式预测和规划)。此外现有方法采用的dense BEV表示在大范围感知和长时序融合方面带来了计算挑战。为应对这些挑战,我们提出了DriveTransformer,这是一种简化的易于扩展的端到端自动驾驶框架,具有三个关键特性:任务并行(所有Agent、地图和规划查询在每个模块中直接相互交互)、稀疏表示(任务查询直接与原始传感器特征交互)和流处理(任务查询作为历史信息存储和传递)。因此,新框架由三个统一操作组成:任务自注意力、传感器交叉注意力和时序交叉注意力,这显著降低了系统的复杂性,并带来了更好的训练稳定性。DriveTransformer在模拟闭环基准测试Bench2Drive和现实世界开环基准测试nuScenes中均实现了最先进的性能,且帧率较高。
简介
近年来,自动驾驶一直是备受关注的话题,该领域也取得了显著进展。其中最令人兴奋的方法之一是端到端自动驾驶(E2E-AD),其目标是将感知、预测和规划集成到一个框架中。端到端自动驾驶因其数据驱动和可扩展的特性而极具吸引力,能够通过更多数据实现持续改进。
尽管具有这些优势,但现有的端到端自动驾驶方法大多采用感知 - 预测 - 规划的顺序流程,其中下游任务严重依赖于上游查询。这种顺序设计可能导致累积误差,进而导致训练不稳定。例如,UniAD的训练过程需要采用多阶段方法:首先,预训练BEVFormer编码器;然后,训练TrackFormer和MapFormer;最后,训练MotionFormer和规划器。这种分段式的训练方法增加了在工业环境中部署和扩展系统的复杂性和难度。此外,任务的手动排序可能会限制系统利用协同效应的能力,例如具有规划感知的感知以及基于博弈论的交互式预测和规划。
现有方法面临的另一个挑战是现实世界的时空复杂性。基于鸟瞰图(BEV)的表示由于BEV网格的密集性,在更大范围上的检测方面遇到计算挑战。此外,由于梯度信号较弱,基于BEV方法的图像骨干网络未得到充分优化,这阻碍了它们的扩展能力。在时序融合方面,基于BEV的方法通常存储历史BEV特征进行融合,这在计算上也非常耗时。总之,基于BEV的方法忽略了3D空间的稀疏性,丢弃了每一帧的任务查询,这导致了大量的计算浪费,从而影响了效率。
最新的工作ParaDrive试图通过切断所有任务之间的连接来缓解不稳定性问题。然而,它仍然受到昂贵的BEV表示的困扰,并且其实验仅限于开环,无法反映实际的规划能力。为解决这些不足,我们引入了DriveTransformer,这是一个高效且可扩展的端到端自动驾驶框架,具有图2所示的三个关键属性:
任务并行:所有任务查询在每个模块中直接相互交互,促进跨任务知识转移,同时在没有明确层次结构的情况下保持系统稳定。
稀疏表示:任务查询直接与原始传感器特征交互,提供了一种高效直接的信息提取方式,符合端到端优化范式。
流处理:时序融合通过先进先出队列实现,该队列存储历史任务查询,并通过时序交叉注意力进行融合,确保效率和特征重用。
DriveTransformer为端到端自动驾驶提供了一种统一、并行和协同的方法,便于训练和扩展。因此,DriveTransformer在CARLA模拟下的Bench2Drive中实现了最先进的闭环性能,在nuScenes数据集上实现了最先进的开环规划性能。
相关工作回顾
端到端自动驾驶(E2E-AD)的概念可以追溯到20世纪80年代。CIL训练了一个简单的卷积神经网络(CNN),将前视相机图像直接映射到控制命令。CILRS对其进行了改进,引入了一个辅助任务来预测自动驾驶车辆的速度,解决了与惯性相关的问题。PlanT方法建议在教师模型中使用Transformer架构,而LBC则专注于使用特权输入对教师模型进行初始训练。此后,Zhang等人等研究开始探索强化学习以创建驾驶策略。在这些进展的基础上,学生模型得以开发。在随后的研究中,多传感器的使用变得普遍,提升了模型的能力。Transfuser利用Transformer来融合相机和激光雷达数据。LAV采用了PointPainting技术,Interfuser将安全增强规则纳入决策过程。进一步的创新包括MMFN使用VectorNet进行地图编码,以及ThinkTwice为学生模型引入类似DETR的可扩展解码器范式。ReasonNet提出了专门的模块来改进对时序和全局信息的利用,而Jaeger等人则提出了一种基于分类的方法来处理学生模型的输出,以减轻平均化问题。
在另一个明确进行自动驾驶子任务的分支中,ST-P3将检测、预测和规划任务集成到一个统一的鸟瞰图(BEV)分割框架中。此外,UniAD使用Transformer连接不同任务,VAD提出了矢量化表示空间。ParaDrive去除了所有任务之间的连接,而BEVPlanner则去除了所有中间任务。与我们的工作同期,还有基于稀疏查询的方法。然而,它们仍然遵循顺序流程,而本文提出的DriveTransformer将所有任务统一到并行Transformer范式中。
详解DriveTransformer
给定原始传感器输入(例如多视图图像),DriveTransformer旨在输出多个任务的结果,包括目标检测、运动预测、在线地图构建和路径规划。每个任务由其相应的查询处理,这些查询直接相互交互,从原始传感器输入中提取信息,并整合历史信息。算法框架如图2所示。
初始化与标记化
在DriveTransformer进行信息交换之前,所有输入都被转换为统一的表示形式——标记(token)。受DAB-DETR的启发,所有标记由两部分组成:用于语义信息的语义嵌入和用于空间定位的位置编码。在图3中,我们展示了该过程,并在下面详细说明。
- 传感器标记:来自周围相机的多视图图像由诸如ResNet的骨干网络分别编码为的语义嵌入,其中是相机的数量,和是分块后特征图的高度和宽度,是隐藏维度。为了编码传感器特征的位置信息,我们采用中的3D位置编码。具体来说,对于每个像素坐标为的图像块,其在3D空间中的对应光线可以用个等间距的3D点表示:,其中和分别是相机的外参矩阵和内参矩阵,是第个3D点的深度值。然后,将同一光线中各点的坐标连接起来,并输入到多层感知器(MLP)中,以获得每个图像块的位置编码,所有图像块的3D位置编码表示为。
- 任务标记:为了对异构驾驶场景进行建模,初始化了三种类型的任务查询以提取不同信息:(I)Agent查询代表动态对象(车辆、行人等),将用于进行目标检测和运动预测。(II)地图查询代表静态元素(车道、交通标志等),将用于进行在线地图构建。(III)自车查询代表车辆的潜在行为,将用于进行路径规划。遵循DAB-DETR,Agent查询和地图查询的语义嵌入均随机初始化为可学习参数和,其中和是Agent查询和地图查询的数量,为预定义超参数。它们的位置编码和在预定义的感知范围内均匀初始化。对于规划查询,其语义嵌入类似于BEVFormer,通过MLP对车载总线信息进行编码得到,而其位置编码初始化为零。
标记交互
DriveTransformer中的所有信息交换均由标准注意力机制建立,确保了可扩展性和易于部署。因此,该模型可以在一个阶段内进行训练,并表现出强大的可扩展性,这将在实验部分展示。在以下小节中,我们描述DriveTransformer每一层采用的三种信息交换类型,如图4所示。
- 传感器交叉注意力(SCA):在任务和原始传感器输入之间建立了直接路径,实现了端到端学习且无信息损失。SCA的计算方式为:
其中表示更新后的查询。通过这种方式,原始传感器标记根据语义和空间关系与任务查询进行匹配,以端到端的方式提取特定任务信息,且无信息损失。值得注意的是,通过采用3D位置编码,DriveTransformer避免了构建BEV特征,这种方式高效且梯度消失问题较少,有利于模型扩展。
- 任务自注意力(TSA):实现了任意任务之间的直接交互,没有明确的约束,促进了诸如具有规划感知的感知和基于博弈论的交互式预测和规划等协同效应。TSA的计算方式为: [] 通过消除手动设计的任务依赖关系,任务之间的交错关系可以通过注意力以数据驱动的方式灵活学习,这有助于模型扩展。相比之下,UniAD由于训练早期阶段的不一致性,不得不采用多阶段训练策略,因为不准确的上游模块会影响下游模块,最终导致整个训练崩溃。
- 时序交叉注意力:整合了先前观察到的历史信息。现有范式使用历史BEV特征来传递时序信息,这带来了两个缺点:(a)维护长期BEV特征成本高昂;(b)先前携带强先验语义和空间信息的任务查询被浪费性地丢弃。受StreamPETR的启发,DriveTransformer分别为每个任务维护先进先出(FIFO)查询队列,并在每一层对队列中的历史查询进行交叉注意力计算,以融合时序信息,如图5所示。
具体来说,将、、及其相应的位置编码、、表示为DriveTransformer在时序步时最后一层的自车查询、Agent查询和地图查询。假设当前时序步为,我们维护FIFO队列、和,其中是一个预设超参数,用于控制时序队列的长度。在每个时序步之后,当前最后一层的任务查询被推送到队列中,而时刻的任务查询被弹出。此外,由于DETR风格的方法中存在冗余查询,对于Agent和地图查询,只保留那些置信度得分在前的查询,其中是一个超参数。时序交叉注意力将历史查询作为键(Key)和值(Value)。由于不同时序步的自车参考点可能不同,历史查询的位置编码(PE)被转换到当前坐标系(自车转换):
其中
其中是转换后的位置编码,是从时序步到的坐标转换矩阵。此外,由于其他Agent可能有自己的运动,我们进行DiT风格的自适应层归一化(ada-LN)用于运动补偿:
其中
其中层归一化的权重和偏差由时序步时Agent的预测速度和时序步与当前时序步之间的时序间隔控制。此外,我们还将相对时序嵌入设置为以表示不同的时序步,时序交叉注意力的计算方式为:
其中
- 纯注意力架构:总之,DriveTransformer是由多个模块堆叠而成,每个模块包含上述三种注意力机制和一个前馈神经网络(FFN):
其中和是层索引,FFN指Transformer中的MLP,为简洁起见,我们省略了位置编码、残差连接和预层归一化。请注意,原始传感器标记和历史信息、、在所有模块中共享。
基于DETR的任务头设计
受DETR启发,在每个模块后设置任务头,逐步优化预测结果,同时位置编码(PE)也会相应更新。接下来的部分将介绍各任务的具体设计和PE的更新策略,如图6所示。
- 目标检测与运动预测:现有的端到端方法仍采用经典的检测 - 关联 - 预测流程,由于关联过程本身的复杂性,这种流程会给训练带来不稳定性。例如在UniAD中,必须先对用于3D目标检测的BEVFormer进行预训练,以避免TrackFormer训练发散,并且在对MotionFormer和规划头进行端到端训练之前,必须先训练MapFormer和TrackFormer,这就导致其需要采用多阶段训练策略,从而限制了模型的扩展性。
为解决这一问题,DriveTransformer采用了更端到端的方法:不进行跟踪,而是将相同的Agent查询输入到不同的任务头中,以此进行目标检测和运动预测。同一Agent的相同特征会自然地在检测和预测任务之间建立关联。在时序关联方面,由于时序交叉注意力机制是在当前标记和所有历史标记之间进行计算的,因此避免了显式的关联操作,取而代之的是基于学习的注意力机制。为进一步提高训练稳定性并减少这两个任务之间的干扰,运动预测的标签会被转换到每个Agent的局部坐标系中,这样其损失就完全不受检测结果的影响。只有在推理时,才会根据检测结果将预测的路径点转换到全局坐标系中,用于计算与运动预测相关的指标。
- 在线地图构建:该领域近期的研究进展表明,由于地图折线分布的不规则性和多样性,点级特征检索比实例级特征检索更为重要。因此,在进行传感器交叉注意力计算时,我们将每个地图查询复制次,并为每个单点分配相应的位置编码。这样,对于较长的折线,每个点都能更好地检索原始传感器信息。为了将单独的点级地图查询整合为实例级查询,供其他模块使用,我们采用了带有最大池化层和多层感知器(MLP)的轻量级PointNet。
- 路径规划:我们将自动驾驶车辆的未来运动建模为高斯混合模型,以避免模式平均问题,这在运动预测领域是一种常用的方法。具体来说,我们根据轨迹的方向和距离,将所有训练轨迹分为六类:直行、停车、左转、急左转、右转、急右转。为生成这些模式的轨迹,我们通过将正弦和余弦编码的位置输入到MLP中,生成六个模式嵌入,然后将它们添加到车辆自身特征中,以预测六种特定模式下的车辆轨迹。在训练过程中,只有与真实模式对应的轨迹才会用于计算回归损失,即采用赢家通吃的策略,同时我们还训练一个分类头来预测当前模式。在推理时,具有最高置信度得分的模式所对应的轨迹将用于计算指标或执行。
- 从粗到精优化:DETR系列的成功证明了从粗到精的端到端学习优化方法的有效性。在DriveTransformer中,所有任务查询的位置编码(PE)会在每个模块后根据当前预测结果进行更新。具体而言,地图和Agent的位置编码会通过MLP,根据其预测位置和语义类别进行编码,以捕捉元素之间的空间和语义关系。车辆自身的位置编码则通过MLP,根据预测的规划轨迹进行编码,以捕捉车辆的意图,便于后续可能的交互。与DETR类似,在训练过程中,所有模块的任务头都会计算损失,而在推理时,我们只使用最后一个模块的输出结果。
损失函数与优化
DriveTransformer采用单阶段训练方式,在这种方式下,各个任务可以在任务自注意力机制中逐渐学习相互之间的关系,同时在传感器交叉注意力和时序交叉注意力机制的作用下,不会影响彼此的基本收敛。模型包含检测损失(基于DETR的匈牙利匹配损失)、预测损失(赢家通吃式损失)、在线地图构建损失(基于MapTR的匈牙利匹配损失)以及路径规划损失(赢家通吃式损失)。我们通过调整权重,确保所有损失项的量级都在1左右,整体损失函数如下:
实验结果分析
数据集与基准测试
我们使用Bench2Drive,这是一种基于CARLA Leaderboard 2.0的端到端自动驾驶闭环评估协议。它提供了一个官方训练集,为了与所有其他基线方法进行公平比较,我们使用其基础集(1000个片段)。我们使用官方的220条路线进行评估。此外,我们还在nuScenes开环评估中,将我们的方法与其他最先进的基线方法进行比较。DriveTransformer有三种不同规模的模型:
在与最先进的方法进行比较时,我们报告DriveTransformer-Large的结果。在进行消融研究时,由于在Bench2Drive的220条路线上进行评估可能需要数天时序,我们选择10个具有代表性的场景(即Dev10),这些场景平衡了不同的行为、天气和城镇情况,并报告DriveTransformer-Base在这些场景上的结果,以便快速验证。
与SOTA对比
我们在表1、表2和表3中将DriveTransformer与最先进的端到端自动驾驶方法进行比较。可以观察到,DriveTransformer始终优于其他最先进的方法。从表1中可以看出,与UniAD和VAD相比,DriveTransformer的推理延迟更低。值得注意的是,由于采用了统一、稀疏和流式的Transformer设计,DriveTransformer在H800(80G)上训练时的批次大小可以达到12,而UniAD的批次大小为1,VAD的批次大小为4。
消融研究
在消融研究中,所有闭环实验都在Dev10上进行,Dev10是Bench2Drive 220条路线的一个子集,所有开环实验结果则基于Bench2Drive官方验证集(50个片段)。如果未特别说明,我们使用一个较小的模型(6层,512维隐藏层)进行消融研究,以节省计算资源。我们将开源Dev10协议、模型代码和模型检查点。
- 缩放研究:基于Transformer的范式具有极强的可扩展性。由于DriveTransformer由Transformer构成,我们研究了同时增加层数和隐藏层维度时的缩放行为,并将该策略与类似中缩放图像骨干网络的策略进行比较,结果如图7所示。可以观察到,与缩放图像骨干网络相比,扩大解码器部分(即三种注意力机制的层数和宽度)能带来更多收益。这很自然,因为前者直接为规划任务增加了更多计算量。另一方面,对于感知任务,扩大解码器与扩大图像骨干网络的效果趋势相似,这证明了DriveTransformer的泛化能力。然而,它仍落后于大规模视觉语言预训练的图像骨干网络——EVA02-CLIP-L,这与中的发现一致。研究如何将视觉语言模型(VLLM)与自动驾驶相结合,可能是一个重要的研究方向。
- 范式设计研究:在表5中,我们对DriveTransformer的设计进行了消融研究。可以得出以下结论:❶基于表5a,三种注意力机制都有帮助。❷传感器交叉注意力尤为重要,因为没有传感器信息,模型就会盲目驾驶。❸时序信息的影响最。❹任务自注意力可以提高驾驶得分,因为自车查询可以利用检测到的物体和地图元素进行规划。❺基于表5b,我们发现丢弃辅助任务会导致性能下降,这可能是因为用高维输入(周围相机图像)去拟合单一的规划输出相当困难。实际上,在端到端自动驾驶领域,采用辅助任务来规范学习到的表示是一种常见做法。❻单阶段训练足以使模型收敛,而感知预训练(即两阶段训练)并没有优势。这源于任务之间没有手动设定的依赖关系,因此所有任务都可以首先从原始传感器输入和历史信息中学习,而不会相互影响收敛。❼作为一个复杂的基于Transformer的框架,我们发现去除中间层的监督会导致训练崩溃。可能需要进一步探索如何仅依靠最终监督来扩展模型结构。
- 任务设计研究:在表6中,我们对任务头的设计进行了消融研究,得出以下结论:❶对于表6a,在局部坐标系中制定预测输出,解耦了目标检测和运动预测。结果,这两个任务可以分别优化各自的目标,而共享的输入Agent特征自然地关联了同一Agent。卓越的性能证明了避免直接在全局坐标系中进行预测的有效性。❷对于表6b,传感器交叉注意力中的点级位置编码在在线地图构建中能带来明显更好的结果,这表明扩展车道检测的潜在感知范围是有效的。❸对于表6c,多模式规划明显优于单模式规划。通过可视化,我们观察到多模式规划在需要微调转向的场景中能实现更好的控制。这是因为使用L2损失的单模预测将输出空间建模为单一的高斯分布,因此会受到模式平均的影响。
鲁棒性分析
自动驾驶作为一项户外任务,经常会遇到各种事件和故障,因此考察系统的鲁棒性是一个重要的研究方向。为此,我们采用了中的4种设置:❶相机故障:将两个相机遮罩为全黑。❷标定错误:在相机外参中添加旋转和平移噪声。❸运动模糊:对图像应用运动模糊。❹高斯噪声:对图像添加高斯噪声。从表7和表8可以看出,与VAD相比,DriveTransformer表现出显著更好的鲁棒性。这可能是因为VAD需要构建鸟瞰图(BEV)特征,而该特征对感知输入较为敏感。另一方面,DriveTransformer直接与原始传感器特征交互,因此能够忽略那些故障或有噪声的输入,从而表现出更好的鲁棒性。
结论
在本研究中,我们提出了DriveTransformer,这是一种基于统一Transformer架构的端到端自动驾驶范式,具有任务并行、流处理和稀疏表示的特点。它在CARLA闭环评估的Bench2Drive和nuScenes开环评估中均达到了最先进的性能,且帧率较高,证明了这些设计的有效性。然而,与现有的端到端自动驾驶系统类似,DriveTransformer将所有子任务的更新交织在一起,给整个系统的维护带来了挑战。一个重要的未来研究方向是降低它们之间的耦合度,使其更易于分别调试和维护。
#Sce2DriveX
用于场景到驾驶学习的可泛化MLLM框架
- 论文链接:https://arxiv.org/pdf/2502.14917
摘要
本文介绍了Sce2DriveX:用于场景到驾驶学习的可泛化MLLM框架。端到端自动驾驶直接将原始传感器输入映射到低级车辆控制,它是具身AI的重要组成部分。尽管目前已经在将多模态大型语言模型(MLLMs)应用于高级交通场景语义理解方面取得了成功,但是将这些概念语义理解有效地转化为低级运动控制指令和在跨场景驾驶中实现泛化和共识仍然具有挑战性。本文引入了Sce2DriveX,这是一种类人的驾驶思维链(CoT)推理MLLM框架。Sce2DriveX利用局部场景视频和全局BEV地图中的多模态联合学习,以深入理解远距离时空关系和道路拓扑,从而增强其在3D动态/静态场景中的全面感知和推理能力,并且实现了跨场景的驾驶泛化。在此基础上,它重建了人类驾驶固有的隐式认知链,涵盖了场景理解、元行为推理、行为解释分析、运动规划和控制,从而进一步缩小了自动驾驶和人类思维过程之间的差距。为了提高模型性能,本文开发了首个为3D空间理解和长轴任务推理专门设计的视觉问答(VQA)驾驶指令数据集。大量实验表明,Sce2DriveX从场景理解到端到端驾驶均实现了最先进的性能,并且在CARLA Bench2Drive基准上实现了鲁棒的泛化性。
主要贡献
本文的主要贡献总结如下:
1)本文提出了Sce2DriveX,这是类人的CoT推理MLLM框架,旨在实现从多视图远距离场景理解到行为分析、运动规划和车辆控制驾驶过程的渐进推理学习;
2)本文构建了首个用于3D空间理解和长轴任务推理的综合VQA驾驶指令数据集,并且引入了一个面向任务的三阶段训练过程,以提高Sce2DriveX的感知推理能力;
3)大量实验表明,Sce2DriveX在场景理解、元行为推理、行为解释分析、运动规划和控制信号生成等任务中实现了最先进的性能。
论文图片和表格
总结
本文提出了Sce2DriveX,它实现了从分层场景理解到可解释端到端驾驶的渐进推理。通过对局部场景和全局地图进行多模态学习,Sce2DriveX深入理解了远距离时空关系和道路拓扑,从而增强了跨场景驾驶的泛化和共识。本文构建了首个用于3D空间理解和长轴任务推理的综合VQA驾驶数据集,并且引入了面向任务的三阶段监督微调。实验结果表明,Sce2DriveX在场景理解、元行为推理、行为判断、运动规划和控制信号生成方面表现出色。本文希望,该工作能够为MLLM在自动驾驶中的应用提供见解。