【自动驾驶】BEVFormer:通过时空Transformers从多摄像机图像中学习鸟瞰图表示

文摘   2024-07-21 11:34   美国  

 一群采鸟,主要传递正能量,顺便分享小知识


    今日热搜#幸福就在这里走进西藏#。去拉萨,必去八廓街。有人说,八廓街算得上全国乃至全世界最具有特色和美丽的历史文化街区。网友表示:没去过,但一定会去的。

    3D视觉感知任务,包括基于多摄像头图像的3D检测和地图分割,对于自动驾驶系统至关重要。今天一起来看看南京大学2022年提出的BEVFormer方法《BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers》。一句话总结:BEVFormer是一个新的框架,通过结合多摄像头图像的空间和时间信息,利用变形注意力和时间自注意力机制,生成用于自动驾驶的鸟瞰图(BEV)特征。这种方法在nuScenes测试集上达到了新的最佳性能,并在低能见度条件下显著提高了速度估计的准确性和物体召回率。

Mamba,一个挑战Transformer的长序列任务通用架构!
【自动驾驶】Group DETR:通过分组一对多分配进行快速DETR训练
【自动驾驶】一个简单且强大的自动驾驶拓扑推理流程TopoMLP
【自动驾驶】一种基于单目车载摄像头图像的端到端视觉方法STSU

【自动驾驶】清华团队新作RoadBEV | 通过鸟瞰路面重建让车辆有效避“坑”


    3D 空间感知对于自动驾驶、机器人等各种应用至关重要。尽管基于 LiDAR 的方法取得了显著进展 [43,20,54,50,8],但基于相机的方法[45,32,47, 30]近年来引起了广泛关注。与基于激光雷达的同类产品相比,除了部署成本较低之外,摄像头还具有检测远距离物体和识别基于视觉的道路元素(例如交通灯、停止线)的优势。

