重新定义端到端自动驾驶!SparseDrive:所有任务都超过现有SOTA(清华&地平线)...

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

今天自动驾驶之心为大家分享清华&地平线最新的工作—SparseDrive!重新定义端到端自动驾驶任务设计,所有任务都超过现有SOTA!如果您有相关工作需要分享,请在文末联系我们!

也欢迎添加小助理微信AIDriver004,加入我们的技术交流群

>>点击进入→自动驾驶之心端到端自动驾驶技术交流群

论文作者 | Wenchao Sun等

编辑 | 自动驾驶之心

论文链接:https://arxiv.org/pdf/2405.19620
github链接: https://github.com/swc-17/SparseDrive

写在前面 & 笔者理解

不得不说,地平线真的很喜欢在在sparse上做文章!之前开源的3D目标检测工作"Sparse4D",无论是性能还是部署端的友好程度,都在业内不小的反响。这篇论文,地平线又通过稀疏的场景表达,实现端到端的自动驾驶,达到 SOTA。命名为"SparseDrive"!

在端到端火热起来之前,成熟的模块化自动驾驶系统被分解为不同的独立任务,例如感知、预测和规划,从而导致模块间信息丢失和错误累积。相比之下,端到端范式将多任务统一到一个完全可微分的框架中,从而允许以规划为导向进行优化。尽管端到端范式具有巨大潜力,但现有方法的性能和效率都不令人满意,特别是在规划安全方面。作者将其归因于计算成本高昂的 BEV 特征以及较为简单的预测和规划设计。为此,作者探索了稀疏表示并回顾了端到端自动驾驶的任务设计,提出了一个名为 SparseDrive 的新范式。具体点说,SparseDrive 由对称稀疏感知模块和并行运动规划器组成。稀疏感知模块将检测、跟踪和在线建图与对称模型架构统一起来,学习驾驶场景的完全稀疏表示。对于运动预测和规划,我们发现这两个任务之间的巨大相似性,从而为运动规划器提出了一个并行设计。基于这种将规划建模为多模态问题的并行设计,作者提出了一种分层规划选择策略,该策略结合了碰撞感知重新评分模块,以选择合理且安全的轨迹作为最终规划输出。凭借这种有效的设计,SparseDrive 在所有任务的性能上都实现 SOTA,同时实现了更高的训练和推理效率。

为什么要做?

为了充分利用端到端范式的潜力,作者回顾了现有方法的任务设计,并认为运动预测和规划之间有三个主要相似之处被忽略了:

  • 为了预测周围智能体和自车的未来轨迹,运动预测和规划都应考虑道路智能体之间的高阶和双向交互。然而,以前的方法通常采用顺序设计进行运动预测和规划,忽略了自车对周围智能体的影响。

  • 准确预测未来轨迹需要语义信息来理解场景,几何信息来预测智能体的未来运动,这适用于运动预测和规划。虽然这些信息是在周围智能体的上游感知任务中提取的,但对于自车却被忽略了。

  • 运动预测和规划都是具有内在不确定性的多模态问题,但以前的方法只预测规划的确定性轨迹。为此,我们提出了 SparseDrive,一种以稀疏为中心的范例,

ff13de8d86bca2bec3310bc716eaa448.png

如上图所示,SparseDrive 由对称稀疏感知模块和并行运动规划器组成。利用解耦的实例特征和几何锚点作为一个实例(动态道路智能体或静态地图元素)的完整表示,对称稀疏感知将检测、跟踪和在线地图任务与对称模型架构统一起来,学习完全稀疏的场景表示。在并行运动规划器中,首先从自我实例初始化模块获得语义和几何感知的自我实例。利用来自稀疏感知的自我实例和周围智能体实例,同时进行运动预测和规划,以获得所有道路智能体的多模态轨迹。为了确保规划的合理性和安全性,采用了结合碰撞感知重新评分模块的分层规划选择策略,从多模态轨迹提案中选择最终的规划轨迹。

通过上述有效的设计,SparseDrive 发挥了端到端自动驾驶的巨大潜力,如上图c 所示。我们的基础模型 SparseDrive-B 无需任何花哨的手段,就能将平均 L2 误差降低 19.4%,并将碰撞率降低到 71.4%。与之前的 SOTA(最先进)方法 UniAD 相比,我们的小型模型 SparseDrive-S 在所有任务中都取得了优异的性能,同时训练速度提高了 7.2 倍,推理速度提高了 5.0 倍。

