原文链接:https://arxiv.org/abs/2309.02049
基于激光雷达的3D目标检测方法通常依赖经验设置锚框或中心半径,而本文探索从随机框直接预测真实边界框。
本文提出Diff3Det,使用扩散模型进行3D目标检测。首先为真实边界框添加高斯噪声,获得带噪声的边界框,然后从BEV特征图提取RoI特征,并输入到解码器预测带噪声边界框与真实边界框的偏移。这样,模型能从带噪声边界框中恢复真实边界框。
见此文3.1节(本文中,数据用
x
0
,
x
1
,
⋯
,
x
t
,
⋯
,
x
T
x_0,x_1,\cdots,x_t,\cdots,x_T
x0,x1,⋯,xt,⋯,xT表示)。
本文将真实边界框作为
x
0
∈
R
N
×
5
x_0\in\mathbb{R}^{N\times5}
x0∈RN×5,并训练神经网络
f
θ
(
x
t
,
t
,
x
)
f_\theta(x_t,t,x)
fθ(xt,t,x)预测
x
0
x_0
x0,其中
x
t
x_t
xt为带噪声边界框,
x
x
x为相应的点云特征。
本文的方法包含由扩散指导的提案生成器(通过为真实边界框添加高斯噪声得到
x
t
x_t
xt),编码器(3D体素主干,提取点云特征)和解码器(从
x
t
x_t
xt和相应的RoI特征预测真实边界框),如上图所示。
BEV是3D目标检测的有效表达,本文使用BEV边界框
(
c
x
,
c
y
,
d
x
,
d
y
,
θ
)
(cx,cy,dx,dy,\theta)
(cx,cy,dx,dy,θ)表达边界框。首先将真实边界框的数量复制到
N
N
N,并归一化到0和1之间,并引入信号缩放因数,控制扩散过程的信噪比。然后按照下式添加噪声,得到提案框
x
t
x_t
xt:
x
t
=
α
ˉ
t
x
0
+
1
−
α
ˉ
t
ϵ
x_t=\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon
xt=αˉtx0+1−αˉtϵ其中
ϵ
∼
N
(
0
,
I
5
)
\epsilon\sim\mathcal{N}(0,I_5)
ϵ∼N(0,I5)。
由于从不含激光雷达点的提案框中恢复真实边界框很困难,因此统计各提案框内的点数
m
m
m,并设置阈值
η
\eta
η。若
m
<
η
m<\eta
m<η,移除提案框并替换为随机边界框,直到所有提案框都至少有
η
\eta
η个点。该方法同样被用于提案框的细化,因为本文发现提案框的质量是该方法成功的关键(见后文)。
尺寸的相关系数:真实世界中物体的长宽有一定关系,因此将随机边界框的长和宽看作两个独立的随机变量是不合适的。本文引入相关系数以限制随机边界框的尺寸:
W
=
ρ
L
+
1
−
ρ
2
X
W=\rho L+\sqrt{1-\rho^2}X
W=ρL+1−ρ2X其中
L
,
X
∼
N
(
0
,
1
)
L,X\sim\mathcal{N}(0,1)
L,X∼N(0,1)且独立,
ρ
=
0.8
\rho=0.8
ρ=0.8。此后,将随机变量
W
,
L
W,L
W,L分别缩放到
(
0
,
w
)
(0,w)
(0,w)和
(
0
,
l
)
(0,l)
(0,l)范围内作为提案的尺寸。
动态时间步长:在训练的早期,从带噪声样本恢复真值很困难,因此本文使用正弦调度控制时间步长范围,噪声在训练阶段逐步提高。设
n
n
n为训练总轮数,
T
T
T为需要的最大时间。则当前轮次
x
x
x的最大时间
T
max
T_{\max}
Tmax为:
T
max
=
{
T
⌊
sin
(
cos
−
1
(
ω
T
)
σ
n
x
+
sin
−
1
(
ω
T
)
)
⌋
x
<
σ
n
T
x
≥
σ
n
T_{\max}=\left\{
给定真实物体集合
y
=
{
y
i
}
i
=
1
M
y=\{y_i\}_{i=1}^M
y={yi}i=1M和预测集合
y
^
=
{
y
^
i
}
i
=
1
N
\hat{y}=\{\hat{y}_i\}_{i=1}^N
y^={y^i}i=1N,匹配代价定义如下:
C
match
=
λ
c
l
s
L
c
l
s
+
λ
r
e
g
L
r
e
g
+
λ
I
o
U
L
B
E
V
_
I
o
U
C
=
arg min
i
∈
M
,
j
∈
N
C
match
(
y
^
i
,
y
j
)
\mathcal{C}_\text{match}=\lambda_{cls}\mathcal{L}_{cls}+\lambda_{reg}\mathcal{L}_{reg}+\lambda_{IoU}\mathcal{L}_{BEV\_IoU}\\\mathcal{C}=\argmin_{i\in M,j\in N}\mathcal{C}_\text{match}(\hat{y}_i,y_j)
Cmatch=λclsLcls+λregLreg+λIoULBEV_IoUC=i∈M,j∈NargminCmatch(y^i,yj)其中
L
c
l
s
\mathcal{L}_{cls}
Lcls为分类的focal损失,
L
r
e
g
\mathcal{L}_{reg}
Lreg和
L
B
E
V
_
I
o
U
\mathcal{L}_{BEV\_IoU}
LBEV_IoU分别为边界框预测的L1损失和BEV IoU损失。
训练损失仅对匹配物体对计算:
L
=
λ
c
l
s
L
c
l
s
+
λ
r
e
g
L
r
e
g
+
λ
I
o
U
L
D
I
o
U
\mathcal{L}=\lambda_{cls}\mathcal{L}_{cls}+\lambda_{reg}\mathcal{L}_{reg}+\lambda_{IoU}\mathcal{L}_{DIoU}
L=λclsLcls+λregLreg+λIoULDIoU其中
L
D
I
o
U
\mathcal{L}_{DIoU}
LDIoU为旋转3D IoU损失。
推断阶段为从噪声到边界框的去噪过程。Diff3Det迭代地从采样自高斯分布的边界框细化预测。给定随机边界框或上一步的预测边界框,解码器会给出当前的预测结果。下一步的提案框可按下式计算: x t − s = α t − s ( x t − 1 − α t ϵ θ ( t ) ( x t ) α t ) + 1 − α t − s − σ t 2 ϵ θ ( t ) ( x t ) + σ t ϵ t σ t = 1 − α t / α t − s ( 1 − α t − s ) / ( 1 − α t ) x_{t-s}=\sqrt{\alpha_{t-s}}(\frac{x_t-\sqrt{1-\alpha_t}\epsilon_\theta^{(t)}(x_t)}{\sqrt{\alpha_t}})+\sqrt{1-\alpha_{t-s}-\sigma_t^2}\epsilon_\theta^{(t)}(x_t)+\sigma_t\epsilon_t\\\sigma_t=\sqrt{\frac{1-\alpha_t/\alpha_{t-s}}{(1-\alpha_{t-s})/(1-\alpha_t)}} xt−s=αt−s(αtxt−1−αtϵθ(t)(xt))+1−αt−s−σt2ϵθ(t)(xt)+σtϵtσt=(1−αt−s)/(1−αt)1−αt/αt−s其中 x t , x t − s x_t,x_{t-s} xt,xt−s分别表示相邻两步的提案框, ϵ θ ( t ) ( x t ) \epsilon_\theta^{(t)}(x_t) ϵθ(t)(xt)为解码器预测的偏移量, ϵ t \epsilon_t ϵt为高斯噪声。采样步数 m m m可以大于1,且 s = T / m s=T/m s=T/m。若使用多步迭代,需要使用NMS处理冗余边界框。
Diff3Det能超过基于锚框的经典模型的性能。
当步数大于1时,性能提升主要在困难物体上,因为更多的步数导致更多的预测边界框,对困难物体的检测有利。但过多的预测会混淆NMS的处理,导致简单物体的性能略微下降。
提出的组件:针对扩散指导的提案生成器,本文以完全随机边界框作为基准,逐步添加(1)带噪声的真实边界框;(2)丢弃点数为0的随机框并进行重采样;(3)使用尺寸相关性约束边界框长宽比;(4)动态时间步长,性能均有提升。
采样步数:推断时,适当地增加采样步数能提高性能。
解码器从随机边界框回归预测结果比较困难,导致相对慢的收敛速度。