图 1:我们提出了 BEVFormer,这是一种自动驾驶范例,它应用 Transformer 和 Temporal 结构从多摄像头输入生成鸟瞰图 (BEV) 特征。BEVFormer 利用查询来查找空间/时间空间并相应地聚合时空信息,从而有利于感知任务的更强表示。
    自动驾驶中对周围场景的视觉感知有望根据多个摄像头给出的 2D 线索预测 3D 边界框或语义图。最直接的解决方案是基于单目框架[45,44,31,35,3]和跨相机后处理。该框架的缺点是它单独处理不同的视图,无法跨摄像机捕获信息,导致性能和效率较低[32, 47]。
    作为单目框架的替代方案,更统一的框架是从多摄像头图像中提取整体表示。鸟瞰图(BEV)是周围场景的常用表示,因为它清楚地呈现了物体的位置和规模,适用于各种自动驾驶任务,例如感知和规划[29]。尽管之前的地图分割方法证明了 BEV 的有效性 [32,18,29],但基于 BEV 的方法在 3D 对象检测中并未表现出比其他范例显着的优势 [47,31,34]。根本原因是 3D 对象检测任务需要强大的 BEV 特征来支持准确的 3D 边界框预测,但从 2D 平面生成 BEV 是不适定的。生成 BEV 特征的流行 BEV 框架基于深度信息 [46,32,34],但这种范例对深度值或深度分布的准确性敏感。因此,基于 BEV 的方法的检测性能会受到复合误差的影响 [47],并且不准确的 BEV 特征会严重损害最终性能。因此,我们有动力设计一种不依赖深度信息并且可以自适应学习 BEV 特征的 BEV 生成方法,而不是严格依赖 3D 先验。 Transformer利用注意力机制动态聚合有价值的特征,从概念上满足了我们的需求。
    使用 BEV 特征执行感知任务的另一个动机是 BEV 是连接时空空间的理想桥梁。对于人类视觉感知系统来说,时间信息在推断物体的运动状态和识别遮挡物体方面起着至关重要的作用,并且视觉领域的许多工作已经证明了使用视频数据的有效性[2,27,26,33,19] 。然而,现有最先进的多摄像机 3D 检测方法很少利用时间信息。重大挑战是自动驾驶对时间要求严格,场景中的物体变化很快,因此简单地堆叠交叉时间戳的BEV特征会带来额外的计算成本和干扰信息,这可能并不理想。
    为解决上述问题我们提出了一种基于 Transformer 的鸟瞰图 (BEV) 编码器,称为 BEVFormer,它可以有效聚合来自多视图相机的时空特征和历史 BEV 特征。
    本文的具体贡献有以下几点:

  • 我们提出了 BEVFormer,一种时空Transformer编码器,可将多摄像机和/或时间戳输入投射到 BEV 表示中。凭借统一的 BEV 特征,我们的模型可以同时支持多个自动驾驶感知任务,包括 3D 检测和地图分割。

  • 我们设计了可学习的 BEV 查询以及空间交叉注意层和时间自注意层,分别从跨摄像机查找空间特征和从历史 BEV 查找时间特征,然后将它们聚合成统一的 BEV特征。

  • 我们在多个具有挑战性的基准上评估了提议的 BEVFormer,包括 nuScenes [4] 和 Waymo [40]。与现有技术相比,我们的 BEVFormer 始终实现了改进的性能。例如,在相当的参数和计算开销下,BEVFormer 在 nuScenes 测试集上实现了 56.9% NDS,比之前的最佳检测方法 DETR3D [47] 好 9.0 个点(56.9% vs. 47.9%)。对于地图分割任务,我们还实现了最先进的性能,在最具挑战性的车道分割上比 Lift-Splat [32] 高出 5.0 以上。我们希望这个简单而强大的框架可以作为后续 3D 感知任务的新基准。

    这不算一个新问题,以前有较为相关的研究。
    基于Transformer的2D感知DETR [7]使用一组对象查询由交叉注意解码器直接生成检测结果。然而,DETR的主要缺点是训练时间长。Deformable DETR [56]通过提出可变形注意力来解决这个问题。与 DETR 中的普通全局注意力不同,可变形注意力与局部感兴趣区域交互,仅对每个参考点附近的 𝐾 点进行采样并计算注意力结果,效率很高并显着缩短了训练时间。
    基于摄像头的3D感知以前的 3D 感知方法通常独立执行 3D 对象检测或地图分割任务。对于3D物体检测任务,早期的方法与2D检测方法类似[1,28,49,39,53],通常基于2D边界框来预测3D边界框。王等人。[45]遵循先进的2D检测器FCOS[41]并直接预测每个对象的3D边界框。DETR3D [47]在 2D 图像中投影可学习的 3D 查询,然后对相应的特征进行采样,以进行端到端 3D 边界框预测,而无需 NMS 后处理。另一种解决方案是将图像特征转换为 BEV 特征,并从自上而下的视图预测 3D 边界框。方法利用深度估计 [46] 或分类深度分布 [34] 中的深度信息将图像特征转换为 BEV 特征。OFT [36] 和 ImVoxelNet [37] 将预定义的体素投影到图像特征上以生成场景的体素表示。最近,M 2 BEV [48]进一步探索了基于BEV特征同时执行多个感知任务的可行性。
    实际上,从多相机特征生成 BEV 特征在地图分割任务中得到了更广泛的研究 [32, 30]。一种直接的方法是通过逆透视映射 (IPM) 将透视图转换为 BEV [35, 5]。此外,Lift-Splat [32] 根据深度分布生成 BEV 特征。方法 [30,16,9] 利用多层感知器来学习从透视图到 BEV 的转换。PYVA [51]提出了一种跨视图变换器,将前视图单目图像转换为 BEV,但由于全局注意力机制的计算成本,这种范式不适合融合多摄像头特征[42]。除了空间信息之外,之前的工作[18,38,6]还通过堆叠来自多个时间戳的BEV特征来考虑时间信息。堆叠 BEV 特征限制了固定时间内可用的时间信息,并带来额外的计算成本。在这项工作中,所提出的时空Transformer通过考虑空间和时间线索来生成当前时间的BEV特征,并且时间信息通过RNN方式从先前的BEV特征中获得,这仅带来很少的计算成本。

    笔者看了文章之后觉得以下几点值得关注:1.总体架构如何设计?2.BEV Queries怎么样?3.空间交叉注意力如何设?4.时间自注意力如何设计?

