BEVFormer v2论文阅读

摘要

本文工作

提出了一种具有透视监督(perspective supervision)的新型鸟瞰(BEV)检测器,该检测器收敛速度更快,更适合现代图像骨干。现有的最先进的BEV检测器通常与VovNet等特定深度预训练的主干相连,阻碍了蓬勃发展的图像主干和BEV检测器之间的协同作用。为了解决这一限制,我们优先考虑通过引入透视图监督(perspective view supervision)来简化BEV探测器的优化。为此,我们提出了一个两阶段的BEV检测器,其中来自透视头的proposals被输入入鸟瞰头进行最终预测。

实验效果

为了评估我们的模型的有效性,我们进行了广泛的消融研究,重点是监督的形式和所建议的探测器的类型。在大规模NUSCENES数据集上,对该方法进行了广泛的传统和现代图像主干的验证,取得了新的SOTA结果。

1. 介绍(Introduction)

鸟瞰识别模型吸引了人们对自动驾驶的兴趣,因为它们可以自然地将多个传感器的部分原始观测集成到一个统一的整体3D输出空间中。一个典型的BEV模型建立在一个图像骨干网络上,然后是一个视图转换模块,该模块将每个特定的图像特征提升为BEV特征,然后由BEV特征编码器和一些特定任务的头进行处理。
虽然在设计视图转换器上投入了很多心血,和不断增加的下游任务并入新的识别框架中,对BEV模型中的图像骨干网络的研究受到的关注要少得多。自动驾驶作为一个前沿、高要求的领域,将现代图像骨干网络引入到自动驾驶中是顺理成章的事情。令人惊讶的是,学术界为了大规模深度预训练,选择坚持Vovnet。在本工作中,我们致力于充分发挥现代图像特征提取器在BEV识别中的作用,为未来研究人员在该领域探索更好的图像骨干网络设计打开大门。

然而,简单地使用这些现代图像骨干网络而不进行适当的预训练是不能产生令人满意的结果的。 例如,ImageNet预先训练的ConvNext-XL主干的性能与DDAD-15M预先训练的用于3D目标检测的Vovnet-99不相上下。尽管后者有前者的3.5倍的参数。

我们需要努力适应现代图像骨干的以下问题:

  • 自然图像和自动驾驶场景之间的领域差距。在一般的二维识别任务中预先训练的骨干对三维场景的感知能力不足,尤其是对深度的估计。
  • 目前BEV探测器结构复杂。拿Bevformer作为一个例子。通过视图编码器和对象解码器将三维包围盒和对象类别标签的监督信号从图像主干中分离出来,每个视图编码器和对象解码器都由多层transformer组成。适用于自动驾驶任务的一般2D图像骨干的梯度流被堆叠的transformer 层扭曲。

为了克服上述困难,采用现代图像主干进行BEV识别,我们在Bevformer中引入透视监督,即从透视任务发出的监督信号,并直接应用于主干。它引导骨干学习二维识别任务中缺少的三维知识,克服了BEV检测器的复杂性,极大地方便了模型的优化。

具体来说,我们构建一个透视3D检测头在主干上,以图像特征为输入,直接预测目标对象的三维边界框和类标签 作为辅助检测损失,将该透视头的损失(perspective loss)添加到从BEV头导出的原始损失(BEV loss)中。用相应的损失项联合训练两个分解头。此外,我们发现可以很自然的将这两个探测头组合成一个两级BEV探测器,BEV-Former V2。由于透视头是完全成熟的,它可以在perspective视图中生成高质量的对象建议,我们将其用作第一阶段建议。我们将它们编码为对象查询,并将它们与原始Bevformer中的可学习查询集合在一起,形成混合对象查询,然后将混合对象查询送入第二级DetectionHead以生成最终预测。

