BEVFormer v2(CVPR2023)
文章目录
- Abstract
- Introduction
- Related Works
- BEV 3D Object Detector
- Auxiliary Loss in Camera 3D Object Detection
- Two-stage 3D Object Detector
- BEVFormer v2
- Overall Architecture
- Perspective Supervision
- Perspective Loss
- Ravamped Temporal Encoder
- Two-stage BEV Detector
- Decoder with Hybrid Object Queries
- Conclusion
paper
Abstract
作者提出了一种具有视角监督的新型鸟瞰(BEV)检测器,该检测器收敛速度更快,更适合现代图像主干。现有的最先进的BEV检测器通常与VoVNet等深度预训练的主干相关联,阻碍了蓬勃发展的图像主干与BEV检测器之间的协同作用。为了解决这一限制,我们优先考虑通过引入透视视图监督来简化BEV检测器的优化。为此,我们提出了一种两阶段的BEV探测器,其中来自视角头部的建议被馈送到鸟瞰头部以进行最终预测。为了评估我们的模型的有效性,我们进行了广泛的消融研究,重点是监督的形式和提议的检测器的一般性。该方法在大尺度nuScenes数据集上得到了新的SoTA结果。
Introduction
鸟瞰(BEV)识别模型[17,21,25,27,29,35,42]是一类基于相机的3D目标检测模型。它们吸引了人们对自动驾驶的兴趣,因为它们可以自然地将来自多个传感器的部分原始观察整合到一个统一的整体3D输出空间中。典型的BEV模型建立在图像主干上,然后是视图转换模块,该模块将透视图像特征提升为BEV特征,然后由BEV特征编码器和一些特定任务头进一步处理。尽管在设计视图转换模块[17,27,42]和整合不断增长的下游任务列表[9,27]上投入了很多努力。在新的识别框架中,对纯电动汽车模型中图像主干的研究很少受到重视。作为一个前沿和高要求的领域,将现代图像骨干引入自动驾驶是很自然的。令人惊讶的是,研究界选择坚持使用VoVNet[13]来享受其大规模深度预训练[26]。在这项工作中,我们专注于释放现代图像特征提取器在纯电动汽车识别中的全部力量,为未来研究人员在该领域探索更好的图像骨干设计打开大门。
然而,简单地使用现代图像主干而不进行适当的预训练并不能取得令人满意的效果。例如,ImageNet[6]预训练的ConvNeXt-XL[23]骨干与DDAD-15M预训练的VoVNet-99[23]骨干在3D目标检测方面的性能相当,尽管后者的参数是前者的3.5倍。我们将适应现代图像主干的斗争归功于以下问题:1)自然图像与自动驾驶场景之间的领域差距。在一般的2D识别任务中,预训练的主干在感知3D场景,尤其是深度估计方面存在不足。(2)现行BEV探测器结构复杂。以BEVFormer[17]为例。三维边界框和目标类标签的监督信号通过视图编码器和目标解码器从图像主干中分离出来,每个编码器都由多层变压器组成。用于自动驾驶任务的一般二维图像主干的梯度流被叠加的变压器层扭曲。
为了解决上述问题,我们在BEVFormer中引入了视角监督,即从视角-视角任务中提取额外的监督信号,并直接应用于主干网。它引导骨干学习2D识别任务中缺失的3D知识,克服了BEV检测器的复杂性,极大地促进了模型的优化。具体而言,我们在主干上构建透视三维检测头[26],以图像特征为输入,直接预测目标物体的三维边界框和类标签。将该透视头的损耗记为透视损耗,与由该BEV头导出的原始损耗(BEV损耗)相加,作为辅助检测损耗。用相应的损失项对两个检测头进行联合训练。此外,我们发现很自然地将两个检测头组合成一个两级BEV检测器,BEV- Former v2。由于透视图头部是成熟的,它可以在透视图中生成高质量的对象建议,我们将其用作第一阶段的建议。我们将它们编码为对象查询,并将它们与原始BEVFormer中的可学习对象收集在一起,形成混合对象查询,然后将其输入第二阶段检测头以生成最终预测。
我们进行了大量的实验来证实我们所提出的视角监督的有效性和必要性。透视损失有利于图像主干的自适应,提高了检测性能,加快了模型收敛速度。然而,如果没有这种监督,即使用更长的时间表训练,该模型也无法获得可比的结果。因此,我们成功地将现代图像骨干适应为BEV模型,在nuScenes[2]测试集上实现了63.4%的NDS。我们的贡献可以总结如下:
我们指出,视角监督是使一般2D图像骨干适应BEV模型的关键。我们通过透视视图中的检测损失显式地添加了这种监督。
我们提出了一种新型的两级BEV检测器,BEV- Former v2。它由一个透视3D和一个BEV检测头组成,前者的建议与后者的目标查询相结合。我们通过将其与最新开发的图像主干相结合,突出了我们方法的有效性,并在nuScenes数据集上实现了比以前最先进的结果的显着改进。
Related Works
BEV 3D Object Detector
鸟瞰(BEV)目标检测由于在自动驾驶系统中的巨大成功,近年来引起了越来越多的关注[17,21,25,27,29,35,42]。早期的工作包括OFT [29], Pseduo LiDAR[35]和VPN[25],它们阐明了如何将视角特征转换为BEV特征,但无论是用于单个摄像机还是用于不太知名的任务。OFT[29]率先采用从2D图像特征到3D BEV特征的转换进行单眼3D物体检测。伪激光雷达[35],顾名思义,是通过单目深度估计和相机本征产生伪点云,然后在BEV空间进行处理。VPN[25]是第一个将多视图摄像机输入融合到自上而下的视图特征图中进行语义分割的。
现代方法得益于 2D-3D 视图转换所提供的不同视角传感器特征的整合便利性。LSS [27] 通过在 BEV 柱特征池化过程中引入潜在深度分布扩展了 OFT。此外,LSS 在池化时使用了六张周围图像,而 OFT 只使用了一张。与 LSS 中的 2D 到 3D 抬升或 OFT 中的 3D 到 2D 投影不同,CVT [42] 利用相机感知的位置编码和密集交叉注意力来连接透视视图和 BEV 视图特征。PETR [21] 设计了一种无需显式构建 BEV 特征的方法。透视特征图与 3D 位置嵌入特征图按元素融合,随后应用 DETR 风格的解码器进行目标检测。BEVFormer [17] 利用空间交叉注意力进行视图转换,利用时间自注意力进行时间特征融合。BEVFormer 的全 Transformer 结构使其 BEV 特征比其他方法更具通用性,能够轻松支持非均匀和非规则采样网格。此外,正如 Simple-BEV [7] 所展示的那样,多尺度可变形注意力机制 [43] 在所有提升策略中表现出色。因此,我们选择基于 BEVFormer 构建检测器,以利用上述优势。除了已出版的作品外,由于这一领域的普及,还有许多并行的作品。引入了丰富的图像级和bev级增强训练。BEVStereo[14]和STS[37]均采用了时-分形立体模式,以获得更好的深度估计。Polar- Former[11]提出了一个非直角三维网格设置。SimpleBEV[7]比较了不同的2D-3D提升方法。与现有的主要探索检测器设计的工作不同,我们专注于将现代图像主干应用于BEV识别模型。
Auxiliary Loss in Camera 3D Object Detection
由于大多数方法[15,20,26,30,32,33,40]是建立在2D检测器(如RetinaNet[18]和FCOS[31])上,辅助损失在单眼3D物体检测中普遍存在。但这些辅助损失很少赋予二维监督任何明确的意义。MonoCon[20]通过使用多达5种不同的2D监督,充分利用了2D辅助。对于BEV探测器,BEVDepth[15]利用Li- DAR点云对其中深度网络进行监督。MV-FCOS3D++[32]引入了视角监督来训练其图像骨干,但检测器本身仅受BEV损失的监督。SimMOD[41]的单目提议头采用2D辅助损耗。与以往的方法不同,我们的方法采用了端到端的视角监督方法,没有使用LiDAR点云等额外数据。
Two-stage 3D Object Detector
尽管两级探测器在基于激光雷达的三维目标检测中很常见[1,5,12,16,28,38,41],但它们在基于相机的三维检测中的应用却鲜为人知。MonoDIS[30]使用RoIAlign从2D方框中提取图像特征,然后对3D方框进行回归。SimMOD[41]采用单目3D头进行建议,使用DETR3D[36]头进行最终检测。然而,在两个阶段使用相同的主干骨特征不能为第二阶段的头部提供信息增益。我们认为这是两级检测器在基于相机的3D检测中不那么流行的主要原因。相反,我们的两阶段检测器利用了视角和BEV视图的特征,从而同时享受图像和BEV空间的信息。
BEVFormer v2
将现代2D图像主干应用于纯电动汽车识别,而无需繁琐的深度预训练,可以为下游自动驾驶任务解锁许多可能性。在这项工作中,我们提出了BEVformer v2,这是一种两级BEV检测器,它结合了BEV和视角监督,以便在BEV检测中轻松采用图像骨干。
BEVFormer v2的整体架构。图像主干生成多视图图像的特征。透视图3D头进行透视图预测,然后将其编码为对象查询。BEV头是编码器-解码器结构。空间编码器通过聚合多视图图像特征生成电动汽车特征,时间编码器收集历史电动汽车特征。解码器将混合对象查询作为输入,并根据BEV特征进行最终的BEV预测。整个模型用两个检测头的两个损失项Lpers和Lbev进行训练。
Overall Architecture
如图1所示,BEVFormer v2主要由五个部分组成:图像主干、透视3D检测头、空间编码器、改进的时间编码器和BEV检测头。与原来的BEVFormer[17]相比,除了空间编码器外,所有组件都进行了更改。具体来说,BEVFormer v2中使用的所有图像主干都没有使用任何自动驾驶数据集或深度估计数据集进行预训练。介绍了一种透视三维检测头,以方便二维图像骨干的自适应,并为BEV检测头生成目标方案。为了更好地融合长时频信息,采用了一种新的时域BEV编码器。BEV检测头现在接受一组混合对象查询作为输入。我们将第一阶段的建议与学习到的对象查询结合起来,形成第二阶段的新的混合对象查询。
Perspective Supervision
我们首先分析了BEV模型的问题,以解释为什么需要额外的监督。如图2所示,典型的BEV模型保持网格形状的BEV特征,其中每个网格在相应的2D像素处聚集来自多视图图像特征的3D信息。然后根据BEV特征预测目标物体的三维边界框和类标号,我们将这种监督称为BEV监督。以BEVformer[17]为例,它由一个编码器和一个解码器组成,两者都是多层的变压器。
视角(a)与BEV (b)监管的比较。透视检测器的监督信号是直接针对图像特征的,而纯电动检测器的监督信号是间接的
编码器为每个网格单元分配一组3D参考点,并将其作为2D参考点投射到多视图图像上,通过空间交叉注意对其周围的图像特征进行采样和聚合。解码器是一个可变形的DETR[43]头。BEV监管的根本问题是,它是间接的图像特征。梯度流被三维到二维的投影和多层变压器的细心采样所扭曲,这意味着监督信号在很大程度上与图像主干分离。因此,在训练过程中出现了一个一致性,即BEV检测头依赖于图像特征中包含的3D信息,但对于如何对这些信息进行编码却没有提供足够的指导。
以前的BEV方法没有受到这种不一致的严重影响,它们甚至可能没有意识到这个问题。这是因为它们的骨干要么规模相对较小,要么已经接受过单眼检测头的3D检测任务的预训练。如图2所示,与BEV头相比,透视3D头对图像特征进行逐像素预测,为适应2D图像骨干提供了更丰富的监督信号。我们将这种直接施加于图像特征上的监督定义为透视监督。我们假设视角监督明确地引导主干感知3D场景并提取有用的信息,例如物体的深度和方向,克服了BEV监督的缺点,因此在使用现代图像主干训练BEV模型时至关重要。
Perspective Loss
正如上一节所分析的,视角监督是优化纯电动汽车模型的关键。在BEVformer v2中,我们通过辅助视角损失引入了视角监督。具体来说,在骨架上构建一个透视3D检测头,用于在透视视图中检测目标物体。我们采用类似FCOS3D[33]的检测头,预测三维边界框的中心位置、大小、方向和投影中心度。该头部的检测损耗记为视角损耗Lpers,作为BEV损耗Lbev的补充,便于骨干网络的优化。整个模型是用一个总目标来训练的
Ravamped Temporal Encoder
BEVFormer使用循环时间自关注来合并历史BEV特征。但是时间编码不能充分利用长期时间信息,简单地将循环步骤从4增加到16不会产生额外的性能增益。我们通过使用简单的翘曲和连接策略重新设计了BEVFormer v2的时间编码器。给定不同帧k的BEV特征Bk,我们首先根据帧t和帧k之间的参考帧变换矩阵Tkt =[R|t]∈SE3,将Bk双线性地变形为当前帧Bkt,然后沿着通道维数将之前的BEV特征与当前BEV特征连接起来,并使用残差块进行降维。为了保持与原始设计相似的计算复杂度,我们使用了相同数量的历史BEV特征,但增加了采样间隔。除了受益于长期时间信息,新的时间编码器还解锁了在离线3D检测设置中利用未来BEV功能的可能性。
Two-stage BEV Detector
虽然联合训练两个检测头提供了足够的监督,但我们从不同的角度分别得到两组检测结果。我们设计了一种新颖的结构,将两个头部集成到一个两级预测管道中,即两级BEV检测器,而不是采用BEV头部的预测而丢弃视角头部的预测或通过NMS启发式地组合两组预测。BEV头部的目标解码器adedr[3]解码器使用一组学习到的嵌入作为对象查询,通过训练学习到目标对象可能的位置。然而,随机初始化的嵌入需要很长时间来学习合适的位置。此外,在推理过程中,对所有图像的学习对象查询是固定的,由于对象的空间分布可能会发生变化,因此可能不够准确。为了解决这些问题,透视头的预测通过后处理进行过滤,然后融合到解码器的对象查询中,形成一个两阶段的过程。这些混合对象查询提供了高分(概率)的候选位置,使BEV头在第二阶段更容易捕获目标对象。后面将描述带有混合对象查询的解码器的细节。需要注意的是,第一阶段的建议并不一定是来自透视探测器,例如来自另一个BEV探测器,但实验表明,只有透视视图的预测对第二阶段的BEV头有帮助。
Decoder with Hybrid Object Queries
BEVFromer v2中BEV头的解码器。第一阶段建议的投影中心被用作每个图像的参考点(紫色的),它们与每个数据集学习的内容查询和位置嵌入(蓝色的)结合起来作为混合对象查询。
为了将第一阶段的建议融合到第二阶段的对象查询中,基于BEVFormer[17]中使用的Deformable DETR[43]解码器,对BEV- former v2中BEV头部的解码器进行了修改。解码器由堆叠交替的自注意层和交叉注意层组成。交叉注意层是一个可变形的注意模块[43],它接受以下三个元素作为输入。(1)内容查询,查询特征产生采样偏移量和关注权值。(2)参考点,将值特征上的二维点作为每次查询的采样参考。(3)价值特征,要参加的BEV特征。在原始的BEVFormer[17]中,内容查询是一组学习到的嵌入,参考点是用一组学习到的位置嵌入的线性层来预测的。在BEVformer v2中,我们从透视头部获得建议,并通过后处理选择其中的一部分。如图3所示,所选提案的BEV平面上的投影框中心被用作每幅图像的参考点,并与位置嵌入生成的每个数据集的参考点相结合。每幅图像的参考点直接指示物体在BEV平面上的可能位置,使解码器更容易检测到目标物体。然而,由于遮挡或出现在两个相邻视图的边界上,一小部分物体可能无法被透视头检测到。为了避免丢失这些对象,我们还保留了原始的每个数据集参考点,以便通过学习空间先验来捕获它们。
Conclusion
现有的研究在设计和改进鸟瞰图识别模型的检测器方面做了大量的工作,但往往停留在特定的预训练骨架上,缺乏深入的研究。在本文中,我们的目标是在纯电动汽车模型上释放现代图像骨架的全部力量。我们将一般二维图像骨架的适应问题归结于BEV探测器的优化问题。为了解决这一问题,我们在纯电动汽车模型中引入了视角监督,从一个额外的视角3D检测头中添加了辅助损失。此外,我们将两个检测头集成为一个两级检测器,即BEVFormer v2。成熟的视角头提供第一阶段的目标建议,这些建议被编码到BEV头的目标查询中,用于第二阶段的预测。大量的实验验证了该方法的有效性和通用性。视角监督引导2D图像骨干感知自动驾驶的3D场景,帮助BEV模型实现更快的收敛和更好的性能,适用于广泛的骨干。此外,我们成功地将大规模骨干网应用于BEV- Former v2,在nuScenes数据集上获得了新的SoTA结果。我们认为我们的工作为未来的研究人员探索更好的纯电动汽车模型的图像主干设计铺平了道路。