1. 总体架构如何设计

   如图2所示,BEVFormer有6个编码器层,每个编码器层都遵循变压器的传统结构[42],三种定制设计,即BEV查询、空间交叉注意力和时间自注意力。具体来说,BEV 查询是网格状的可学习参数,旨在通过注意机制从多摄像机视图查询 BEV 空间中的特征。空间交叉注意力和时间自注意力是与 BEV 查询一起使用的注意力层,用于根据 BEV 查询查找和聚合多摄像机图像中的空间特征以及历史 BEV 中的时间特征。

图 2:BEVFormer 的总体架构。(a) BEVFormer 的编码器层包含网格状 BEV 查询、时间自注意力和空间交叉注意力。(b) 在空间交叉注意力中,每个 BEV 查询仅与感兴趣区域中的图像特征交互。(c) 在时间自注意力中,每个 BEV 查询与两个特征交互:当前时间戳的 BEV 查询和前一个时间戳的 BEV 特征。

    在推理过程中,在时间戳  处,我们将多摄像头图像馈送到主干网络(例如  ),并获取不同摄像头视图的特征  ,其中  是第  个视图的特征,  是摄像机视图的总数。同时,我们保留了之前时间戳  处的 BEV 特征  。在每个编码器层中,我们首先使用 BEV 查询  通过时间自注意力从先前的 BEV 特征  查询时间信息。然后,我们使用 BEV 查询 𝑄 通过空间交叉注意力来查询多摄像机特征  的空间信息。经过前馈网络[42]后,编码器层输出细化的BEV特征,这是下一个编码器层的输入。经过6个堆叠编码器层后,生成当前时间戳  的统一BEV特征  。以BEV特征  作为输入,3D检测头和地图分割头预测3D边界框和语义图等感知结果。

2.BEV Queries

     我们预先定义了一组网格状的可学习参数  作为BEVFormer的查询,其中  是BEV平面的空间形状。具体来说,位于  的  处的查询  负责BEV平面中相应的网格单元区域。BEV 平面中的每个网格单元对应于  米的实际尺寸。默认情况下,  功能的中心对应于本车的位置。遵循常见做法 [14],我们在将  查询输入到 BEVFormer 之前将可学习的位置嵌入添加到 BEV 查询  中。

3.空间交叉注意力

   由于多摄像头 3D 感知的输入规模较大(包含  摄像头视图),普通多头注意力 [42] 的计算成本非常高。因此,我们开发了基于可变形注意力的空间交叉注意力[56],这是一个资源高效的注意力层,其中每个 BEV 查询仅与其跨摄像机视图的感兴趣区域交互。然而,可变形注意力最初是为 2D 感知设计的,因此对于 3D 场景需要进行一些调整。

    空间交叉注意力基于可变形注意力(deformable attention)设计,允许每个BEV查询只与感兴趣区域的视图特征进行交互,从而提高计算效率。通过将BEV查询提升为柱状查询,采样3D参考点,并将其投影到2D视图上,然后仅从这些视图中采样特征,最后进行加权求和以生成空间交叉注意力的输出。这种方法优化了多摄像头3D感知任务中的资源消耗,并增强了模型对空间特征的聚合能力。

4.时间自注意力

    除了空间信息之外,时间信息对于视觉系统理解周围环境也至关重要[27]。例如,在没有时间线索的情况下推断移动物体的速度或从静态图像中检测高度遮挡的物体是具有挑战性的。为了解决这个问题,我们设计了时间自注意力,它可以通过结合历史 BEV 特征来表示当前环境。

    给定当前时间戳  处的 BEV 查询  和时间戳  保留的历史 BEV 特征  ,我们首先对齐  根据自我运动,使同一网格的特征对应于相同的现实世界位置。在这里,我们将对齐的历史 BEV 特征  表示为  。然而,从时间  到  ,可移动对象在现实世界中以各种偏移量移动。在不同时间的 BEV 特征之间构建相同对象的精确关联具有挑战性。因此,我们通过时间自注意力(TSA)层对特征之间的时间联系进行建模。

    与[18,38,6]中简单地堆叠 BEV 相比,我们的时间自注意力可以更有效地建模长时间依赖性。BEVFormer 从先前的 BEV 特征中提取时间信息,而不是从多个堆叠的 BEV 特征中提取时间信息,因此需要更少的计算成本并受到更少的干扰信息。

    基线。为了消除任务头的影响并公平地比较其他 BEV 生成方法,我们使用 VPN [30] 和 Lift-Splat [32] 来替换我们的 BEVFormer 并保持任务头和其他设置相同。我们还通过将时间自注意力调整为普通自注意力而不使用历史 BEV 特征,将 BEVFormer 改编成名为 BEVFormer-S 的静态模型。

