原文链接:https://arxiv.org/abs/2307.10249
1. 引言
目前的一些雷达-相机融合3D目标检测方法进行实例级的融合,从相机图像生成3D提案,并与雷达点云相关联以修正提案。但这种方法没有在最初阶段使用雷达,依赖于相机3D检测器;且融合发生在图像视图,多模态数据关联可能因为雷达点云的高度模糊性而不精确。
本文提出雷达-相机多级融合(RCM-Fusion)方法,在BEV融合特征。首先会进行特征级融合,使用雷达数据指导图像特征变换到BEV下,并生成3D边界框。然后使用基于网格点的提案特征融合,进行实例级融合以修正提案,
对于特征级融合,本文设计了雷达指导的BEV查询,使用雷达的位置信息将图像特征转换到BEV。然后雷达-相机门控模块加权聚合多模态BEV特征。这种自适应特征聚合模块被整合到Transformer中,解码密集的BEV查询特征。对于实例级融合,提出提案感知的雷达注意力模块,考虑雷达点与3D提案的相关性,获取雷达点特征。
2. 相关工作
2.3. 两阶段3D目标检测
基于激光雷达的两阶段3D目标检测器利用提案框内的激光雷达点云来修正提案。可分两种方法:第一种方法将与提案相关的一些点视为关键点,使用PointNet++基于关键点提取特征。第二种方法定义一组虚拟点,称为网格点,并基于网格点提取特征。本文认为考虑提案内的点云分布是两阶段检测器的关键部分,使用网格点方法根据点云分布生成关键点。
3. 方法
网络结构如下图所示。
3.1. 雷达和图像主干
使用ResNet-101和FPN提取多尺度图像特征 F C F_C FC;使用PointPillars提取雷达BEV特征图 F R ∈ R H × W × C F_R\in\mathbb{R}^{H\times W\times C} FR∈RH×W×C。
3.2. 雷达指导的BEV编码器
首先使用
F
R
F_R
FR生成雷达指导的BEV查询(RGBQ),该查询包含雷达的位置信息。然后,使用RGBQ将多模态特征转换为增强BEV特征。最后,雷达-相机门控(RCG)根据各模态的信息量,进行多模态的门控聚合。
雷达指导的BEV查询:本文利用雷达的位置信息,使用
F
R
F_R
FR生成BEV查询(RGBQ)
Q
R
G
∈
R
H
×
W
×
C
Q^{RG}\in\mathbb{R}^{H\times W\times C}
QRG∈RH×W×C。具体来说,将
F
R
F_R
FR与BEV查询
Q
∈
R
H
×
W
×
C
Q\in\mathbb{R}^{H\times W\times C}
Q∈RH×W×C拼接后通过可变形注意力(DeformAttn)模块生成
Q
R
G
Q^{RG}
QRG:
Q
p
R
G
=
∑
V
∈
{
Q
,
F
R
}
DeformAttn
(
Q
p
,
p
,
V
)
Q_p^{RG}=\sum_{V\in\{Q,F_R\}}\text{DeformAttn}(Q_p,p,V)
QpRG=V∈{Q,FR}∑DeformAttn(Qp,p,V)其中
Q
p
R
G
Q_p^{RG}
QpRG和
Q
p
Q_p
Qp分别表示BEV像素
p
=
(
x
,
y
)
p=(x,y)
p=(x,y)处的查询。然后
Q
p
R
G
Q_p^{RG}
QpRG通过空间交叉注意力(SCA)块生成修正的相机BEV特征
B
C
B_C
BC和修正的雷达BEV特征
B
R
B_R
BR:
B
C
=
SCA
C
(
Q
p
R
G
,
F
C
)
B
R
=
SCA
R
(
Q
p
R
G
,
F
R
)
B_C=\text{SCA}_C(Q_p^{RG},F_C)\\B_R=\text{SCA}_R(Q_p^{RG},F_R)
BC=SCAC(QpRG,FC)BR=SCAR(QpRG,FR)其中SCA是将
Q
p
R
G
Q_p^{RG}
QpRG投影到模态特征然后进行可变形交叉注意力的操作。
雷达-相机门控:通过加权组合融合
B
C
B_C
BC与
B
R
B_R
BR:
B
R
C
=
{
σ
(
Conv
C
[
B
C
;
B
R
]
)
⊙
B
C
}
⊕
{
σ
(
Conv
R
[
B
R
;
B
C
]
)
⊙
B
R
}
B_{RC}=\{\sigma(\text{Conv}_C[B_C;B_R])\odot B_C\}\oplus\{\sigma(\text{Conv}_R[B_R;B_C])\odot B_R\}
BRC={σ(ConvC[BC;BR])⊙BC}⊕{σ(ConvR[BR;BC])⊙BR}其中
B
R
C
B_{RC}
BRC表示融合BEV特征图,
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)表示sigmoid函数,
⊙
\odot
⊙、
⊕
\oplus
⊕和
[
⋅
;
⋅
]
[\cdot;\cdot]
[⋅;⋅]分别表示按元素乘法、按元素加法和通道拼接。然后,
B
R
C
B_{RC}
BRC以和基准方案BEVFormer相同的方式,通过归一化和前馈网络。重复BEV编码器(本节所有内容)
L
L
L次后,生成最终的BEV特征图。和BEVFormer相比,本文的方法可以生成更精确的BEV特征图(特征更集中在真实边界框附近),而前者缺少足够的深度信息。
3.3. 雷达网格点修正
提案感知的雷达注意力(PRA)将3D提案和相关联的雷达点云作为输入,使用基于MLP的注意力决定每个点的重要程度。然后使用雷达网格点池化(RGPP),考虑雷达点的特性和分布采样网格点,并将雷达点和多尺度图像的特征聚合到网格点中,生成细化特征。细化特征和初始提案特征组合产生最终输出。
提案感知的雷达注意力:使用CRAFT中的软极性关联(SPA)将雷达点与3D提案关联。首先将3D提案和雷达点转换到极坐标系下,然后将径向距离和水平角均在一定范围内的雷达点与3D提案关联。但这样会使更多的点与3D提案关联,因为该范围比3D提案更大。引入PRA,设
b
=
(
c
,
w
,
l
,
h
,
θ
,
v
pred
)
b=(\mathbf{c},w,l,h,\theta,\mathbf{v}_\text{pred})
b=(c,w,l,h,θ,vpred)表示一个3D提案,其中心位置为
c
\mathbf{c}
c,3D尺寸为
(
w
,
l
,
h
)
(w,l,h)
(w,l,h),朝向角为
θ
\theta
θ,速度为
v
pred
\mathbf{v}_\text{pred}
vpred。与
b
b
b相关联的
K
K
K个雷达点记为
{
r
k
}
k
=
1
K
\{r_k\}_{k=1}^K
{rk}k=1K,其中第
k
k
k个点的位置为
u
k
∈
R
3
\mathbf{u}_k\in\mathbb{R}^3
uk∈R3。引入逐点的分数向量
s
k
s_k
sk来决定每个点的重要程度,得到被关注的雷达点特征
a
k
a_k
ak:
s
k
=
MLP
2
(
[
MLP
1
(
r
k
)
;
δ
(
c
−
u
k
)
]
)
a
k
=
Softmax
(
s
k
)
⊙
MLP
3
(
r
k
)
s_k=\text{MLP}_2([\text{MLP}_1(r_k);\delta(\mathbf{c}-\mathbf{u}_k)])\\a_k=\text{Softmax}(s_k)\odot\text{MLP}_3(r_k)
sk=MLP2([MLP1(rk);δ(c−uk)])ak=Softmax(sk)⊙MLP3(rk)其中MLP沿通道维度处理,
δ
(
⋅
)
\delta(\cdot)
δ(⋅)表示位置编码。
雷达网格点池化:网格点的位置和数量对基于网格点的修正模块来说是最重要的。考虑到雷达点的位置误差和稀疏程度,本文提出RGPP。如上图所示,3D提案的速度向量
v
pred
\mathbf{v}_\text{pred}
vpred可分解为切向速度
v
tan
\mathbf{v}_\text{tan}
vtan和径向速度
v
rad
\mathbf{v}_\text{rad}
vrad。对第
k
k
k个雷达点
r
k
r_k
rk,
T
T
T个网格点
{
g
k
t
}
t
=
0
T
−
1
\{g_k^t\}_{t=0}^{T-1}
{gkt}t=0T−1按如下方式被生成在位置
u
k
\mathbf{u}_k
uk附近:
γ
=
{
ρ
min
,
∣
v
tan
∣
≤
ρ
min
∣
v
tan
∣
,
ρ
min
<
∣
v
tan
∣
<
ρ
max
ρ
max
,
∣
v
tan
∣
≥
ρ
max
g
k
t
=
γ
⋅
(
t
T
−
1
−
1
2
)
⋅
v
tan
∣
v
tan
∣
+
u
k
,
t
=
0
,
⋯
,
T
−
1
\gamma=\left\{\begin{matrix} \rho_{\min}, & |\mathbf{v}_{\tan}|\leq\rho_{\min}\\ |\mathbf{v}_{\tan}|, & \rho_{\min}<|\mathbf{v}_{\tan}|<\rho_{\max}\\ \rho_{\max}, & |\mathbf{v}_{\tan}|\geq\rho_{\max} \end{matrix}\right.\\g_k^t=\gamma\cdot \left(\frac{t}{T-1}-\frac{1}{2}\right)\cdot \frac{\mathbf{v}_{\tan}}{|\mathbf{v}_{\tan}|}+\mathbf{u}_k, \;\;\; t=0,\cdots,T-1
γ=⎩
⎨
⎧ρmin,∣vtan∣,ρmax,∣vtan∣≤ρminρmin<∣vtan∣<ρmax∣vtan∣≥ρmaxgkt=γ⋅(T−1t−21)⋅∣vtan∣vtan+uk,t=0,⋯,T−1
本文沿速度切向(
v
tan
\mathbf{v}_{\tan}
vtan)创建网格点,这是因为雷达点通常在切向更具噪声。网格点的距离与切向速度
v
tan
\mathbf{v}_{\tan}
vtan的大小相关。这样,对该3D提案有
K
T
KT
KT个网格点。然后使用最远点采样选择
M
M
M个网格点
{
g
m
}
m
=
1
M
\{g_m\}_{m=1}^M
{gm}m=1M。
然后使用集合抽象(SetAbs)编码每个网格点
g
m
g_m
gm周围的雷达点,得到雷达点特征
F
m
pts
F_m^\text{pts}
Fmpts:
F
m
pts
=
SetAbs
(
{
a
k
}
k
=
1
K
,
{
r
k
}
k
=
1
K
,
g
m
)
F_m^\text{pts}=\text{SetAbs}(\{a_k\}_{k=1}^K,\{r_k\}_{k=1}^K,g_m)
Fmpts=SetAbs({ak}k=1K,{rk}k=1K,gm)同时,网格点被投影到图像特征图
F
C
F_C
FC上通过双线性采样得到图像特征
F
m
img
F_m^\text{img}
Fmimg:
F
m
img
=
Bilinear
(
F
C
,
proj
(
g
m
)
)
F_m^\text{img}=\text{Bilinear}(F_C,\text{proj}(g_m))
Fmimg=Bilinear(FC,proj(gm))其中
proj
(
⋅
)
\text{proj}(\cdot)
proj(⋅)表示投影过程。最后按下式获得提案特征:
F
m
obj
=
maxpool
(
F
m
pts
⊕
F
m
img
)
F_m^\text{obj}=\text{maxpool}(F_m^\text{pts}\oplus F_m^\text{img})
Fmobj=maxpool(Fmpts⊕Fmimg)上述提案特征会与初始提案特征融合进行3D提案的修正。
3.4. 雷达数据预处理
本文通过降低判断雷达点是否有效的严格性和多帧积累(进行自车运动补偿和点运动补偿)增加雷达点云的密度。
4. 实验
4.2. 实施细节
图像分支使用FCOS3D的预训练权重,雷达分支从头训练。训练时使用类别平衡策略CBGS。
4.3. 数据增广
通过关联雷达点与图像像素,使用图像数据增广和BEV数据增广;在极坐标下使用GT增广,并使用方法增加非空(即含雷达点的)真实边界框的数量。
4.4. nuScenes数据集上的结果
本文方法的性能能大幅超过基于相机的和基于相机-雷达融合的方法。
4.5. nuScenes验证集上的消融实验
组件分析:RGBQ能带来最高的性能提升,而RCG,RGPP和RPA能带来少量性能提升。
雷达网格点采样的作用:与不适用网格点的方法以及常规网格点生成方法相比,本文的自适应网格点生成方法的性能最优。常规网格点的生成会受到稀疏雷达的特性影响,而导致某些网格点周围不含雷达点,从而减少有效网格点的数量。
数据增广:图像数据增广和BEV数据增广均能显著增加性能;极坐标GT增广能略微增加性能。
雷达点过滤:通过适当过滤原始雷达点能带来一定的性能提升。