BEVFormerV2:Adapting Modern Image Backbones to Bird’s-Eye-View Recognition via Perspective Supervisi

参考代码:暂无

1. 概述

介绍:FCOS使用2D图像作为感知输入,在经过trick调整和优化之后也能在3D目标检测任务中获得不错的效果,也就说明了只使用2D图像对于3D目标也是具备感知,这一点是这篇文章便是以此关键点出发构造BEV检测算法。在以往的BEV目标检测算法中,只会在BEV特征上使用检测头去检测场景中的目标,之后通过梯度反传去更新网络之前的模块,这就可能会导致如backbone性能无法有效发挥或出现灾难性遗忘的情况,对此文章在2D特征维度引入一个附加3D目标检测头,用以为网络添加特征约束和优化后面BEV中DETR检测任务头中的query,使得网络收敛更快。结合InternImage作为backbone、时序特征融合、检测query优化等策略文章的算法目前刷到了SOTA。

对于常见2D和BEV下的检测算法其pipeline见下图所示:
在这里插入图片描述
上面左右两幅图展示了2D和BEV模态下的目标检测任务,但是它们都有一个特点便是loss产生的梯度会传递很长的距离才能到达输入节点。在现有的BEV分割任务中已经证实添加2D辅助分支对于提升BEV的感知结果是有收益的。基于这样的观察文章在2D特征处添加3D目标检测模块,并用它的检测结果优化BEV检测中的query。

2. 方法设计

2.1 整体pipeline

在这里插入图片描述
从上图中可以看到文章的BEV检测算法与Bevformer算法框架类似,最大的区别是添加了一个2D辅助感知分支,将其检测结果作为后续BEV的额外query,类似于两阶段检测算法中第一阶段的检测用于提取proposal,而后续阶段在此基础上进一步优化。

2.2 具体实现

1. backbone部分:
在检测任务中经常使用VoVNet-99作为backbone,而文中则采用InternImage,其原因便是其设计思路与transformer网络更为相似,其抽取特征的能力更强。backbone的选择对性能带来的影响:
在这里插入图片描述

2. BEV特征构建:
对于BEV特征的构建与BevFormer类似也是采用query的形式,不过在时序特征融合部分采利用了帧间pose信息将不同帧的pose变换到同一坐标系下concat,这样会比原方案中使用GRU的方案效果更好。此外还添加了如时序采样间隔(间隔0.5s)、双向时序编码等trick用以进一步提点。将文中的一些trick在提前在这里总结:
在这里插入图片描述

3. 2D、3D上的检测分支:
2D上的检测分支用来提升特征的表达能力和给BEV特征提供有效proposal,帮助收敛。这两个部分的检测头的选择文章通过消融实验选出最适合的匹配:
在这里插入图片描述

4. BEV检测部分query构造:
这里query的主体结构与DETR相似,采用content和positional的组合。不过为了更进一步使用2D感知的结果这里显式使用了其投影中心点作为参考点,从而给予BEV处较好的先验query以加速收敛和提升效果。其流程见下图所示:
在这里插入图片描述
2D部分感知对性能带来的影响:
在这里插入图片描述

5. 损失函数:
文章的算法在2D和BEV特征上均做了检测,则网络的损失也是源自于这两处,则损失函数为两则的组合:
L t o t a l = λ b e v L b e v + λ p e r s L p e r s L_{total}=\lambda_{bev}L_{bev}+\lambda_{pers}L_{pers} Ltotal=λbevLbev+λpersLpers

3. 实验结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m_buddy/article/details/129891673