《M3D-RPN: Monocular 3D Region Proposal Network for Object Detection》
目录
0 摘要
以三维视角理解世界是自动驾驶的一个重要组成部分。通常来说,昂贵的激光雷达传感器和立体RGB成像的结合对于成功的三维目标检测算法而言是至关重要的,而仅关注单目图像的方法,其性能会显著下降。本文提出通过将单目三维目标检测问题重新建模为一个独立的三维区域建议网络来缩小这个差距。本文利用二维视角和三维视角之间的几何关系,允许三维目标框利用图像空间中生成的强而有力的卷积特征。为了解决繁重的三维参数估计问题,作者还设计了深度感知卷积层,以实现特定位置的特征开发,从而提高三维场景的理解能力。与单目三维检测的先前工作相比,本文的方法仅包含所提出的三维区域建议网络,而不依赖于外部网络、数据或多阶段方法。在KITTI城市自动驾驶数据集中,M3D-RPN可以显著地提升单目三维目标检测和鸟瞰任务的性能表现。
1 简介
三维场景理解在设计有效的真实世界系统中起到了至关重要的作用,而目前在三维目标检测中,最为高效方法却严重依赖于价格昂贵的激光雷达传感器提供的稀疏深度数据作为输入。相比之下,由于深度信息的缺乏,仅基于图像的单目三维目标检测就要困难得多。因此,基于激光雷达的方法与单目视觉的方法之间的性能差距仍然很大。差距确实很大啊,KITTI数据集检测car的easy指标,LiDAR的方法和多模态的方法轻松干上七八十,单目图片的方法还在二三十徘徊
先前关于单目三维目标检测的工作都严重依赖于别的SOTA子网络,它们分别负责点云生成,语义分割,二维目标检测或者深度估计。这种方法的缺点是组件和系统之间固有的脱节。此外,对额外子网络的依赖可能会引入额外的噪声,从而导致框架的上限受到限制。
本文提出了一个用于多类别三维目标检测的端到端区域建议网络。二维和三维检测任务各自的目标是对待检测目标的所有实例进行分类,它们的区别在于其定位目标的维度不同。直观上,我们期望可以利用二位目标检测的能力来指导和改善三维检测的性能。最为理想的情况下,即二维目标检测与三维目标检测将在一个统一的框架之下进行,而不是将三维目标检测作为一个单独的组件出现。因此,本文提出将三维目标检测任务重新建模,使得二维和三维空间都使用共享的锚点与分类目标。这样如果能实现的话,那三维检测器的性能自然就能与二维检测器的性能相媲美。因此,剩下的问题就是解决相机坐标空间中的三维定位问题。
为了解决这个剩下的问题,本文提出了三个关键的设计来改进三维估计任务的性能。首先,构造三维的锚点以使其在三维图像空间中发挥作用,并对所有的锚点进行初始化,对其每个三维参数进行先验统计。基于固定摄像机视点的一致性以及二维尺度和三维深度之间的相关性,每个离散化的锚点在本质上都具有很强的三维推理先验。其次,设计一个能够学习空间感知特征的深度感知卷积层。传统上,为了便于检测任意图像位置的目标,卷积运算操作通常具有空间不变性。最后,使用 3 D → 2 D 3D\rightarrow 2D 3D→2D投影一致性损失在算法中优化方向估计参数 θ \theta θ,在假设二维边界框可靠的情况下,帮助纠正 θ \theta θ估计中异常。
总结如下:
- 制定了一个具有共享2D和3D检测空间的单目三维区域建议网络(M3D-RPN),同时使用先验统计数据作为每一个三维参数的初始值
- 提出深度感知卷积来改进三维参数估计,从而使得网络能够学习到更多空间感知的高级特征
- 提出一种简单的方向估计后优化算法,使用三维投影和二维检测来改善 θ \theta θ估计
使用单个多类网络在KITTI城市数据集基准中的单目鸟瞰图检测和三维检测上实现了SOTA当年的SOTA了
2 相关工作
2.1 二维目标检测
最近的框架基于Faster R-CNN的开创性工作,引入了区域建议网络(RPN)作为一种生成目标提议的高效方法。RPN的作用类似于滑动窗口检测器,用于检查图像的每个空间位置是否存在与一组预先定义的模板形状相匹配的目标,称为锚点。尽管RPN被认为是Faster R-CNN的一个初步阶段,单其经常被证实具有很好的效果,可以扩展成一个独立的检测器。本文的框架便建立在一个RPN的锚点上,该锚点专门设计用于在二维和三维空间之中运行,并充当一个多类三维检测器。
2.2 基于激光雷达的三维目标检测
激光雷达数据的使用已经被证实是SOTA框架应用于城市场景的三维目标检测的重要输入。目前一些领先的方法倾向于从激光雷达点处理稀疏点云或将点云投影成二维平面的集合。基于激光雷达的方法通常会在各种三维任务中获得很高的性能表现,这依赖于从激光雷达点(或直接经由点云数据)生成的深度信息的可用性。因此,这些方法并不适用于仅使用图像数据的应用场景,因为这是本文的单目三维目标检测算法的主要目的。
2.3 基于图像的三维目标检测
本文提出一种仅使用三维框训练的单一网络,而不是使用一组外部网络、数据源和由多个阶段组成的网络。先前的一些其它网络在其框架中至少有一个组件使用外部网络,其中一些也会在外部数据上进行训练。这是第一个使用单目三维区域建议网络(M3D-RPN)同时生成二维和三维目标提议框。理论上,M3D-RPN与之前的工作是互补的,可以用来替代建议框生成阶段。
3 M3D-RPN
本文的框架包含三个关键的组件。首先,本文详细介绍了多分类三维区域建议网络的整体想法。然后,本文概述了深度感知卷积的细节和集体网络架构。最后,详细介绍了一种简单但有效的提高3D → \rightarrow → 2D一致性的后优化方法。我们将这种方法称为单目三维区域建议网络(Monocular 3D Region Proposal Network, M3D-RPN)。
3.1 整体设计
本文提出的框架的核心基础是基于Faster R-CNN中首次提出的区域建议网络(RPN)的原理,基于这个原理再为三维检测量身定做的。从整体角度看,区域建议网络就像是滑动窗口检测器一样,扫描输入图像的每一个空间位置,为物体匹配一组预定义的锚点模板。然后将匹配从离散化的锚点回归为估计目标的连续参数。
锚的定义 为了同时预测二维和三维框,每个锚点模板使用两个空间的参数定义:
[
w
,
h
]
2
D
,
z
p
[w,h]_{2D},z_p
[w,h]2D,zp和
[
w
,
h
,
l
,
θ
]
3
D
[w,h,l,\theta]_{3D}
[w,h,l,θ]3D。为了放置锚点并定义完整的二维和三维框,还需要指定一个共享的中心像素位置
[
x
,
y
]
p
[x,y]_p
[x,y]p。在像素坐标中使用表示为二维的参数。作者使用以下式子,将摄像机坐标中的三维中心位置
[
x
,
y
,
z
]
3
D
[x,y,z]_{3D}
[x,y,z]3D投影到图像中,对深度参数
z
p
z_p
zp编码成一个已知的投影矩阵
P
∈
R
3
×
4
P\in \mathbb{R}^{3\times4}
P∈R3×4:
[
x
⋅
z
y
⋅
z
z
]
p
=
P
⋅
[
x
y
z
1
]
3
D
\begin{equation} \left[ \begin{matrix} x \cdot z \\ y \cdot z \\ z \end{matrix} \right]_p = P\cdot \left[ \begin{matrix} x \\ y \\ z \\ 1 \end{matrix} \right]_{3D} \end{equation}
x⋅zy⋅zz
p=P⋅
xyz1
3D
其中 θ 3 D \theta_{3D} θ3D表示观察角度,与相机坐标系中的y轴旋转角相比,观察角度更多考虑的是物体相对于相机是叫的相对方位,而不是地平面的鸟瞰图(BEV)。因此,在处理图像特征时,观察角度的估计在直观上更加具有意义。作者对相机坐标系中给出的剩余三维参数 [ w , h , l ] 3 D [w,h,l]_{3D} [w,h,l]3D进行编码。
每个 z p z_p zp和 [ w , h , l , θ ] 3 D [w,h,l,\theta]_{3D} [w,h,l,θ]3D的平均统计量是为每个锚点单独预计算的,用以减轻三维参数估计的难度。具体来说,对于每个锚点,作者使用所有与对应二维锚点 [ w , h ] 2 D [w,h]_{2D} [w,h]2D的交并比(IoU)大于0.5的相匹配的真值。因此,锚点代表一种离散化的模板,其三维先验值可以看作有效的预估初始值,从而假设相当一致的场景几何形状。如下图所示,其可视化了锚定公式以及预先计算的三维先验。
三维检测 本文的模型预测每个锚点的输出特征图为
c
,
[
t
x
,
t
y
,
t
w
,
t
h
]
2
D
,
[
t
x
,
t
y
,
t
z
]
P
,
[
t
w
,
t
h
,
t
l
,
t
θ
]
3
D
c,[t_x,t_y,t_w,t_h]_{2D},[t_x,t_y,t_z]_P,[t_w,t_h,t_l,t_\theta]_{3D}
c,[tx,ty,tw,th]2D,[tx,ty,tz]P,[tw,th,tl,tθ]3D。将
n
a
n_a
na记作锚的数量,
n
c
n_c
nc记作类别的数量,
h
×
w
h\times w
h×w记作特征图的分辨率。综上,目标框输出的总数记作
n
b
=
w
×
h
×
n
a
n_b=w\times h\times n_a
nb=w×h×na,在每个锚点的每个像素位置上跨度
[
x
,
y
]
p
∈
R
w
×
h
[x,y]_p\in \mathbb{R}^{w\times h}
[x,y]p∈Rw×h。第一个输出值c代表大小为
n
a
×
n
c
×
h
×
w
n_a\times n_c\times h\times w
na×nc×h×w的共享的分类预测,而另一个输出值具有大小为
n
a
×
h
×
w
n_a\times h\times w
na×h×w的共享分类预测。输出值
[
t
x
,
t
y
,
t
w
,
t
h
]
2
D
[t_x,t_y,t_w,t_h]_{2D}
[tx,ty,tw,th]2D代表二维检测框变换,统称为
b
2
D
b_{2D}
b2D。运用以下式子,将边界框变换应用于
[
w
,
h
]
2
D
[w,h]_{2D}
[w,h]2D的锚点:
x
2
D
′
=
x
P
+
t
x
2
D
⋅
w
2
D
,
w
2
D
′
=
e
x
p
(
t
w
2
D
⋅
w
2
D
)
,
y
2
D
′
=
y
P
+
t
y
2
D
⋅
h
2
D
,
h
2
D
′
=
e
x
p
(
t
h
2
D
⋅
h
2
D
)
,
\begin{equation} \begin{matrix} x'_{2D}=x_P+t_{x_{2D}}\cdot w_{2D}, && w'_{2D}=exp(t_{w_{2D}}\cdot w_{2D}), \\ y'_{2D}=y_P+t_{y_{2D}}\cdot h_{2D}, && h'_{2D}=exp(t_{h_{2D}}\cdot h_{2D}), \end{matrix} \end{equation}
x2D′=xP+tx2D⋅w2D,y2D′=yP+ty2D⋅h2D,w2D′=exp(tw2D⋅w2D),h2D′=exp(th2D⋅h2D),
式中,
x
P
x_P
xP和
y
P
y_P
yP为每个框的中心位置。由此定义变换后的框
b
2
D
′
b'_{2D}
b2D′为
[
x
,
y
,
w
,
h
]
2
D
′
[x,y,w,h]'_{2D}
[x,y,w,h]2D′,后面的7个输出分别表示投影中心
[
t
x
,
t
y
,
t
z
]
P
[t_x,t_y,t_z]_P
[tx,ty,tz]P,维度
[
t
w
,
t
h
,
t
l
]
3
D
[t_w,t_h,t_l]_{3D}
[tw,th,tl]3D和朝向
t
θ
3
D
t_{\theta_{3D}}
tθ3D,统称为
b
3
D
b_{3D}
b3D。与2D相似,该变换应用于参数为
[
w
,
h
]
2
D
,
z
P
[w,h]_{2D},z_P
[w,h]2D,zP和
[
w
,
h
,
l
,
θ
]
3
D
[w,h,l,\theta]_{3D}
[w,h,l,θ]3D的锚:
x
P
′
=
x
P
+
t
x
P
⋅
w
2
D
,
w
3
D
′
=
e
x
p
(
t
w
3
D
)
⋅
w
3
D
,
y
P
′
=
y
P
+
t
y
P
⋅
h
2
D
,
h
3
D
′
=
e
x
p
(
t
h
3
D
)
⋅
h
3
D
,
z
P
′
=
t
z
P
+
z
P
,
l
3
D
′
=
e
x
p
(
t
l
3
D
)
⋅
l
3
D
,
θ
3
D
′
=
t
θ
3
D
+
θ
3
D
.
\begin{equation} \begin{matrix} x'_P=x_P+t_{x_P}\cdot w_{2D}, && w'_{3D}=exp(t_{w_{3D}})\cdot w_{3D}, \\ y'_P=y_P+t_{y_P}\cdot h_{2D}, && h'_{3D}=exp(t_{h_{3D}})\cdot h_{3D}, \\ z'_P=t_{z_P}+z_P, && l'_{3D}=exp(t_{l_{3D}})\cdot l_{3D}, \\ \theta'_{3D}=t_{\theta_{3D}}+\theta_{3D}. \end{matrix} \end{equation}
xP′=xP+txP⋅w2D,yP′=yP+tyP⋅h2D,zP′=tzP+zP,θ3D′=tθ3D+θ3D.w3D′=exp(tw3D)⋅w3D,h3D′=exp(th3D)⋅h3D,l3D′=exp(tl3D)⋅l3D,
因此,
b
3
D
′
b'_{3D}
b3D′记作
[
x
,
y
,
z
]
P
′
[x,y,z]'_P
[x,y,z]P′和
[
w
,
h
,
l
,
θ
]
3
D
′
[w,h,l,\theta]'_{3D}
[w,h,l,θ]3D′。如之前所述,本文估计目标投影的三维中心而不是相机坐标,以更好地处理图像空间中的卷积特征。因此,在推理时,作者利用式(1)的逆转,将投影后的三维中心位置从图像空间
[
x
,
y
,
z
]
P
′
[x,y,z]'_P
[x,y,z]P′反投影到相机坐标
[
x
,
y
,
z
]
3
D
′
[x,y,z]'_{3D}
[x,y,z]3D′。
损失定义 本框架的神经网络损失是一种混合了分类
L
c
L_c
Lc和一种用于2D和3D的目标框回归损失的多任务学习问题,记作
L
b
2
D
L_{b_{2D}}
Lb2D和
L
b
3
D
L_{b_{3D}}
Lb3D。对于每个生成的目标框,首先检查其是否存在IoU≥0.5的真值。如果有,那么就使用与每个生成框最为匹配的背景真值来定义一个具有
τ
\tau
τ类索引的目标,二维框
b
^
2
D
\hat{b}_{2D}
b^2D和三维框
b
^
3
D
\hat{b}_{3D}
b^3D。否则的话,
τ
\tau
τ会被分配到所有的背景类别中,并且忽略边界框回归操作。一个基于softmax的多项logistics损失被用于定义
L
c
L_c
Lc:
L
c
=
−
l
o
g
(
e
x
p
(
c
τ
)
∑
i
n
c
e
x
p
(
c
i
)
)
.
\begin{equation} L_c=-log(\frac{exp(c_\tau)}{\sum_i^{n_c}exp(c_i)}). \end{equation}
Lc=−log(∑incexp(ci)exp(cτ)).
对于
L
b
2
D
L_{b_{2D}}
Lb2D,本文使用一个负logistics损失应用于匹配的基本真值框
b
^
2
D
\hat{b}_{2D}
b^2D以及转换后的
b
2
D
′
b'_{2D}
b2D′之间的IoU:
L
b
2
D
=
−
l
o
g
(
I
o
U
(
b
2
D
′
,
b
^
2
D
)
)
.
\begin{equation} L_{b_{2D}}=-log(IoU(b'_{2D},\hat{b}_{2D})). \end{equation}
Lb2D=−log(IoU(b2D′,b^2D)).
其余的三维边界框参数分别使用应用于变换值
b
3
D
b_{3D}
b3D和真值变换值
g
^
3
D
\hat{g}_{3D}
g^3D(使用
b
^
3
D
\hat{b}_{3D}
b^3D,利用式3中的公式逆生成)的Smooth
L
1
L_1
L1回归损失进行优化:
L
b
3
D
=
S
m
o
o
t
h
L
1
(
b
3
D
,
g
^
3
D
)
.
\begin{equation} L_{b_{3D}}=SmoothL_1(b_{3D},\hat{g}_{3D}). \end{equation}
Lb3D=SmoothL1(b3D,g^3D).
因此,整个多任务网络损失
L
L
L,包括正则化权重
λ
1
\lambda_1
λ1和
λ
2
\lambda_2
λ2,记作:
L
=
L
c
+
λ
1
L
b
2
D
+
λ
2
L
b
3
D
.
\begin{equation} L=L_c+\lambda_1L_{b_{2D}}+\lambda_2L_{b_{3D}}. \end{equation}
L=Lc+λ1Lb2D+λ2Lb3D.
3.2 深度感知卷积
在计算机视觉领域中,空间不变卷积已经成为深度神经网络中的一个重要操作。我们希望在网络前几层中的低级特征能够被合理地共享,否则对深度或对象尺度保持不变。然而,在假设摄像机视野固定的情况下,我们直观地期望与三维场景理解相关的高级特征依赖与深度信息。综上所述,本文提出深度感知卷积作为一种手段来提高区域建议网络中高级特征的空间感知能力,如下图所示:
深度感知卷积层可以简单概括为正则化的二维卷积,其中一组离散化的深度可以学习非共享的权重和特征。本文引入一个超参数
b
b
b,表示行方向的bin的数量,将一个特征图分离出来,每个特征图学习一个唯一的核
k
k
k。实际上,深度感知内核允许网络在每个bin区域发掘特定位置的特征和偏移值,理想地利用了城市场景中固定视点的几何一致性。例如,高层语义特征,如编码一个用于检测汽车的大车轮的特征,在近深度是有价值的,但通常在较远的深度是没有价值的。同样,我们直观地与三维场景理解相关的特征与它们的行图像位置固有相关。先验假设,利用了KITTI数据集自动驾驶的先验信息,跟自动驾驶场景绑定了。
使用深度感知卷积的一个显著缺点是,对给定的层,会增加b倍的内存占用。然而,无论核是否共享,执行卷积操作的总体理论FLOPs仍然会保持一致。作者在PyTorch上实现了深度感知卷积层,将一个层L展开为b个填充的bin,然后重新利用分组卷积操作在GPU上执行高效的并行计算。
3.3 神经网络结构
本网络的骨干使用的是DenseNet-121。作者还移除了transition3中的pooling层,以确保网络的步幅保持在16,然后将最后一个DenseBlock(denseblock4)中的每个卷积层扩大2倍,以获得更大的扫描视野。
在骨干网络的末端,还连接了两条并行的路径。第一条路径使用一个常规的卷积,其中核在空间上共享,我们称之为全局(global)卷积。第二条路径仅仅使用了深度感知卷积,称之为局部(local)卷积。对于每条路径,作者还附加了一个提议特征提取层,利用其各自的卷积操作生成
F
g
l
o
b
a
l
F_{global}
Fglobal和
F
l
o
c
a
l
F_{local}
Flocal。每个特征提取层使用填充值为1的3x3卷积核生成512个特征,后接ReLU非线性激活。接下来连接这12个输出到对应于
c
,
[
t
x
,
t
y
,
t
w
,
t
h
]
2
D
,
[
t
x
,
t
y
,
t
z
]
P
,
[
t
w
,
t
h
,
t
l
,
t
θ
]
3
D
c,[t_x,t_y,t_w,t_h]_{2D},[t_x,t_y,t_z]_P,[t_w,t_h,t_l,t_\theta]_{3D}
c,[tx,ty,tw,th]2D,[tx,ty,tz]P,[tw,th,tl,tθ]3D的每个
F
F
F上。每个输出使用一个1x1卷积核,将其分别记作
O
g
l
o
b
a
l
O_{global}
Oglobal和
O
l
o
c
a
l
O_{local}
Olocal。为了利用深度感知和空间不变的优势,作者使用学习到的注意力
α
\alpha
α(sigmoid之后)融合每个输出i=1…12,如下:
O
i
=
O
g
l
o
b
a
l
i
⋅
α
i
+
O
l
o
c
a
l
i
⋅
(
1
−
α
i
)
.
\begin{equation} O^i=O^i_{global}\cdot\alpha_i+O^i_{local}\cdot(1-\alpha_i). \end{equation}
Oi=Oglobali⋅αi+Olocali⋅(1−αi).
3.4 3D到2D后优化
作者使用了一个简单而有效的算法来对朝向参数
θ
\theta
θ进行后优化操作:
这个算法以二维框和三维框的估计值
b
2
D
′
b'_{2D}
b2D′、
[
x
,
y
,
z
]
P
′
[x,y,z]'_P
[x,y,z]P′以及
[
w
,
h
,
l
,
θ
]
3
D
′
[w,h,l,\theta]'_{3D}
[w,h,l,θ]3D′以及步长
σ
\sigma
σ、终止值
β
\beta
β和衰减
γ
\gamma
γ参数作为输入。然后再迭代地通过
θ
\theta
θ,并使用
L
1
L_1
L1损失将投影的三维框与
b
2
D
′
b'_{2D}
b2D′进行比较。
3
D
→
2
D
3D\rightarrow 2D
3D→2D框投射函数定义如下公式所示:
γ
0
=
[
−
l
l
l
l
l
−
l
−
l
−
1
−
h
−
h
h
h
−
h
−
h
h
h
−
w
−
w
−
w
w
w
w
w
−
w
]
3
D
′
/
2
,
γ
3
D
=
[
c
o
s
θ
0
s
i
n
θ
0
1
0
−
s
i
n
θ
0
c
o
s
θ
0
0
0
]
γ
0
+
P
−
1
[
x
⋅
z
y
⋅
z
z
1
]
P
′
,
γ
P
=
P
⋅
γ
3
D
,
γ
2
D
=
γ
P
.
/
γ
P
[
ϕ
z
]
,
x
m
i
n
=
m
i
n
(
γ
2
D
[
ϕ
x
]
)
,
y
m
i
n
=
m
i
n
(
γ
2
D
[
ϕ
y
]
)
,
x
m
a
x
=
m
a
x
(
γ
2
D
[
ϕ
x
]
)
,
y
m
a
x
=
m
a
x
(
γ
2
D
[
ϕ
y
]
)
.
\begin{equation} \begin{split} \gamma_0&= \left[ \begin{matrix} -l&&l&&l&&l&&l&&-l&&-l&&-1\\ -h&&-h&&h&&h&&-h&&-h&&h&&h\\ -w&&-w&&-w&&w&&w&&w&&w&&-w \end{matrix} \right]'_{3D}/2,\\ \gamma_{3D}&= \left[ \begin{matrix} cos\theta&&0&&sin\theta\\ 0&&1&&0\\ -sin\theta&&0&&cos\theta\\ 0&&0&&0 \end{matrix} \right] \gamma_0+P^{-1} \left[ \begin{matrix} x\cdot z\\ y\cdot z\\ z\\ 1 \end{matrix} \right]'_P,\\ \gamma_P&=P\cdot\gamma_{3D},\gamma_{2D}=\gamma_P./\gamma_P[\phi_z],\\ x_{min}&=min(\gamma_{2D}[\phi_x]),y_{min}=min(\gamma_{2D}[\phi_y]),\\ x_{max}&=max(\gamma_{2D}[\phi_x]),y_{max}=max(\gamma_{2D}[\phi_y]). \end{split} \end{equation}
γ0γ3DγPxminxmax=
−l−h−wl−h−wlh−wlhwl−hw−l−hw−lhw−1h−w
3D′/2,=
cosθ0−sinθ00100sinθ0cosθ0
γ0+P−1
x⋅zy⋅zz1
P′,=P⋅γ3D,γ2D=γP./γP[ϕz],=min(γ2D[ϕx]),ymin=min(γ2D[ϕy]),=max(γ2D[ϕx]),ymax=max(γ2D[ϕy]).
式中,
P
−
1
P^{-1}
P−1为填充[0,0,0,1]后的逆投影,
ϕ
\phi
ϕ代表[x,y,z]轴的索引。然后,我们使用参数
ρ
=
[
x
m
i
n
,
y
m
i
n
,
x
m
a
x
,
y
m
a
x
]
\rho=[x_{min},y_{min},x_{max},y_{max}]
ρ=[xmin,ymin,xmax,ymax]的投影框和原始值
b
2
D
′
b'_{2D}
b2D′计算一个
L
1
L_1
L1损失,作为其驱动启发。当用
θ
±
σ
\theta\pm\sigma
θ±σ对损失没有改善时,再使用
γ
\gamma
γ衰减步长,当
σ
≥
β
\sigma\geq\beta
σ≥β时重复。
3.5 部署细节
为了防止局部特征在图像区域的子集合上过拟合,作者使用了预训练的全局权重文件来初始化局部路径。在这种情况下,每个训练阶段进行50000次迭代。作者期望获得更高的数据增广程度或迭代分bin计划,例如 b = 2 i , i = 0... l o g 2 ( b f i n a l ) b=2^i,i=0...log_2(b_{final}) b=2i,i=0...log2(bfinal),可以以更复杂的超参数为代价来实现更容易的训练。
作者使用0.004的学习率,使用幂0.9的poly衰减率,batchsize设置为2,权重衰减为0.9。设置 λ 1 = λ 2 = 1 \lambda_1=\lambda_2=1 λ1=λ2=1。所有图片缩放到512像素的高度值。因此,对于所有的深度感知卷积层,作者使用b=32bins。使用了12个锚定尺度,范围从30到400像素,遵循幂函数 30 ⋅ 1.26 5 i , i = 0...11 30\cdot1.265^i,i=0...11 30⋅1.265i,i=0...11以及长宽比 [ 0.5 , 1.0 , 1.5 ] [0.5,1.0,1.5] [0.5,1.0,1.5],总共36个锚点进行多类检测。利用这些模板学习三维锚点先验。作者使用IoU为0.4的标准和得分<0.75的过滤框对二维空间中的框输出进行NMS操作。三维到二维优化操作使用 σ = 0.3 π , β = 0.01 , γ = 0.5 \sigma=0.3\pi,\beta=0.01,\gamma=0.5 σ=0.3π,β=0.01,γ=0.5的设定。最后,作者通过在每个小批量数据中采样前20%的高损失框来执行随机镜像和在线难负样本挖掘。
由于M3D-RPN依赖于三维框注释和一个已知的每条序列的投影矩阵P。若要扩展到没有这些已知信息的数据集上,可能需要预测相机的内参,并利用三维-二维投影几何作为损失约束的若监督。
4 实验
略
黄底字代表我对当前段落的自身理解
斜体字表示例子
本人水平有限,若有有误之处欢迎批评指正。
禁止未经许可随意转载。