Dense Depth-pre-trained 3D Detector
1 摘要
从单幅图像中检测三维目标的最新进展大多利用单目深度估计(Monocular depth estimation)来生成三维点云,将相机变成伪激光雷达传感器。由于中间深度估计网络本身可以通过大规模自监督学习在无需手动标记的情况下进行改进,两级检测器的精度可以从深度估计网络中获益。然而,与端到端的方法相比,这类方法往往会受到过度拟合的影响,而且更加复杂、与基于真实激光雷达数据的探测器之间的性能差距仍然很大。在这项工作中,我们提出了一种端到端、单级、单目3D目标检测器DD3D(Dense Depth-pre-trained 3D Detector),它可以受益于depth预训练,比如伪激光雷达方法,但没有其局限性。我们的架构设计用于depth估计和3D检测之间的有效信息传输,使得我们根据未标记的预训练数据量进行缩放。我们的方法在两个具有挑战性的基准上实现了最先进的结果,在KITTI-3D基准上,汽车和行人的AP分别为16.34%和9.28%,在NuScenes上为41.5%。
DD3D 结合了伪激光雷达方法(深度预训练缩放)和端到端方法(简单性和泛化性能)的优点。与伪激光雷达方法相比,DD3D仅需简单的 depth 预训练和 detection 微调训练,伪激光雷达方法需要额外的深度微调步骤,并且往往过度拟合深度误差。
引言略。
2 相关工作
主要介绍了单目3D目标检测、端到端单阶段检测、Pseudo-Lidar (PL)方法、单目深度估计等。本文主要使用了end-to-end框架、借助了单目深度估计的预训练方法。
Monocular depth estimation. 对于DD3D(depth estimation 作为预训练任务)和PL(depth estimation 作为两阶段方法的第一步),估计每像素深度都是一项关键任务。它本身就是一个蓬勃发展的研究领域:该社区通过监督[35,29,19,50,26,18,32,13,31]和自我监督[48,75,62,16,15,64]方法推动了精确的密集深度预测。我们注意到,这项工作中使用的有监督的单目深度训练不需要人类的注释,允许我们将我们的方法扩展到大量原始数据。
3 方法
Architecture
DD3D是一个完全卷积的单级网络,它扩展了FCOS[61],以执行3D检测和密集深度预测。该体系结构(见图2)由一个主干网和三个子网(或头部)组成,这些子网在所有多尺度特征中共享。主干以RGB图像为输入,计算不同尺度下的卷积特征。如[61]所述,我们采用特征金字塔网络(FPN)[36]作为主干。
每个检测头由3个检测网络组成,其中3D检测头如下
- 3D detection head:
q
=
(
q
w
,
q
x
,
q
y
,
q
z
)
\mathbf{q}=(q_w,q_x,q_y,q_z)
q=(qw?,qx?,qy?,qz?),
z
{
c
,
?
p
}
z_{\{c,\,p\}}
z{c,p}?,
o
=
(
Δ
u
,
Δ
v
)
\mathbf{o}=(\Delta_u,\Delta_v)
o=(Δu?,Δv?),
δ
=
(
δ
W
,
δ
H
,
δ
L
)
\delta=(\delta_W,\delta_H,\delta_L)
δ=(δW?,δH?,δL?),
β
3D
\beta_\text{3D}
β3D?.
这里需要提到一点,作者在训练过程中缩放图像时,并未对ground truth 进行同等缩放,而是对相机的内参矩阵进行调整,如下所示:
K
=
[
r
x
r
y
1
]
[
f
x
0
p
x
0
f
y
p
y
0
0
1
]
\mathbf{K}=\left[\begin{array}{lll} r_{x} & r_{y} & 1 \end{array}\right]\left[\begin{array}{ccc} f_{x} & 0 & p_{x} \\ 0 & f_{y} & p_{y} \\ 0 & 0 & 1 \end{array}\right]
K=[rx??ry??1?]???fx?00?0fy?0?px?py?1???? 其中,
r
x
r_x
rx?与
r
y
r_y
ry?为缩放因子,
K
\mathbf{K}
K为新的相机内参矩阵。 对于3D边界框回归,作者使用[59]中描述的解耦L1损失:
L
3
D
(
B
?
,
B
^
)
=
1
8
∥
B
?
?
B
^
∥
1
\mathcal{L}_{3 \mathrm{D}}\left(\mathbf{B}^{*}, \hat{\mathbf{B}}\right)=\frac{1}{8}\left\|\mathbf{B}^{*}-\hat{\mathbf{B}}\right\|_{1}
L3D?(B?,B^)=81?∥∥∥?B??B^∥∥∥?1?
Pre-Training
在预训练DD3D时,我们首先使用COCO数据集[37]在2D检测任务中预训练的参数初始化主干(2D detection pretraining),然后使用DDAD15M数据集对密集深度预测进行预训练(depth estimation pretraining)。
4 Analysis
4.1 Is depth-pretraining effective?
作者进行了一组对比/消融试验,分别使用DLA-34与V2-99进行了3D detection任务。结果表明:使用depth pretraining比不使用的性能要高(DLA:+5.8%, V2-99:+10.7%).
… 略
这里给出对DD3D讲解更详细、更透彻的一篇文章: [ICCV2021] Is Pseudo-Lidar needed for Monocular 3D Object detection? (DD3D)
|