论文链接:FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection
所属任务:单目3D检测(不预测深度图)
1 引言
FCOS3D是基于FCOS进行设计,FCOS 论文笔记链接。
图1说明了2D和3D
anchor-free
单目检测的区别,2D检测预测边界框四边到物体中心的距离,3D检测预测3D中心的投影、3D物体大小以及朝向。
FCOS3D 提出了一种单阶段目标检测器,首先将通常定义的7-DoF(物体中心坐标、长宽高、方向角)3D目标转换到2D的图像坐标系,并将其解耦为2D和3D属性。然后根据尺寸大小将其分配到不同的特征层,并根据训练过程中投影的3d中心匹配正样本。此外,在三维中心的基础上,用二维高斯分布重新定义中心度用于降低离物体中心远的预测框的置信度,从而在NMS中将其抑制,提高准确率。
2 方法
2.1 网络结构
网络结构如图1所示。
2.1.1 框架
- Backbone:ResNet-101 + deformable convolution
- Neck:FPN
- Head:如图2。
2.1.2 模型预测参数
正样本定义:将特征图上的点映射回2d原图,3d物体中心投影到2d图像,当前者在后者附近时,特征图上该点才为正样本。
回归分支:
不同于2D预测框的4条边与物体中心点之间的距离,3D的预测参数如下:
回归的参数:
Δ
x
,
Δ
y
,
d
,
w
,
l
,
h
,
θ
,
v
x
,
v
y
\Delta x,\Delta y,d,w,l,h,\theta,v_x,v_y
Δx,Δy,d,w,l,h,θ,vx,vy,方向类别
C
θ
C_\theta
Cθ,center-ness
c
c
c
- Δ x , Δ y , h \Delta x,\Delta y,h Δx,Δy,h:对于特征图上的正样本点,预测与3D物体中心投影的偏移量,同时预测该点深度
- 角度编码为两部分
θ
,
C
θ
\theta,C_\theta
θ,Cθ,分别是以
π
\pi
π 为周期的角
θ
\theta
θ,和一个二分类标签。
角度编码如图3所示,两个方向相反的航向角(图2右图是 θ \theta θ上面的钝角), ∣ s i n ( θ − θ ^ ) ∣ |sin(\theta-\hat \theta)| ∣sin(θ−θ^)∣相同( θ ^ \hat \theta θ^ 是真实值),所以用 C θ C_\theta Cθ 预测是0-180°还是180-360°。 - 通过预测中心度
center-ness
判断哪些点更靠近中心,用于抑制远离中心的低质量预测框,具体见2.3
节。
回归分支的每个输出参数
x
x
x 换成
s
i
x
s_ix
six,
s
i
s_i
si 是一个可学习参数,对应于第
i
i
i 个特征层,因为不同特征层预测的目标大小不同又共享head
权重参数,所以添加参数用于区分。
分类分支:
预测类别和属性(如静止还是运动)。
2.1.3 损失函数
分类损失:
类别预测损失
L
c
l
s
L_{cls}
Lcls使用 focal loss,属性预测损失
L
a
t
t
r
L_{attr}
Lattr使用 softmax 分类损失。
L
c
l
s
=
−
α
(
1
−
p
)
γ
l
o
g
p
L_{cls}=-\alpha(1-p)^\gamma logp
Lcls=−α(1−p)γlogp
其中
p
p
p 是预测框的类别概率
回归损失:
L
l
o
c
=
∑
b
∈
(
Δ
x
,
Δ
y
,
d
,
w
,
l
,
h
,
θ
,
v
x
,
v
y
)
S
m
o
o
t
h
L
1
(
Δ
b
)
L_{loc}=\sum_{b\in (\Delta x,\Delta y,d,w,l,h,\theta,v_x,v_y)}SmoothL1(\Delta b)
Lloc=b∈(Δx,Δy,d,w,l,h,θ,vx,vy)∑SmoothL1(Δb)
其中
Δ
x
,
Δ
y
,
w
,
l
,
h
,
θ
\Delta x,\Delta y,w,l,h,\theta
Δx,Δy,w,l,h,θ 的权重是1,
d
d
d 的权重是0.2,
v
x
,
v
y
v_x,v_y
vx,vy 的权重是0.05。
总损失:
1
N
p
o
s
(
β
c
l
s
L
c
l
s
+
β
a
t
t
r
L
a
t
t
r
+
β
l
o
c
L
l
o
c
+
β
d
i
r
L
d
i
r
+
β
c
t
L
c
t
)
\frac{1}{N_{pos}}(\beta_{cls}L_{cls}+\beta_{attr}L_{attr}+\beta_{loc}L_{loc}+\beta_{dir}L_{dir}+\beta_{ct}L_{ct})
Npos1(βclsLcls+βattrLattr+βlocLloc+βdirLdir+βctLct)
N
p
o
s
N_{pos}
Npos 是预测的正样本数,论文中把所有系数
β
\beta
β 都设为1。
2.1.4 推理
推理时,输入一张图片,前向传播预测边界框及其对应的类别分数、属性分数、中心度,然后把类别分数和中心度相乘作为置信度,再在鸟瞰图视角使用NMS。
2.2 2D 指导的多尺度 3D 预测
2.2.1 标签分配
FCOS3D还要用FCOS进行2D检测,预测的2D中心用于计算3D中心投影,预测的四条边与中心的距离用于每个特征图的正样本分配。为每个特征图分配标签和定义正样本的规则与 FCOS 一致,见 FCOS 论文笔记 2.2
节。为每个特征图设定回归长度的范围,在范围内的才是正样本,不在范围内的为负样本,由其它特征图负责预测,这使得不同分辨率的特征图负责不同尺度的物体。
但是为一个特征图里的每个点定义正样本的规则不同:FCOS3D 定义了一个超参数radius
,当距离小于
r
a
d
i
u
s
×
s
t
r
i
d
e
radius\times stride
radius×stride 时才是正样本(更严格),论文把radius
设为1.5。
2.2.2 歧义样本标签分配
问题:当特征图上的一个点落在多个 gt box
里面时,应该为它分配哪个 gt box
?不采用 FCOS 里选择小面积的方法,因为会更少关注大物体。FCOS3D 选择离得最近的gt box
中心所在gt box
作为目标。
2.3 3D 中心度计算
用以3D物体投影的中心
为原点的二维高斯分布度量距离,作用与FCOS中相同,用于降低离3D物体中心远的预测框的置信度,从而在NMS中过滤。
c
=
e
−
α
(
(
Δ
x
)
2
+
(
Δ
y
)
2
)
c=e^{-\alpha((\Delta x)^2+(\Delta y)^2)}
c=e−α((Δx)2+(Δy)2)
其中超参数
α
\alpha
α 用于调节从中心到外围的衰减强度,论文中设为2.5。中心度的取值范围是0到1,所以用 BCE 损失。
3 实验
略。