24年CVPR来自Nvidia、USC 和斯坦福的论文“PARA-Drive: Parallelized Architecture for Real-time Autonomous Driving”。
最近的研究提出由可微分模块组成的端到端自动驾驶汽车 (AV) 架构,以实现最先进的驾驶性能。虽然它们比传统的感知-预测-规划流程更具优势(例如,消除组件之间的信息瓶颈并减轻集成挑战),但它们使用多样化的任务、模块及其互连组合来实现这一点。然而,到目前为止,还没有系统地分析过这些模块的必要性,也没有分析过它们的连接性、位置和内部表示对整体驾驶性能的影响。为了解决这一空白,该工作对端到端模块化 AV 堆栈的设计空间进行全面的探索。该研究最终促成
PARA-Drive
的开发:一种完全并行的端到端 AV 架构。 PARA-Drive 不仅在感知、预测和规划方面实现最先进的性能,而且还将运行速度提高近 3 倍,同时又不影响可解释性或安全性。
如图所示端到端 AV 堆栈的设计变化示例。 (a)(b) 同一任务的模块可以用不同的表示形式设计; (c)(d) 信息流在规划中的不同版。
端到端运动规划
。传统的 AV 开发主要侧重于训练独立模块并将它们集成以形成完整的 AV 系统。然而,这种方法在部署过程中面临着巨大的集成挑战。信息瓶颈很常见,由于模块间通信期间的阈值和滤波,可能会丢失信息。此外,模块的单独训练会导致目标不一致,从而导致上游任务无法针对下游感知学习进行最佳定制。
为了克服这些挑战,最近在端到端规划方法方面取得许多进展,由 [2, 21] 等先前的研究开创。这些方法很有吸引力,因为它们提供高效的运行时间,并消除集成挑战和信息瓶颈。最近在这方面的研究进一步提高端到端方法在闭环驾驶中的成功率。例如,[5] (Learning-by-Treating)通过从特权专家那里提取信息来改进端到端驾驶。 [8] (CIL)引入一个以高级驾驶命令为条件的规划网络。Transfuser [22] 超越摄像头输入整合 LiDAR 数据,而 TCP [26] 通过同时考虑轨迹和动作来改进规划的输出表示。
尽管取得这些进步,但端到端规划方法在可解释性、可验证性和实际部署安全性方面仍然面临重大挑战。这导致人们对设计端到端但模块化的 AV 架构的兴趣日益浓厚,旨在结合传统和端到端方法的优势。
端到端但模块化架构通过将模块化设计与端到端训练相结合,将自己与传统和端到端规划方法区分开来。因此,它保持安全性和可解释性,同时优化所有模块以进行下游规划。
设计端到端的模块化堆栈具有挑战性,因为这些架构中模块的组成和交互会导致不同的设计变化。例如,对于顺序设计,P3 [23] 和 ST-P3 [11] 使用语义占用预测的输出进行下游规划。[10, 15] 不是通过监督学习来学习占用,而是开发自监督占用预测来预测可用空间,然后将其用于基于优化的规划。混合设计(例如 [29] 中探讨的设计)直接在后续模块中利用 BEV 特征,结合顺序和并行模块间连接。这种趋势在先前的工作中得到进一步体现,例如 [4, 12, 13, 25],这些工作通常结合并行头进行在线映射。
为了展示这些设计变化,如图将最新的架构与 PARA-Drive 进行比较。这些架构在模块包含、输出表示和到规划模块的信息流方面有所不同。例如,UniAD 和 OccNet 将预测占用图纳入规划,而 VAD 则没有。UniAD 和 OccNet 将在线建图视为密集预测任务,预测地图元素的每像素或每体素语义,而 VAD 选择矢量化地图表示。此外,UniAD 和 VAD 使用多头架构,其中规划头访问来自感知头的中间输出(例如潜查询特征),而 OccNet 则依赖感知头的最终输出进行规划。
多任务学习 (MTL)
。其并不是 AV 领域的一个全新话题,而且已经有了长足的发展。除了专注于感知和预测的 MTL [1、18、31] 之外,MTL 还已应用于端到端 AV 规划,最近的方法通常利用 BEV 特征执行各种辅助任务。例如,[28] 并行检测和预测目标的边框以学习规划的成本体。此外,Transfuser [7] 的扩展将映射、深度和目标检测头与运动规划并行结合。然而,这些工作没有采用占用预测任务,这在并行化的 AV 架构中至关重要。相比之下,NEAT [6] 和 ReasonNet [24] 在 MTL 风格的 AV 架构中采用 BEV 占用预测,但不会预测实例目标运动。此外,ReasonNet 不预测语义图,只依赖于从传感器输入中隐式学习地图信息。与 MTL 中的这些先前研究相比,UniAD [12] 等混合设计已证明将实例运动预测与场景级占用预测相结合可以有效提高端到端驾驶性能。为证实这一论点,除了在混合设计中观察的渐进式改进之外,采用实例运动预测和场景级占用预测以及在线地图对于在纯并行设计中实现最先进的规划性能至关重要。
基于这些见解, PARA-Drive,一个并行化的 AV 架构,其性能和实时效率优于混合设计的 AV 架构。
关键维度
为了系统地探索设计空间,首先确定并分析定义设计空间的关键维度。
-
(1)模块的必要性:在端到端模块堆栈中,哪些模块是必不可少的?对于给定的任务,不同的模块可能设计有不同的表示形式(例如,占用预测与轨迹预测)。需要考虑的是,尽管存在潜在的冗余,但同时包含这两种类型的模块是否比只选择一种更有益。
-
(2)模块放置:一旦选择模块,它们应该如何在堆栈中排列?这包括考虑各种设计配置,例如顺序和并行设计,或包含顺序和并行连接的混合设计。
-
(3)信息流:当一个模块依赖于其前任的输出时,应该只传递相对低维的最终紧凑输出(例如,边框或 BEV 分割图)还是高维中间特征(例如,token 查询)?同时传递两者是否有好处?
设计空间的探索面临着巨大的挑战:多个维度的组合可能带来复杂性,而每个维度单独来看似乎都是可控的。这种复合性质导致设计空间涵盖广泛的配置,从输入传感器数据直接进行运动规划的非模块化 AV 堆栈 [2、8、22、26] 到各种高度模块化的端到端方法,如先前工作的方法 [12、13、25、29]。
标准化评估方法
遵循端到端 AV 中的前期工作 [10–13, 15, 30],利用现实世界的 nuScenes [3] 驾驶数据集在探索设计空间时试验端到端模块化 AV 架构的变体。由于关注设计对整体驾驶性能的影响,因此本文使用指标来评估大部分比较的规划性能。具体而言,遵循前期工作,以 2 Hz 的频率计算 3 秒范围内 GT 与自车预测轨迹之间的 L2 误差,并计算鸟瞰图中与周围动态智体的碰撞率。此外,将 1s、2s 和 3s 时间范围内的平均误差报告为 Ave/1,2,3s(在前期工作中使用),并将整个范围的平均误差报告为 Ave/all。
为了严格探索设计空间,确保评估的稳健性和一致性非常重要。然而,由于缺乏标准化的 nuScenes 规划基准,先前的工作单独制定评估协议,从而引入不一致性。为了缓解这个问题,直接比较先前工作中的结果和数字,而是对现有的评估方法进行彻底的分析,主要是 UniAD [12]、VAD [13] 和 AD-MLP [30] 中使用的方法。
实现中不一致性包括:
-
1)时间维的平均:以 3 秒范围内的 L2 误差为例,UniAD 通过对验证集中的 N 个样本取平均值来计算 L^3s/2,而 VAD 和 AD-MLP 通过对样本和时间间隔取平均值来计算此误差,因此与 UniAD 相比,VAD 和 AD-MLP 的 L2 误差和碰撞率明显较小;
-
2)滤波智体:一方面,UniAD 将行人排除在 GT 占用图之外,与 VAD 和 AD-MLP 相比,碰撞率更低。另一方面,UniAD 在每一帧中都包含不可见目标,使评估更具挑战性;
-
3)帧掩码策略:如果数据序列中的任何一个帧无效,VAD 和 AD-MLP 会排除数据剪辑,而 UniAD 会包含此类剪辑,但会为这些无效帧分配零误差。将这些剪辑与分配零误差的帧一起纳入可以降低评估中的总体错误率;
-
4)第一帧中的随机噪声:最先进的端到端 AV 堆栈在输入中使用时间信息,因此由于输入特征和自车状态的零初始化,第一帧的性能较差。 AD-MLP 通过排除评估协议中的前两帧来解决这个问题,而 UniAD 和 VAD 则不这样做,从而导致 UniAD 和 VAD 的评估中出现人为的更高错误。
除了不一致之外,在下图中还发现现有评估方法中的几个问题,这些问题也会严重扭曲分析:
-
(1) 轴对齐的自车表示:现有的碰撞率计算评估可能会产生人为的假阳性和假阴性,因为忽略自车在边框中的方向;
-
(2) 粗略的 BEV 离散化:普遍使用 200 × 200 分辨率网格(每个网格单元 0.5 米)在模型性能和训练效率之间取得良好的平衡。然而,这种低分辨率可能会在评估中引入人为的假阳性碰撞,即使对于 GT 轨迹也是如此,[30] 中也指出这一点。
-
(3) 地图合规性指标是 L2 错误和碰撞率的重要补充。省略在线地图网络可能会降低定性结果(例如,驶离车道或道路),而不一定会影响 L2 和碰撞率;
-
(4)有针对性的场景评估:鉴于大多数驾驶日志都涉及“直行”,即使是没有感知的简单模型 [30] 也可以在 L2 指标中表现得非常好。因此,在涉及转弯和变道等复杂场景的数据集子集中进行评估至关重要。
具体来说,地图合规性指标计算离道率和离路率,后者测量每个预测航路点是否与相应的 GT 轨迹匹配到同一车道。对于有针对性的场景评估,排除带有“保持前进”命令的帧,这导致 nuScenes 验证集上总共有 686 个具有挑战性的关键帧。
设计空间的开发
基于 UniAD [12] 构建框架,主要有两个原因:(1)UniAD 包含最广泛的任务和模块;(2)UniAD 首先具有强大的规划性能。要确定模块位置和信息流,需要确定哪些模块间依赖关系是有用的。为此,首先对 UniAD 中的所有模块间连接进行系统消融,结果如表所示。
模块位置
。如图所示,给定现有的四个模块间连接(即边 (1)(2)(3)(4)),首先观察删除图中的边 (1)(2) 实际上可以带来更稳健的性能,如上表的1-4行。对于 (1),这是因为 UniAD 使用来自第一阶段地图头的车道查询特征,这些特征很嘈杂,因此删除车道和运动查询之间的交互可以提高性能。对于边 (2),这是因为测试时间优化 (TTO) 不在训练过程中,它往往会生成偏离人类驾驶日志的轨迹。消除 (1)(2) 后,建立一个改进的基线,如图(左)所示,实现更好的规划性能。
有趣的是,基于改进的基线,删除和添加其他模块间连接并不能提高上表中其余部分的规划性能。事实上,添加具有查询特征的边 (6) 和具有紧凑语义 BEV 图的边 (7) 会降低性能。此外,对于边 (1),在过滤后尝试来自最终阶段 Transformer 较少噪声的查询。虽然与使用含噪查询特征的情况相比获得更好的性能,但添加此边仍然会造成比改进基线略差的性能。可以消除所有这些边,同时保持与改进基线相同的性能并减少模块依赖性。
信息流
。在上表中,将不同的表示传递给同一边的规划模块,可比较规划性能。例如,在边 (5) 的第 8-9 行中,将表示道路和车道几何信息的紧凑语义 BEV 图或地图元素的潜查询传递给下游规划。类似地,在边 (6) 的第 10-11 行中,比较使用紧凑 BEV 占用图或目标查询进行规划。有趣的是,尽管传递紧凑的 BEV 输出比传递高维查询特征的性能略好,但没有必要传递紧凑输出或每个模块的潜查询,因为信息已经通过边 (0) 从 BEV 特征图流入规划模块,从而可能存在冗余。
为了进一步验证下游规划中应使用哪种表示的信息流,在改进基线之上消除对规划(边 (0))BEV 特征图的使用,并在下表中比较添加边 (4)(5)(6) 的性能。比较第 1-2 行,再次确认删除 BEV 特征会导致端到端规划的性能显着下降。在随后的实验中,尽管在规划中对上游模块施加依赖关系,但与仅使用紧凑输出表示作为规划的输入相比,传递具有高维信息的潜查询往往会带来更大的性能提升。
模块的必要性
。我们在下表中总结结果。由于从基线中删除边 (4),因此规划模块仅使用 BEV 特征图,而不调节其他上游模块。在这种情况下,删除任何辅助任务都可能导致规划任务的性能显着下降。特别是,尽管删除在线建图任务不会导致更高的 L2 错误和碰撞率,但地图合规性错误会大幅增加。这些实验证明所有这些模块都需要对 BEV 特征进行适当的共同训练以实现并行设计。有趣的是,占用预测任务和运动预测任务对于顺序或混合设计确实有些冗余。具体而言,如果在删除占用任务的情况下在运动预测和规划之间添加边 (4),可以通过明确传递来自上游模块的查询特征来恢复性能。在删除运动预测任务的情况下也观察到类似的观察结果。