详解多视角3D检测模型 BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection

在这里插入图片描述

本文介绍一个多视角的3D检测模型:BEVDepth,论文收录于 AAAI2023。在这篇文章中,作者提出了一种新的具有可信深度估计的三维物体检测器。本文提出的BEVDepth通过利用激光雷达显式深度监督来提高图像深度估计的可信度。作者引入了摄像机感知深度估计模块,以增强深度预测能力。此外,针对不精确特征投影带来的副作用,设计了一种新的深度细化模块。此外借助定制的高效体素池化和多帧机制,BEVDepth在nuScenes测试集上实现了60.9%NDS,NDS得分首次达到60%。

论文链接:https://arxiv.org/abs/2206.10092

项目链接:https://github.com/Megvii-BaseDetection/BEVDepth


1. Introduction

引言部分作者提出了疑问:目前3D检测器学习到的深度估计质量真的能满足精确地3D目标检测要求吗?为了回答这个问题,作者首先可视化了基于Lift-splat检测器学习到的深度(下图所示)。尽管此检测器取得了30 mAP,但是它学到的深度非常差(虚线框中是相对准确的深度预测区域,通常是和地面相邻的区域)。

表1中作者将学习到的深度用LiDAR生成的深度来代替,可以看到mAP和NDS提高了20个点左右(0.282/0.470,0.327/0.515),显示了提高深度估计对摄像头3D检测非常关键。

在这里插入图片描述


2. Delving into Depth Prediction in Lift-splat

在引言中,作者发现基于LSS的检测器即使深度差得惊人,仍然可以获得合理的3D检测结果。在本节中,作者首先回顾建立在LSS上的基线3D检测器的总体结构。然后,在基线检测器上进行了简单的实验,以揭示为什么观察到前面的现象。最后,讨论了该检测器的三个不足之处,并指出了可能的解决方案。

2.1 Model Architecture for Base Detector

基线检测器使用CenterPoint检测头来代替原始LSS分割头。简单来说它包含4个组成部分:

  • 1)图像编码器从 N N N 个图像中提取图像特征, F 2 d = { F i 2 d ∈ F^{2 d}=\left\{F_i^{2 d} \in\right. F2d={Fi2d R C F × H × W , i = 1 , 2 , … , N } \left.\mathbb{R}^{C_F \times H \times W}, i=1,2, \ldots, N\right\} RCF×H×W,i=1,2,,N}
  • 2) 深度网络从图像特征中估计图像深度, D p r e d = { D i p r e d ∈ D^{pred}=\left\{D_i^{pred} \in\right. Dpred={Dipred R C D × H × W , i = 1 , 2 , … , N } \left.\mathbb{R}^{C_D \times H \times W}, i=1,2, \ldots, N\right\} RCD×H×W,i=1,2,,N},其中 C D C_D CD 表示深度区间个数。
  • 3)视觉转换,将2D图像转换到3D空间,然后池化转为BEV特征, F i 3 d = F i 2 d ⊗ D i pred  , F i 3 d ∈ R C F × C D × H × W F_i^{3 d}=F_i^{2 d} \otimes D_i^{\text {pred }}, \quad F_i^{3 d} \in \mathbb{R}^{C_F \times C_D \times H \times W} Fi3d=Fi2dDipred ,Fi3dRCF×CD×H×W
  • 4)3D检测头预测物体类别,3D box尺寸位置和其它属性。

2.2 Making Lift-splat work is easy

这里作者首先用一个随机初始化的张量替换 D p r e d D^{pred} Dpred,并在训练和测试阶段冻结它。结果如表1所示,用随机soft值替换 D p r e d D^{pred} Dpred 后,mAP仅下降3.7%(从28.2%降至24.5%)。即使特征深度灾难性地被破坏,深度分布的soft性质在一定程度上仍然有助于投影到正确的深度位置。

进一步将soft随机深度替换为hard随机深度,观察到有6.9%的降幅。这表明只要正确位置的深度有激活,检测头就可以工作。这也解释了为什么在图1中的大多数区域学习到的深度较差,但仍然有一定的检测mAP。


2.3 Making Lift-splat work well is hard

为了更清楚地说明作者的想法,作者比较了两条基线:一条是基于LSS的检测器,称为Base检测器,另一条是使用点云进行深度监督,称为增强检测器。

  • Inaccurate depth 在base检测器中,深度模块梯度来自于检测损失,是间接的,很自然地我们要去分析学到的深度质量。作者对比了两种方法:一是评估每个物体的所有像素,另一个是评估每个物体预测最好的像素。结果如表2所示,隐式学习深度是不准确的,结果远远不能令人满意。

在这里插入图片描述

  • Depth Module Over-fitting 正如前面所述,Base检测器只学习预测了部分区域的深度。大多数像素没有预测合理的深度,引发了对深度模块泛化能力的担忧。具体地说,这种方式的检测器学习深度可能对图像大小、相机参数等超参数非常敏感。为了验证这一点,作者选择图像大小作为变量,并进行了以下实验来研究该模型的泛化能力:首先,使用输入大小为 256×704 的输入分辨率训练基线检测器和增强检测器。然后分别用192×640、256×704和320×864大小的分辨率对它们进行测试。如图2所示,当测试图像大小与训练图像大小不一致时,Base检测器会失去更高的精度。增强检测器的性能损失要小得多。这种现象意味着,没有深度损失的模型有更高的过拟合风险,因此它也可能对相机内部、外部或其它超参数中的噪声敏感。

