跳转至

thinktwice:用于端到端自动驾驶的可扩展解码器

CVPR 2023: Think Twice before Driving: Towards Scalable Decoders for End-to-End Autonomous Driving

1. 论文信息

题目:Think Twice before Driving: Towards Scalable Decoders for End-to-End Autonomous Driving

作者:Xiaosong Jia, Penghao Wu, Li Chen, Jiangwei Xie, Conghui He, Junchi Yan, Hongyang Li

链接:https://arxiv.org/abs/2305.06242

代码:https://github.com/opendrivelab/thinktwice

2. 引言

端到端自动驾驶是一种基于传感器观测预测动作的方法。与传统的模块化自动驾驶框架不同,端到端方法展现出了巨大的潜力。在这种方法中,整个驾驶系统从感知到控制都是端到端学习的。系统的输入是原始的传感器数据,输出是车辆的控制信号。这种方法在闭环评估中表现出了令人瞩目的性能。

随着深度学习的进步,自动驾驶引起了学术界和工业界的关注。端到端自动驾驶旨在构建一个完全可微分的学习系统,能够直接将原始传感器输入映射到控制信号或未来的轨迹。由于其高效性和避免累积误差的能力,近年来取得了令人瞩目的进展。现有的工作都采用编码器-解码器范式。编码器模块从原始传感器数据(相机,LiDAR,雷达等)中提取信息并生成表示特征。将该特征作为输入,解码器直接预测路径点或控制信号。在这种范式下,编码器没有访问自我代理的预期行为,这使得从大量传感器输入的感知领域中找到安全关键区域并推断未来情况的负担落在解码器身上。

为了解决这些问题,该研究提出了两个原则来设计新模型:充分利用编码器的能力,扩展解码器的能力并进行密集监督。为了实现这两个原则,研究人员提出了级联解码器范式,以粗到细的方式预测自我车辆的未来动作。具体来说,他们首先采用类似于传统方法的MLP来生成粗略的未来轨迹和动作。然后从编码器中检索预测未来位置周围的特征,并将其进一步输入到多个卷积层中以获取与目标相关的场景特征。接下来,他们设计了一个预测模块,以当前场景的特征和粗略动作为输入,并生成未来场景表示特征。最后,他们预测粗略预测和地面真实轨迹之间的偏移量以进行细化。该过程可以级联堆叠,以增加解码器对条件未来的时空先验知识的容量。该研究在CARLA自动驾驶基准测试中进行了实验,并取得了最先进的性能。他们还进行了广泛的消融研究,以证明所提出方法的有效性。总之,该研究有三个贡献:首先,提出了一种可扩展的端到端自动驾驶解码器范式,强调扩展解码器容量在这一领域的重要性。其次,他们设计了一个解码器模块来查找安全关键区域,并预测在预测的动作/轨迹条件下的未来场景,为训练过程注入了时空先验知识和密集监督。最后,他们在两个竞争基准测试中展示了最先进的性能,并进行了广泛的消融研究,以验证所提出的模块的有效性。他们相信,在端到端自动驾驶中,解码器(决策部分)与编码器(感知部分)同等重要。他们希望他们的探索能够激发社区在这一领域的进一步努力。

3. 方法

本文提出了一种可扩展的解码器范式,称为ThinkTwice,用于端到端自动驾驶。作者使用模仿学习框架收集驾驶日志,这是一系列车辆状态和传感器数据。他们使用4个摄像头(前置、左侧、右侧、后置)、一个激光雷达、IMU、GPS和车速表在城镇01、城镇03、城镇04和城镇06上以2 Hz的速度收集数据。他们总共收集了189K帧用于进行大部分实验和消融研究。作者使用ResNet-18架构提取图像特征,使用PointNet++架构提取LiDAR特征。然后,他们将图像特征投影和对齐到BEV上的LiDAR特征。

3.1. BEV Encoder

本文考虑了在自动驾驶中常用的两种传感器:摄像头和激光雷达。为了融合它们的信息,首先将原始传感器数据分别转换为俯视图(BEV)特征,然后直接连接BEV特征,因为它们已经在空间上对齐。对于来自多个视角的相机输入 - RGB图像,首先在每个图像上使用图像骨干网络(例如ResNet)获得其紧凑的特征图。为了将2D图像转换为BEV空间,采用了LSS :首先预测每个像素的离散深度分布,并将每个像素沿着相机光线分散成离散点,在该点处的特征是其预测深度和相应像素特征的乘积。对于BEV中的每个网格,通过截锥体池化从该网格内的那些点聚合特征。通过这种方式,作者可以将任意数量的相机图像聚合到一个C×BH×BW特征图中,其中C是隐藏的维度,BH和BW是BEV网格的高度和宽度。此外,为了引入时间线索,作者通过将历史图像的先前BEV转换为当前自我中心坐标系来聚合先前BEV。因此,先前和当前的特征图被空间对齐,作者可以简单地将它们连接起来得到最终的BEV特征。另外,作者发现

  1. 深度预测模块的真实监督对于图像的分散非常重要,这与物体检测领域的发现一致。
  2. 分散图像特征时,有益于添加一个语义分割模块并分散预测的语义分数。作者推测,它通过过滤掉不相关的纹理信息来增加了端到端模型的泛化能力。对于LiDAR输入 - 点云,作者采用了流行的SECOND ,它在体素化的点云上应用了稀疏的3D卷积,最终输出也是一个C×BH×BW的BEV特征图。