我们进行了大量的实验来证实我们提出的透视超视觉的有效性和必要性。perspective loss 促进了图像骨干的自适应,从而提高了检测效率,加快了模型的收敛速度。如果没有这种监督,即使用更长的时间表训练,该模型也无法实现可比的再输出。因此,我们成功地将现代图像主干与BEV模型相适应,在NUSCENES上获得了63.4%的NDS2]测试集。
我们的贡献可概括如下:

  • 我们指出透视监督是使一般2D图像骨干网络适配到BEV模型的关键。我们通过透视图中的检测损失明确地添加了这种监督。
  • 我们提出了一种新型的两级BEV探测器,BEV-former V2。它由透视3D和BEV检测头组成,前者的建议与后者的对象查询相结合。
  • 我们通过将其与最新的图像骨干网络结合起来,并在Nuscenes数据集上实现了对以前最优结果的显著改进,从而显示了我们方法的有效性。

2. 相关工作(Related Works)

2.1. BEV三维物体探测器 (BEV 3D Object Detector)

因为在自动驾驶领域的巨大成功,BEV目标检测器获得了较多的关注。早期的工作主要是利用单目深度估计和逆透视变化生成伪点云。近期的一些工作倾向于把不同视角下的特征通过2D-3D转换得到3D特征。

2.2. 摄像机三维目标检测中的辅助损失 (Auxiliary Loss in Camera 3D Object Detection)

辅助损失在单目3D目标检测中是普遍存在的。但是它们的辅助损失很少在2D监督上有明确的意义。

2.3. 二阶段的三维物体探测器(Two-stage 3D Object Detector)

两阶段检测方法在激光雷达3D目标检测中较为常见,但图像3D目标检测中极为少见。

3. BEVFormer v2

采用现代2D图像骨干网络进行BEV识别,无需进行繁琐的深度预训练,可以提高BEV识别效率,为下游的自动驾驶任务提供了多种可能性。

在这项工作中,我们提出了Bevformer V2,一个两阶段的BEV检测器,它结合了BEV和透视监督,在BEV检测中避免了采用图像骨干的麻烦。

3.1 总体架构(Overall Architecture)

如图1所示 Bevformer V2主要由图像骨干网络、透视3D检测头、空间编码器、改进型时间编码器和BEV检测头五部分组成。与原始Bevformer相比,除了空间编码器以外的所有组件都进行了改造。具体地说,Bevformer V2中使用的所有图像骨干网络都不是用任何自动驾驶数据集或深度估计数据集预先训练的。引入透视3D检测头,以方便2D图像骨干的自适应,并为BEV检测头生成对象proposals。采用了一种新的时域BEV编码器,以更好地融合长期的瞬态信息。BEV检测头现在接受混合对象查询集作为输入。我们将第一阶段的建议和学习到的对象查询结合起来,形成新的混合对象查询,用于第二阶段。

图1: Bevformer V2的整体架构。图像骨干网各生成多视图图像的特征。透视3D头进行透视预测,然后将其编码为对象查询。BEV头为编码器-解码器结构。空间编码器通过聚合多视图图像特征生成BEV特征,其次是时间编码器收集历史BEV特征。译码器以混合对象查询为输入,根据BEV特征进行最终的BEV预测。整个模型用两个检测头的两个损失项L_{pers}L_{bev}训练。

3.2. 透视监督(Perspective Supervision)

我们首先分析了鸟瞰模型的问题,以解释为什么额外的监督是必要的。一个典型的BEV模型在BEV平面上有对应的网格状的特征,其中每个网格聚集来自多视图图像对应的2D像素处的特征的3D信息。它根据BEV特征预测目标对象的3D检测框,我们将这种强加在BEV特征上的监督命名为BEV监督。
以Bevformer作为一个例子,它使用编码器-解码器结构来生成和利用BEV特性。编码器为BEV平面上的每个网格单元分配一组3D参考点,并将它们作为2D参考点投影到多视图图像上。然后,对二维参考点周围的图像特征进行采样,并利用交叉注意力将其聚合为BEV特征。解码器是一个Deformable DETR头,它在BEV坐标中预测3D包围盒,并进行少量固定数量的对象查询。图 2 介绍了由3D到2D视图转换和DETR头引入的BEV监督的两个尚未解决的问题:

  • 对图像特征的监督是隐含的。这种损失直接作用于BEV特征,而经过3D到2D投影和注意力采样(attentive samplin)后,这种损失就间接作用于BEV特征。
  • 对图像特征的监督是稀疏的。只有少量用于目标查询的BEV网格才能导致损失。 因此,只有那些网格的2d参考点周围的稀疏像素获得监督信号。