在这里插入图片描述

  • Imprecise BEV Semantics 一旦使用学习到的深度将图像特征去投影到锥体特征,则采用体素池化操作将它们聚集到BEV。图3示出了在没有深度监督的情况下,图像特征不能被适当地投影。因此,池化操作仅聚合了部分语义信息。在这种情况下,增强型检测器池化效果更好。在上述分析的基础上,作者认识到了在多视角三维检测器中赋予更好的深度的必要性,并提出了作者的解决方案 BEVDepth。

在这里插入图片描述


3. BEVDepth

BEVDepth是一种新型的多视角3D检测器,具有可靠的深度。它利用摄像头感知深度预测模块(DepthNet)上的显式深度监督,以及对投影后的截体特征的新型深度细化模块来实现这一点。

在这里插入图片描述
Explicit Depth Supervision 在base检测器中,深度模块的监督来自于检测损失,然后由于单目相机深度估计的难度,只使用检测损失不足以监督深度模块。因此,作者提出使用点云数据 P P P 的真值 D g t D^{gt} Dgt 来监督深度预测 D p r e d D^{pred} Dpred R i ∈ R 3 × 3 R_i \in \mathbb R^{3 \times 3} RiR3×3 t i ∈ R 3 t_i \in \mathbb R^3 tiR3 表示激光雷达到第 i i i 个相机的旋转和平移矩阵, K i ∈ R 3 × 3 K_i \in \mathbb R^{3 \times 3} KiR3×3 表示第 i i i 个相机的内参,为了获得真值 D g t D^{gt} Dgt,计算下式:
P i i m ^ ( u d , v d , d ) = K i ( R i P + t i ) P_i^{\hat{i m}}(u d, v d, d)=K_i\left(R_i P+t_i\right) Piim^(ud,vd,d)=Ki(RiP+ti)

为了对齐点云和预测深度的维度,还使用了最小池化和one hot 编码,对于分类损失,作者使用了 Binary Cross Entropy。

Camera-aware Depth Prediction 根据传统相机模型,估计深度需要使用到相机内参,因此需要把相机内参建模到深度网络中。具体地,相机内参首先使用MLP来升维特征,然后它们用来作为图像特征权重,然后将相机内参和外参相结合,输入到深入网络中,整个过程可以写为下面的式子。
D i pred  = ψ ( S E ( F i 2 d ∣ M L P ( ξ ( R i ) ⊕ ξ ( t i ) ⊕ ξ ( K i ) ) ) ) D_i^{\text {pred }}=\psi\left(S E\left(F_i^{2 d} \mid M L P\left(\xi\left(R_i\right) \oplus \xi\left(t_i\right) \oplus \xi\left(K_i\right)\right)\right)\right) Dipred =ψ(SE(Fi2dMLP(ξ(Ri)ξ(ti)ξ(Ki))))

Depth Refinement Module 为了提高深度估计的质量,作者还设计了一个深度优化模块,首先将 F 3 d F^{3d} F3d 特征从 [ C F , C D , H , W ] [C_F,C_D,H,W] [CF,CD,H,W] 维度转换到 [ C F × H , C D , W ] [C_F \times H,C_D,W] [CF×H,CD,W]。然后再 C D × W C_D \times W CD×W 平台插入几个 3x3 卷积层,它的输出最后再输入到 Voxel/Pillar 池化操作。一方面,当深度预测置信度很低时深度优化模块可以沿着深度方向聚合特征,当深度预测不准确时深度优化模块可以修正其位置,只要感受野足够大。总之,深度细化模块为View Transformer阶段赋予了一种纠正机制,使其能够细化那些放置不当的特征。


4. Experiment

下面是实验部分,除了特别说明,作者使用 Resnet-50作为主干网,图片大小是 256x704。表4中可以看到基线检测器取得了28.2%mAP和32.7%NDS。增加深度损失提高了2.2%mAP。在表5中,不同的深度损失函数对最终性能影响相差无几。

在这里插入图片描述
下面是与其它方法的比较。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据引用和引用的内容,BEVDepth是一种具有显示深度监督的多视图3D目标检测器。它使用了主干网络进行特征提取,然后将相机参数和特征图输入到Depth Net进行深度估计。这里使用了显式监督的方式来训练深度估计网络,输出为深度分布图。接着,通过点积操作将主干网络输出的特征图和深度分布图进行融合,得到BEV(Bird's Eye View视角下的特征图。最后,可以在BEV视角下进行目标检测等任务。 然而,关于BEVDepth的代码复现,由于没有提供具体的代码引用和详细的说明,我无法给出具体的复现方法和步骤。如果您对该问题感兴趣,建议您参考原文或相关的研究论文,以获得更详细的代码实现细节。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [BEVDepth](https://blog.csdn.net/qq_46460131/article/details/127903414)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [详解视角3D检测模型 BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection](https://blog.csdn.net/cg129054036/article/details/128496901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值