工作的主要贡献总结如下:

  • 我们探索了端到端自动驾驶的稀疏场景表示,并提出了一种以稀疏为中心的范式 SparseDrive,它将多个任务与稀疏实例表示统一起来。

  • 我们修改了运动预测和规划之间的巨大相似性,相应地带来了运动规划器的并行设计。我们进一步提出了一种分层规划选择策略,其中包含一个碰撞感知重新评分模块,以提高规划性能。

  • 在具有 nuScenes 数据集上,SparseDrive 在所有指标方面都超越了之前的 SOTA 方法,尤其是安全关键指标碰撞率,同时保持了更高的训练和推理效率。

相关工作

多视角3D检测(Multi-view 3D Detection)

多视角 3D 检测是自动驾驶系统安全的先决条件。LSS 利用深度估计将图像特征提升到 3D 空间,并将特征分层到 BEV 平面。后续工作将 lift-splat 操作应用于 3D 检测领域,在准确率和效率方面取得了显着提升。一些工作预定义了一组 BEV 查询并将其投影到透视视图以进行特征采样。另一条研究路线消除了对密集 BEV 特征的依赖。PETR 系列引入了 3D 位置编码和全局注意力来隐式学习视图变换。Sparse4D 系列在 3D 空间中设置显式锚点,将它们投影到图像视图以聚合局部特征并以迭代方式细化锚点。

端到端跟踪(End-to-End Tracking)

大多数多目标跟踪 (MOT) 方法采用基于检测的跟踪方式,这种方式依赖于数据关联等后处理。这种流程无法充分利用神经网络的功能。一些工作引入了轨迹查询,以流式方式对跟踪实例进行建模。MOTR 提出了轨迹感知标签分配,这迫使轨迹查询不断检测相同的目标,并遭受检测和关联之间的冲突。Sparse4Dv3 证明时间传播的实例已经具有一致性,并通过简单的 ID 分配过程实现了 SOTA 跟踪性能。

在线建图(Online Mapping)

由于高清地图构建成本高昂且耗费大量人力,在线建图被提出作为高清地图的替代方案。HDMapNet将 BEV 语义分割与后处理相结合,以获得矢量化地图实例。VectorMapNet 利用两阶段自回归变换器进行在线地图构建。MapTR 将地图元素建模为等价排列的点集,避免了地图元素定义的歧义。BeMapNet 采用分段贝塞尔曲线来描述地图元素的细节。StreamMapNet 引入了 BEV 融合和查询传播进行时间建模。

端到端运动预测(End-to-End Motion Prediction)

端到端运动预测的提出是为了避免传统流程中的级联误差。FaF 采用单个卷积网络来预测当前和未来的边界框。IntentNet 更进一步,推理高级行为和长期轨迹。PnPNet引入了一个在线跟踪模块来聚合轨迹级特征以进行运动预测。ViP3D 使用智能体查询执行跟踪和预测,以图像和高清地图作为输入。PIP 用局部矢量化地图取代了人工注释的高清地图。

端到端规划(End-to-End Planning)

端到端规划的研究自上个世纪以来一直在进行。早期的论文省略了感知和运动预测等中间任务,这些任务缺乏可解释性并且难以优化。一些研究从感知或预测结果中构建显式损失图以增强可解释性,但依靠手工制作的规则来选择损失最低的最佳轨迹。最近,UniAD 提出了一种统一的查询设计,将各种任务集成到一个面向目标的模型中,在感知、预测和规划方面取得了显著的表现。VAD 采用矢量化表示进行场景学习和规划约束。GraphAD 利用图模型进行交通场景中的复杂交互。FusionAD 将端到端驾驶扩展到多传感器输入。然而,以前的方法主要侧重于场景学习,并采用简单的预测和规划设计,没有充分考虑这两个任务之间的相似性,极大地限制了性能。

具体怎么做?

模型概述

eab6abd91ded7836b7b8029b8ee93931.jpeg

SparseDrive 的整体框架如图所示。具体来看,是由三部分组成:图像编码器、对称稀疏感知和并行运动规划器。给定多视图图像,图像编码器(包括主干网络和颈部)首先将图像编码为多视图多尺度特征图 ,其中 S 是尺度数,N 是摄像机视图数。在对称稀疏感知模块中,特征图 被聚合成两组实例,来学习驾驶场景的稀疏表示。这两组实例分别代表周围的智能体和地图元素,被输入到并行运动规划器中,与初始化的自我实例进行交互。运动规划器同时预测周围智能体和自身车辆的多模态轨迹,并通过分层规划选择策略选择一条安全轨迹作为最终规划结果。