因此,在训练过程中,BEV检测头依赖于包含在图像特征中的三维信息,但对骨干如何编码这些信息提供了不足的指导。

以前的BEV方法并没有严重地受到这种不一致性的困扰,它们甚至可能没有意识到这个问题。这是因为它们的主干网络要么有相对较小的尺度,要么已经用单目检测头预先训练过3D检测任务。与BEV头相比,透视3D头对图像特征进行每像素预测,为适应2D图像骨干提供更丰富的监督信号。我们将这种强加在图像特征上的监督定义为透视监督。如图2所示,与BEV监督不同的是,透视检测损失直接密集地应用于图像特征。我们假设透视监督显式地引导主干网络感知三维场景并提取有用的信息,如目标的深度和方位。克服了BEV监督的缺点,因此,在训练BEV模型时使用现代图像的主干网路是非常必要的。


透视监督和BEV监督的对比:透视探测器的监督信号密集且直接指向图像特征,而BEV探测器的监督信号稀疏且间接。

下图是BEVformer中采用的是BEV监督:

3.3. 透视损失(Perspective Loss)

正如前一节所分析的,透视监督是优化BEV模型的关键。在Bevformer V2中,我们通过一个辅助透视损失引入透视监督。具体地说,在主干上构建透视3D检测头,以检测透视图中的目标对象。我们采用FCOS3D类似的检测头,它预测3D包围盒的中心位置、大小、方向和投影中心度。该检测头的检测损失被记为透视损失L_{pers}​, 它作为BEV损失L_{bev}的一个组成,用来促进骨干网络的优化。整个模型是以一个总的目标来训练的

3.4. 改进时间编码器(Ravamped Temporal Encoder)

Bevformer使用循环时间自注意力机制来融合历史的BEV特征。但是时间编码器不能充分利用长期的时间信息,简单地将循环步长从4步增加到16步并不能获得额外的性能提高。
我们采用简单的扭曲和联结策略重新设计了Bevformer V2的时间编码器。给定在不同帧k处的BEV特征B_k,我们首先通过第t帧和第k帧之间的转换矩阵T_k^t=[\mathbf{R} \mid \mathbf{t}] \in \mathrm{SE}B_k 双线性变换成B_k^t
然后沿通道方向将先前的BEV特征与当前的BEV特征串联起来,并利用残差块进行维数约简。为了保持与原始设计相似的计算复杂度,我们使用了相同数量的历史BEV特征,但增加了采样间隔。除了从长期时间信息中获益之外,新的时间编码器还打开了在离线三维检测设置中利用未来BEV特征的可能性。

3.5. 两阶段的BEV检测器(Two-stage BEV Detector)

虽然联合训练两个检测头进行训练提供了足够的监督,但我们从不同的角度分别得到了两组检测结果。我们设计了一种新的结构,将两个头集成为两级预测流水线,即两级BEV检测器(two-stage detector),而不是采用BEV头的预测而抛弃透视头的预测或者通过NMS启发式地将两组预测组合。BEV头中的对象解码器,一个detr[3]解码器,使用一组学习到的embeddings作为对象查询,它通过训练来学习目标对象的位置。然而,随机初始化的embeddings需要很长时间来学习合适的位置。此外,学习对象查询对于所有的图像都是固定的,由于对象的分布可能不同,因此可能不够准确。为了解决这些问题,对透视头的预测进行后处理过滤,然后融合到解码器的对象查询中,形成一个两阶段的过程。这些混合对象查询提供了高得分(概率)的候选位置,使BEV头在第二阶段更容易捕获目标对象。
混合对象查询的详细信息将在后面描述。应该注意的是,第一阶段的建议不一定是来自一个透视检测器,例如来自另一个BEV检测器,但实验表明,只有从透视图的预测才对第二级BEV头有帮助。