为了利用时间信息,类似于物体检测领域的现有作品,作者将来自多帧的对齐点云简单地串联起来,并添加一个通道来指示时间步长。在融合两个BEV特征图时,作者只是将它们简单地串联起来,并通过一系列2D卷积层进行处理。由于行动是端到端自动驾驶中唯一的直接监督,对于高维多传感器输入来说太稀疏了,因此作者为BEV特征图提供额外的特征级监督。具体来说,作者使用Roach [87]中间的BEV特征图作为目标,使用基于RL的带特权输入的教师网络,将栅格化的BEV周围环境作为特权输入,并通过几个卷积层实现了不错的性能。请注意,任何具有BEV特征表示的可学习专家模型都可以在此处采用,作者之所以采用Roach是由于其通过RL训练获得的健壮性。通过让学生网络(即ThinkTwice的编码器)的中间BEV特征图与教师网络的类似,每个BEV网格都获得了关于决策相关信息的密集监督。在实验部分,作者经验证明,这种监督是必要的,并且比先前SOTA作品中常用的BEV分割监督信号更好。因此,本文提出的方法将BEV特征图与额外的监督结合起来,以获得更好的性能。

3.2. Decoder

Decoder模块包括三个子模块:Look Module、Prediction Module和Refinement Module。其中,Look Module模块用于将人类驾驶员的先验知识(目标位置)注入到模型中,提高模型的泛化能力;Prediction Module模块用于预测场景的未来发展,以及提供监督信号;Refinement Module模块用于通过对预测结果的微调来提高预测精度。这三个子模块分别对应于解码器中的三个阶段:粗略预测、注入先验知识、微调预测结果。通过将这三个子模块结合起来,能够获得更准确的自动驾驶预测结果。具体来说:

  1. Look Module是解码器中的第一个子模块,其主要作用是将驾驶员的先验知识注入到模型中。在实际驾驶中,驾驶员会查看目标位置,以确保没有与其他车辆的碰撞和违反交通规则等风险。为了实现这个目标,Look Module通过引入预测轨迹,将模型的关注点引导到了预测轨迹所在的区域。对于摄像头数据,Look Module使用多尺度变形注意力来聚合信息;对于激光雷达数据,Look Module直接检索目标轨迹周围的点云,并通过MLP网络来获得特征表示。最后将两者特征拼接起来,得到Look Feature,用于后续的预测过程。

  1. Prediction Module是解码器中的第二个子模块,其主要作用是预测场景的未来发展,并提供监督信号。在实际驾驶中,驾驶员会预测周围车辆和行人的行为,以及他们对自己的驾驶决策作出的响应。为了实现这个目标,Prediction Module使用空间GRU(Spatial-GRU)对当前的BEV特征进行建模,以及获得当前时刻的预测动作和轨迹。同时,Prediction Module通过引入Ground-Truth数据,将监督信号注入到模型中。具体而言,Prediction Module使用“Teacher Forcing”技术,将Ground-Truth的动作和轨迹作为额外的输入提供给模型,以便在训练过程中获得准确的监督信号。

  2. Refinement Module是解码器中的第三个子模块,其主要作用是通过微调预测结果来提高预测精度。在实际驾驶中,驾驶员会根据周围的车辆和行人的行为作出相应的驾驶决策,并在行驶过程中不断微调自己的决策,以适应复杂的交通环境。为了实现这个目标,Refinement Module引入了Look Feature和Prediction Feature,以及当前时刻的预测动作和轨迹,通过MLP网络对预测结果进行微调,得到更加精确的预测结果。同时,Refinement Module使用Ground-Truth数据对预测结果进行监督,以便在训练过程中获得准确的监督信号。最终,通过不断的微调,预测结果的准确度得到了提高。

因此,这三个子模块共同构成了解码器模块,通过引入驾驶员的先验知识、预测场景的未来发展,并通过微调预测结果来提高预测精度,实现了更加准确的自动驾驶预测。