对称稀疏感知(Symmetric Sparse Perception)

812c183dba95b4b51dd7962030f8b071.jpeg

稀疏感知模块的模型结构表现出结构对称性,将检测、跟踪和在线建图统一在一起。

Sparse Detection:周围智能体由一组实例特征 和锚框 表示,其中是锚点数,C是特征通道维度。每个锚框都格式化为位置、尺寸、偏航角和速度:

稀疏检测分支由 解码器组成,包括一个非时间解码器和 个时间解码器。每个解码器以特征图 、实例特征 和锚框 作为输入,输出更新的实例特征和细化锚框。非时间解码器以随机初始化的实例作为输入,而时间解码器的输入来自当前帧和历史帧。具体而言,非时间解码器包括三个子模块:可变形聚合、前馈网络 (FFN) 和用于细化和分类的输出层。可变形聚合模块在锚框 周围生成固定或可学习的关键点,并将它们投影到特征图 进行特征采样。实例特征 通过与采样特征求和来更新,并负责预测输出层中锚框的分类分数和偏移量。时间解码器有两个额外的多头注意层:上一帧的时间实例与当前实例之间的时间交叉注意,以及当前实例之间的自注意。在多头注意层中, 锚框被转化为高维锚嵌入 , 作为位置编码。

Sparse Online Mapping:在线建图分支与检测分支共享相同的模型结构,只是实例定义不同。对于静态地图元素,锚点被表示为具有 个点的折线:

然后,所有地图元素都可以用地图实例特征 和锚点折线 表示,其中 是锚点折线的数量。

Sparse Tracking。对于跟踪,我们遵循 Sparse4Dv3 的 ID 分配过程:一旦实例的检测置信度超过阈值 ,它就会锁定到目标上并分配一个 ID,该 ID 在整个时间传播过程中保持不变。这种跟踪策略不需要任何跟踪约束,从而为稀疏感知模块提供了优雅而简单的对称设计。

并行运动规划器(Parallel Motion Planner)

ebf69d4bc6f083f54ee60be6473809b6.jpeg

如图 4 所示,平行运动规划器由三部分组成:自我实例初始化、时空交互和分层规划选择。

Ego Instance Initialization: 与周围智能体类似,自车由自我实例特征 和自我锚框 表示。虽然自我特征在以前的方法中通常是随机初始化的,但我们认为自我特征也需要丰富的语义和几何信息来进行规划,类似于运动预测。然而,周围智能体的实例特征是从图像特征图 中聚合出来的,这对于自车来说是不可行的,因为自车处于摄像头的盲区中。因此,我们使用前置摄像头的最小特征图来初始化自我实例特征:

这样做有两个优点:

  • 最小特征图已经编码了驾驶场景的语义上下文

  • 密集特征图作为稀疏场景表示的补充,以防存在一些黑名单障碍物,而稀疏感知无法检测到这些障碍物。

对于自我锚点 ,可以自然地设置位置、尺寸和偏航角,因为我们知道自车的这些信息。对于速度,直接从地面真实速度初始化会导致自我状态泄漏。因此,我们添加了一个辅助任务来解码当前的自我状态 ,包括速度、加速度、角速度和转向角。在每一帧,我们使用上一帧的预测速度作为自我锚点速度的初始化。

Spatial-Temporal Interactions: 为了考虑所有道路智能体之间的高级交互,我们将自我实例与周围智能体连接起来以获得智能体级实例:

由于自我实例的初始化没有时间线索,这对于规划很重要,我们设计了一个大小为 的实例内存队列用于时间建模, 是存储帧的数量。然后执行三种类型的交互来聚合时空上下文:智能体时间交叉注意、智能体智能体自注意和智能体地图交叉注意。在稀疏感知模块的时间交叉注意中,当前帧的实例与所有时间实例交互,我们将其称为场景级交互。而对于这里的智能体时间交叉注意,我们采用实例级交互,使每个实例关注自身的历史信息。

然后,我们预测周围智能体和自车的多模态轨迹 ã€�和得分 , 和 是运动预测和规划的模式数, 和 是运动预测和规划的未来时间戳数, 是规划的驾驶命令数。我们使用三种驾驶命令:左转、右转和直行。对于规划,我们还从自我实例特征中预测当前的自我状态。