3.6. 混合对象查询的解码器(Decoder with Hybrid Object Queries)

为了将第一阶段的建议融合到第二阶段的对象查询中,基于在BEVFormer 中使用的Deformable DETR编码器,对BEVFormer v2中使用的BEV 检测头的编码器进行修改。
解码器由层叠交替的自注意层和交叉注意层组成。交叉注意力层是一种deformable的注意力模式,它以以下三个元素作为输入。(1)内容查询(content queries):产生抽样偏移量和关注权重的查询特征。(2)参考点(Reference points):作为每个查询的采样参考,在值特征上的2D点。(3)值特征(Value features):即要注意的BEV特征。在原来的Bevformer中,内容查询是一组学习的嵌入,参考点是从一组学习的位置嵌入中用线性层预测的。在Bevformer V2中,我们从每个特定的头部获得建议,并通过后处理选择其中的一部分。如图3所示,将所选提议的BEV平面上的投影框中心作为每幅图像的参考点,并与位置嵌入生成的每数据集参考点相结合。每幅图像的参考点直接指示出目标物体在BEV平面上的可能位置,使解码器更容易地检测到目标物体。 然而,一小部分物体可能由于遮挡而无法被透视头检测到或出现在两个相邻视图的边界处。为了避免丢失这些对象,我们还保留了原始的每个数据集的参考点,以便通过学习空间先验来捕获它们。

图三:BEVformer v2中的BEV头的解码器。第一阶段的提议(perspective proposals)的投影中心(Projected Centers)被用作每个图像的参考点(Reference Points),它们与每个数据集学习的内容查询(Content Queries)和位置嵌入(Positional Embeddings)结合作为混合对象查询。

4. 实验结果

4.1. nuScenes 3D物体检测benchmark

表1:nuScenes test set的3D物体检测结果

BEVFormer v2在自动驾驶权威数据集nuScenes的3D物体检测任务上超越了已有SOTA方法,NDS为63.4,mAP为55.6,比之前最好的方法分别提升了 2.4和3.1。此外,使用InternImage-B作为backbone的模型也超过了之前的方法,InternImage-B和V2-99参数量相近但没有使用3D预训练,这证明了3D预训练不是必须的。

4.2. 不同视角监督信号的比较

表2:不同视角监督信号的组合的对比

• Perspective Only:只使用perspective head

• BEV Only:只使用BEV head

• Perspective & BEV(BEVFormer v2):使用perspective head和BEV head组成二阶段检测器

• BEV & BEV:使用两个BEV head组成二阶段检测器

Perspective Only和BEV Only对比: BEV head使用多个相机视角的信息确定物体位置,因此具有更高的mAP。但是perspective head有更低的mATE和mAOE,表明它对深度和方向这些3D属性的预测更为准确。

BEV Only和Perspective & BEV对比: BEVFormer v2引入perspective supervision取得了NDS 2.5,mAP 1.9的较大提升,且mATE,mAOE和mAVE显著降低,模型能更好地感知3D场景,获取深度、方向和速度这些属性。

BEV & BEV和Perspective & BEV对比: 对two-stage pipeline进行消融实验,表明two-stage本身并不能提升性能,性能提升完全来自于perspective supervision的引入。

4.3. Perspective Supervision的泛化性

表3:使用不同图像backbone对perspective supervision进行消融实验

Perspective supervision可以泛化到多种不同结构和尺寸的2D图像backbone,均能带来NDS约3.0,mAP约2.5的显著提升。

4.4. 其他实验表现