4. 实验

该论文的作者使用了一个名为ThinkTwice的模仿学习框架来收集驾驶记录,这是车辆状态和传感器数据的序列。他们使用了4个相机(前、左、右、后)、一个激光雷达、IMU、GPS和速度计,在town01、town03、town04和town06上以2 Hz的速度收集数据。他们总共收集了189K帧以进行大多数实验和消融研究。如表格所示,不同模型在Town05 Long基准测试中的表现。该表格包括各种列,如Modality、Extra Supervision、Expert、Seg and Depth和Box。Modality列表示使用的传感器类型,其中C表示相机传感器,L表示激光雷达传感器。Extra Supervision列指训练学生模型所需的额外标签,除了自我车辆的行动和状态。Expert列表示来自特权代理输出或特征的蒸馏。Seg和Depth列表示2D图像的深度和语义分割标签。Box列表示周围代理的边界框。结果表明,显式使用深度和分割预测来自图像特征到BEV特征的投影过程(Model3)和使用两帧作为输入而不是一帧(Model4)的模型表现出了比其他模型更好的性能。然而,尽管引入了运动线索,Model4的改进只是微小的。总的来说,该表格提供了不同模型在Town05 Long基准测试中的表现比较,各个列指示了使用的传感器类型、训练所需的额外标签以及其他影响模型表现的因素。

本文在两个闭环评估基准测试中与现有的最先进方法进行了比较。在Town5Long基准测试中,ThinkTwice在两个协议下均取得了最佳的DS得分,而Roach和MILE可以运行较长时间(最高RC),但发生的碰撞或违反交通规则更多。另一方面,Transfuser的运行最安全(最高IS),但过于谨慎而无法完成路线。至于Longest6基准测试,Transfuser可以获得非常高的路线完成得分,但我们的方法获得了最佳的DS和IS得分,这表明我们的方法驾驶过程更加安全。

在编码器方面,作者通过实验发现,单纯采用几何融合技术而没有相关监督会导致性能下降;加入深度和语义分割任务的模型略有提升,这可能是这两个辅助任务对图像特征的正则化效果;显式地在投影过程中使用深度和分割预测可以显著提高性能,这表明监督几何投影的重要性;使用两帧作为输入而不是一帧的模型性能提升不大,这可能与惯性/模仿问题相关;在解码器方面,作者通过组件分析发现,加入一个额外的解码器层可以提高性能,而使用5个提出的解码器层可以显著提高性能,并证明了提出的解码器范式的有效性和其强大的可扩展性。最终,作者采用Model6作为ThinkTwice的最终模型,并通过消融实验验证了其解码器设计的有效性,特别是通过密集监督的堆叠解码器层可以得到SOTA的性能。总的来说,本文的实验结果证实了作者提出的思路和方法,在编码器和解码器中注入先验知识是非常重要的。

5. 讨论

image-20230527130912709

在这篇论文中,作者提出了几项未来的工作,包括研究所提出的方法在其他自动驾驶任务中的有效性,探索使用无监督或半监督学习减少所需训练数据量的可能性,并分析所提出方法的计算复杂度。他们还建议研究将其他传感器模式(如雷达和音频传感器)纳入到所提出方法中,以提高其性能的可能性。

本文旨在探讨增加端到端自动驾驶模型容量的不同方法,并在公平的环境中进行比较。作者尝试了多种方法,包括增加编码器的大小以及MLP/GRU解码器的宽度和深度等。结果显示,简单地增加编码器或解码器的深度/宽度不会带来性能提升。相反,ThinkTwice以密集的监督和时空知识以粗到细的方式增加解码器的容量,注入了强大的先验知识,并因此带来了更好的性能。

本文也讨论了在部署自动驾驶模型时需要考虑计算需求和内存占用的重要性,因为这些模型通常在计算能力和内存有限的边缘设备上运行。作者运行了一些现有模型的官方代码来估计它们的计算需求和内存占用,并列出了结果。其中,ThinkTwice模型由于采用了BEV中的几何融合技术,需要大量的MAC和GPU内存,但也因此在联合感知规划和传感器融合方面具有优势。作者指出,学习BEV表示是当前工业和学术界的热点问题,为了降低BEV模型的计算负担,一些更高效的实现方法已经被提出。同时,工业界也在积极探索专门设计的边缘设备和芯片。

6. 结论

本文提出了一种可扩展的解码器范式,称为ThinkTwice,用于端到端自动驾驶。该范式强调通过提出具有密集监督和空间-时间先验的可扩展解码器层来扩大解码器的容量。作者在两个竞争性的闭环自动驾驶基准测试上实现了最先进的性能。本研究为社区中的这一研究领域提供了有用的信息。


本文总阅读量