3D物体检测结果 

   我们使用检测头在检测任务上训练我们的模型,只是为了与之前最先进的 3D 对象检测方法进行公平比较。在Table.1Table.2,我们报告了 nuScenes 测试和 val 分割的主要结果。在公平的训练策略和可比较的模型规模下,我们的方法在 val 集上的性能优于之前的最佳方法 DETR3D [47] 9.2 个点(51.7% NDS 与 42.5% NDS)。在测试集上,我们的模型在没有花哨的情况下实现了 56.9% NDS,比 DETR3D (47.9% NDS) 高 9.0 个点。我们的方法甚至可以实现与一些基于 LiDAR 的基线相当的性能,例如 SSN (56.9% NDS) [55] 和 PointPainting (58.1% NDS) [43]。

表 1:nuScenes 测试集上的 3D 检测结果。  指出 VoVNet-99 (V2-99) [21] 是使用额外数据 [31] 在深度估计任务上进行预训练的。“BEVFormer-S”不利用 BEV 编码器中的时间信息。“L”和“C”分别表示激光雷达和相机。

表 2:nuScenes val 集上的 3D 检测结果。“C”表示相机。

多任务感知结果

    我们使用检测头和分割头来训练模型,以验证模型对多个任务的学习能力,结果如表4所示. 在相同设置下比较不同的 BEV 编码器时,除了道路分割结果与 BEVFormer-S 相当之外,BEVFormer 在所有任务上都实现了更高的性能。例如,通过联合训练,BEVFormer 在检测任务上优于 Lift-Splat ∗ [32] 11.0 点(52.0% NDS vs 41.0% NDS),在车道分割上 IoU 为 5.6 点(23.9% vs 18.3) %)。与单独训练任务相比,多任务学习通过共享更多模块(包括主干网和 BEV 编码器)来节省计算成本并减少推理时间。在本文中,我们证明了 BEV 编码器生成的 BEV 特征可以很好地适应不同的任务,并且使用多任务头的模型训练在检测任务和车辆分割方面表现更好。然而,联合训练的模型在道路和车道分割方面的表现不如单独训练的模型,这是多任务学习中称为负迁移的常见现象[11, 13]

表 4:nuScenes val 集上的 3D 检测和地图分割结果。联合或不联合训练分割和检测任务的比较。*:我们使用VPN[30]和Lift-Splat[32]来替换我们的BEV编码器进行比较,任务头是相同的。†:他们论文的结果。

图 4:BEVFormer 在 nuScenes val 集上的可视化结果。我们展示了多摄像机图像和鸟瞰图中的 3D bbox 预测。

   

    在这项工作中,我们提出了 BEVFormer 从多摄像机输入生成鸟瞰图特征。BEVFormer 可以有效聚合空间和时间信息并生成强大的 BEV 功能,同时支持 3D 检测和地图分割任务。

    局限性。目前,基于相机的方法在效果和效率上与基于激光雷达的方法仍然存在一定的差距。从 2D 信息准确推断 3D 位置仍然是基于相机的方法的长期挑战。

    更广泛的影响。BEVFormer 证明,使用多摄像头输入的时空信息可以显着提高视觉感知模型的性能。BEVFormer 所展示的优势,例如更准确的速度估计和对低可见度物体的更高召回率,对于构建更好、更安全的自动驾驶系统及其他系统至关重要。我们相信 BEVFormer 只是以下更强大的视觉感知方法的基线,基于视觉的感知系统仍然具有巨大的潜力有待探索。

参考文献
[0]BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers. 2022.
[3]The right (angled) perspective: Improving the understanding of road scenes using boosted inverse perspective mapping.2019
[8]Multi-view 3d object detection network for autonomous driving.2017
[10] On the properties of neural machine translation: Encoder-decoder approaches.2014

Ai创研社
专注分享图像/视频生成、LLM、3D、机器人、自动驾驶等领域的前沿动态! 日常闲聊包括C++、设计模式、LeetCode、ROS、数学和AIGC等!欢迎点赞+关注!