表4:不同训练时长的对比。Perspective supervision能促进模型的优化,加速收敛
表5:Perspective head和BEV head的不同选择对比。在perspective head的选择中,相比DETR3D head的稀疏预测,DD3D head的密集预测能提供更丰富的监督信号,因此效果更好
表6:BEVFormer v2使用的其他技巧的消融实验,包括图像级别的数据增强、输入序列的时间间隔增加、以及使用双向的时序信息。

5. 结论

现有的工作在设计和改进鸟瞰(BEV)识别模型的检测器方面付出了很大的努力,但它们通常停留在特定的预先训练的主干网络上,而没有进一步探索。在本文中,我们的目标是在 BEV 模型上释放现代图像骨干的全部力量。我们将通用 2D 图像主干网适应 BEV 检测器的优化问题。为了解决这个问题,我们通过添加来自额外视角 3D 检测头的辅助损失,将视角监督引入到 BEV 模型中。此外,我们将两个检测头集成到一个两级检测器中,即BEVFormer v2。成熟的透视头提供第一阶段的对象建议,这些建议被编码到 BEV 头的对象查询中以进行第二阶段的预测。大量的实验验证了我们提出的方法的有效性和通用性。透视监督引导2D图像主干感知自动驾驶的3D场景,帮助BEV模型实现更快的收敛和更好的性能,并且适用于广泛的主干。此外,我们成功地将大规模骨干网适应了 BEV-Former v2,在 nuScenes 数据集上取得了新的 SoTA 结果。我们认为我们的工作为未来的研究人员探索更好的 BEV 模型图像主干设计铺平了道路。

参考文献

BEVFormer v2: Adapting Modern Image Backbones to Bird’s-Eye-View Recognition via Perspective Supervision

论文精读:《BEVFormer v2: Adapting Modern Image Backbones to Bird’s-Eye-View Recognition via Perspective 》-CSDN博客

BEVFormer v2:让新型图像主干网络在BEV感知中发挥强大能力|论文解读 - 脉脉 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/481631.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot整合ShardingSphere-JDBC 5.3.2 实现读写分离、分库分表。

👩🏽‍💻个人主页:阿木木AEcru 🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》 💹每一次技术突破,都是对自我能力的挑战和超越。 Docker部署MYSQL主从详细教程-阿木木AEcru…

计算机网络:物理层下的传输媒体概览

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

秘钥缩写、全称和中文名

三级加密体系 第一级: LMK(LOCAL MAIN KEY),存放于HSM机中,用于对所有存于本地的其他密钥和加密数据进行加密,是最重要的密钥。 第二级: 如ZMK(即平时大家说的主密钥MK),存于本地或…

autorun 病毒清除工具 源码

** autorun 病毒清除工具 源码 ** 1、新建一个记事本:AutoRun病毒清理工具.txt,复制以下代码: Autorun 病毒清除工具 Echo Offcolor 2etitle Autorun 病毒清除工具-By 段子手168 2023-10-25Rem 杀进程taskkill /F /IM SocksA.exe /IM …

hyper-v虚拟机使用宿主机usb设备

文章目录 一、修改宿主机组策略二、使用 一、修改宿主机组策略 在宿主电脑上,按 winr 组合键打开运行窗口,输入 gpedit.msc 打开组策略编辑器,依次点击计算机配置- 管理模板- Windows 组件- 远程桌面服务- 远程桌面会话客户端- RemoteFX USB…

目标检测——PP-YOLOE算法解读

PP-YOLO系列,均是基于百度自研PaddlePaddle深度学习框架发布的算法,2020年基于YOLOv3改进发布PP-YOLO,2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet,2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列,所以放一起解…

一键入门Ubuntu22!

目录 一、安装 二、常用目录 三、常用指令 四、用户指令 五、ssh与scp 六、服务相关 七、Python与Pycharm 八、Vim编辑器 九、Ubuntu22下使用Mysql 十、Ubuntu22下使用mongodb 十一、Ubuntu22下使用redis Ubuntu是一个基于Debian的开源操作系统,由Canoni…