Hierarchical Planning Selection。现在我们有了多模态规划轨迹方案,为了选择一个安全的轨迹,我们设计了一个分层规划选择策略。首先,我们选择一个轨迹方案子集 ,对应于高级命令 。然后,采用一种新颖的碰撞感知重新评分模块来确保安全性。利用运动预测结果,我们可以评估每个规划轨迹方案的碰撞风险,对于碰撞概率高的轨迹,我们降低该轨迹的分数。在实践中,我们简单地将碰撞轨迹的分数设置为0。最后,我们选择得分最高的轨迹作为最终的规划输出。

端到端学习(End-to-End Learning)

Multi-stage Training:SparseDrive 的训练分为两个阶段。在阶段 1 中,我们从头开始训练对称稀疏感知模块,以学习稀疏场景表示。在阶段 2 中,稀疏感知模块和并行运动规划器一起训练,没有模型权重冻结,充分感受端到端优化的好处。

Loss Functions:损失函数包括四个任务的损失,每个任务的损失可以进一步分为分类损失和回归损失。对于多模态运动预测和规划任务,我们采用赢家通吃策略。对于规划,还有一个额外的回归损失用于自我状态。我们还引入深度估计作为辅助任务,以增强感知模块的训练稳定性。端到端训练的整体损失函数为:

做的怎么样?

我们的实验是在 nuScenes 数据集上进行的,该数据集包含 1000 个复杂的驾驶场景,每个场景持续约 20 秒。我们有两个模型变体,它们仅在主干网络和输入图像分辨率上有所不同。对于我们的小模型 SparseDrive-S,我们使用 ResNet50 作为主干网络,输入图像大小为 256×704。对于我们的基础模型 SparseDrive-B,我们将主干网络更改为 ResNet101,将输入图像大小更改为 512×1408。所有实验均在 8 个 NVIDIA RTX 4090 24GB GPU 上进行。

主要结果

我们与之前的最先进的模块化和端到端方法进行了比较。在端到端方法中,我们的轻量级模型 SparseDrive-S 在所有任务中都超越了之前的 SOTA,而我们的基础模型 SparseDrive-B 将性能界限又推向了更高一步。每个任务的主要指标在表格中以灰色背景标记。

Perception: 对于表 a 中的 3D 检测,SparseDrive 实现了 49.6% 的 mAP 和 58.8% 的 NDS,与 UniAD 相比,mAP 和 NDS 分别显著提高了 +11.6% 和 +9.0%。对于表 b 中的多目标跟踪,SparseDrive 实现了 50.1% 的 AMOTA,最低 ID 切换为 632,在 AMOTA 方面超过 UniAD +14.2%,ID 切换减少了 30.2%,显示了跟踪轨迹的时间一致性。对于在线建图任务,SparseDrive 的 mAP 为 56.2%,也比之前的端到端方法 VAD 高出 +8.6%。

181e6494a1cf71b3c21cf8b307be916b.jpeg

Prediction:对于表 a 中的运动预测,SparseDrive 以 0.60m minADE、0.96m minFDE、13.2% MissRate 和 0.555 EPA 实现了最佳性能。与 UniAD 相比, SparseDrive 在 minADE 和 minFDE 上分别将误差降低了 15.5% 和 5.9%。

2072d90ef69e18114dd7143b4c2eaf55.jpeg

Planning:对于表 b 中的规划,在所有方法中,SparseDrive 实现了卓越的规划性能,最低的 L2 误差为 0.58m,碰撞率为 0.06%。与之前的 SOTA VAD 相比,SparseDrive 将 L2 误差降低了 19.4%,碰撞率降低了 71.4%,证明了我们方法的有效性和安全性。

Efficiency:如表3所示,除了出色的性能之外,SparseDrive 在训练和推理方面也实现了更高的效率。与 UniAD 相比,在相同的主干网络下,我们的基础模型在训练中实现了 4.8 倍的速度提升,在推理中实现了 4.1 倍的速度提升。我们的轻量级模型在训练和推理方面分别可以实现 7.2 倍和 5.0 倍的速度提升。

1515397edd9cbcf80266881fadbaccbb.jpeg

消融研究

我们进行了广泛的消融研究,以证明我们设计选择的有效性。我们使用 SparseDrive-S 作为消融实验的默认模型。

Effect of designs in Motion Planner。为了强调考虑预测和规划之间相似性的重要性,我们设计了几个特定的实验,如表 4 所示。

d55be6652fc1cd9c4548283c6fa3254e.jpeg