基于霍夫检测(hough变换)的人眼瞳孔定位,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

网络原理(4)——TCP协议的特性

目录 一、滑动窗口 1、ack丢了 2、数据丢了 二、流量控制(流控) 三、拥塞控制 拥塞窗口动态变化的规则 四、延时应答 五、捎带应答 六、面向字节流 七、异常情况 (1)进程崩溃了 (2)其中一方关机…

虚拟机开机启动失败,进入(initramfs)解决办法

虚拟机开机启动失败,进入(initramfs)解决办法 打开虚拟机中Ubuntu时进入(initramfs),导致无法进入桌面。问题如下图显示: 命令行输入 fsck -y /dev/sda5输入 exit进入 选择root 后回车 输入虚拟机的密码 进入 root …

网络原理(5)——IP协议(网络层)

目录 一、IP协议报头介绍 1、4位版本 2、4位首部长度 3、8位服务器类型 4、16位总长度 5、16位标识位 6、3位标志位 7、13位偏移量 8、8位生存空间 9、8位协议 10、16位首部检验和 11、32位源IP地址 12、32位目的IP地址 二、IP协议如何管理地址? 1、动…

《剑指 Offer》专项突破版 - 面试题 88 : 动态规划的基础知识(C++ 实现)

目录 前言 面试题 88 : 爬楼梯的最少成本 一、分析确定状态转移方程 二、递归代码 三、使用缓存的递归代码 四、空间复杂度为 O(n) 的迭代代码 五、空间复杂度为 O(1) 的迭代代码 前言 动态规划是目前算法面试中的热门话题,应聘者经常在各大公司的面试中遇到…

STM32 CAN的工作模式

STM32 CAN的工作模式 正常模式 正常模式下就是一个正常的CAN节点,可以向总线发送数据和接收数据。 静默模式 静默模式下,它自己的输出端的逻辑0数据会直接传输到它自己的输入端,逻辑1可以被发送到总线,所以它不能向总线发送显性…

STM32利用串口标准库发送字节,发送数组,发送字符串,发送数字,实现printf功能。

早晨到现在刚刚完成的功能:发送字节,发送数组,发送字符串,发送数字,实现printf功能。 当然这是建立在昨天学习使用串口发送数据的基础上,新建立的功能函数,咱们先来看看这次实验的结果吧&#…

CCDP.02.OS正确部署后的Dashboard摘图说明

前言 在部署成功OpenStack后,应该可以在浏览器打开Dashboard,并对计算资源(这里主要是指VM)进行管理,也可以在Dashboard上面查看OpenStack是否存在错误,下面,已针对检查的关键点,用红…

程序员表白

啥?!你说程序员老实,认真工作,根本不会什么表白!那你就错了!(除了我) 那今天我们就来讲一下这几个代码!赶紧复制下来,这些代码肯定有你有用的时候! 1.Python爱心代码 im…

IAB欧洲发布首张泛欧洲数字零售媒体能力矩阵图

2024年1月18日,互动广告署-欧洲办事处(IAB Europe)发布了首张泛欧洲数字零售媒体能力矩阵图。为媒体买家提供的新资源概述了在欧洲运营的零售商提供的现场、场外和数字店内零售媒体广告机会。 2024年1月18日,比利时布鲁塞尔,欧洲领…

算法系列--递归(2)

💕"什么样的灵魂就要什么样的养料,越悲怆的时候我越想嬉皮。"💕 作者:Mylvzi 文章主要内容:算法系列–递归(2) 前言:今天带来的是算法系列--递归(2)的讲解,包含六个和二叉树相关的题目哦 1.计算布尔⼆叉树的…

企业微信可以更换公司主体吗?

企业微信变更主体有什么作用?当我们的企业因为各种原因需要注销或已经注销,或者运营变更等情况,企业微信无法继续使用原主体继续使用时,可以申请企业主体变更,变更为新的主体。企业微信变更主体的条件有哪些&#xff1…