ID-2 通过将预测和规划的并行设计更改为顺序顺序,忽略了自车对周围智能体的影响,导致运动预测和碰撞率的性能下降。ID-3 随机初始化自我实例特征并将自我锚点的所有参数设置为 0。删除自我实例的语义和几何信息会导致 L2 误差和碰撞率的性能下降。ID-4 将规划视为确定性问题,并且只输出一个确定的轨迹,导致最高的碰撞率。此外,ID-5 删除了实例级智能体时间交叉注意力,将 L2 误差严重降低至 0.77m。

6e7952162393d7ee0a5ce139df25be41.jpeg

Collision-Aware Rescore。在之前的方法中,采用了后优化策略来确保基于感知结果的安全性。然而,我们认为这种策略打破了端到端范式,导致 L2 误差严重下降,如表 5 所示。此外,在我们重新实施的碰撞率指标下,后优化并没有使规划更安全,反而更危险。相比之下,我们的碰撞感知重新评分模块将碰撞率从 0.12% 降低到 0.08%,L2 误差几乎没有增加,显示了我们方法的优越性。

c556a00f8f28cc3de71b8404ebd40893.jpeg

Multi-modal planning。我们对规划模式的数量进行了实验。如表 6 所示,随着规划模式数量的增加,规划性能不断提高,直到 6 种模式饱和,再次证明了多模态规划的重要性。

之后还能做什么?

结论。在这项工作中,我们探索了稀疏场景表示并回顾了端到端自动驾驶领域的任务设计。由此产生的端到端范例 SparseDrive 实现了卓越的性能和高效率。我们希望 SparseDrive 的出色表现能够激励社区重新思考端到端自动驾驶的任务设计,并促进该领域的技术进步。

未来工作。我们的工作仍然存在一些局限性。首先,我们的端到端模型的性能仍然落后于单任务方法,例如在线建图任务。其次,数据集的规模不足以充分发挥端到端自动驾驶的潜力,开环评估不能全面代表模型性能。

参考

[1] SparseDrive: End-to-End Autonomous Driving via Sparse Scene Representation

投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!

① 全网独家视频课程

BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测车道线检测轨迹预测在线高精地图世界模型点云3D目标检测目标跟踪Occupancy、cuda与TensorRT模型部署大模型与自动驾驶Nerf语义分割自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

092dd123e9ff8aaf26146bc6370e4f2c.png 网页端官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

da0a02892a47b97909de4677bd6e6ded.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

bd30e93fe9abad0a6479051fb6d0c82a.jpeg

④【自动驾驶之心】全平台矩阵

7c448a4506227711c4b72c64d3334c38.png

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当谈到自动驾驶目标估计和预测方法时,有一些先进的技术被认为是SOTA(State-of-the-Art,最新技术)的。以下是一些SOTA自动驾驶目标估计和预测方法的示例: 1. 基于深度学习的方法:深度学习在自动驾驶目标估计和预测领域取得了巨大的成功。通过使用卷积神经网络(CNN)和循环神经网络(RNN)等深度学习模型,可以从传感器数据中提取特征并进行目标检测、跟踪和预测。这些方法通常使用大规模的标注数据进行训练,并具有较高的准确性和鲁棒性。 2. 多传感器融合方法:自动驾驶系统通常使用多种传感器(如相机、激光雷达、雷达等)来获取环境信息。多传感器融合方法将这些传感器的数据进行融合,以提高目标估计和预测的准确性和可靠性。常见的融合方法包括基于卡尔曼滤波或粒子滤波的传感器数据融合。 3. 基于图像语义分割的方法:图像语义分割可以将图像中的每个像素分类为不同的物体类别。这些方法可以用于自动驾驶目标估计和预测中,以提供更精细的目标边界和形状信息。通过结合语义分割和目标检测/跟踪算法,可以实现更准确的目标预测和轨迹规划。 4. 基于概率建模的方法:这些方法使用概率模型来表示目标在未来的位置和轨迹。常见的方法包括高斯混合模型(GMM)和条件随机场(CRF)。这些方法可以通过历史轨迹数据和环境信息来估计目标的未来行为,并进行预测。 5. 端到端学习方法:端到端学习方法直接从传感器数据到车辆控制命令进行学习,省去了传统的模块化设计。这些方法通常使用深度学习模型,如卷积神经网络(CNN)和循环神经网络(RNN),以实现端到端自动驾驶目标估计和预测。 需要注意的是,自动驾驶领域的研究和技术发展迅速,新的SOTA方法不断涌现。因此,上述列举的方法只是目前为止的一些示例,未来可能会有更多创新的方法被提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值