【论文笔记】Bridging the View Disparity Between Radar and Camera Features for Multi-modal Fusion 3D Object Detection
原文链接:https://ieeexplore.ieee.org/document/10027465
I. 引言
目前的雷达-图像融合方法主要有三种:结果融合、原始数据融合和特征融合,其中特征融合效果最优。特征融合的主流方法是将雷达投影到图像上,使用复杂规则进行特征提取,但图像采样前视图语义信息,而雷达采样3D几何信息,这种方法忽略了两模态之间的视图差异。
本文受BEV感知相关工作的启发,将雷达与图像表达在BEV下进行融合;同时,利用“BEV下的雷达点云在边界框边缘处”这一几何约束增强融合性能。
本文的跨视图特征级融合方法叫RCBEV,其中雷达分支克服雷达稀疏性和噪声提取有效特征;多尺度视图变换器能获取跨视图图像特征;通过两阶段融合方案(点融合与RoI融合)融合特征;最后使用无需锚框的检测头获取3D边界框。
III. 系统结构
如下图所示。首先从图像提取多尺度特征并估计深度,然后将图像特征提升为棱台特征,从而转化并提取BEV特征。
此外,针对雷达点云的稀疏性和噪声,本文提出新的方案:对原始雷达数据进行预处理后,积累多帧雷达点云以克服稀疏性,并设计置信度滤波器过滤噪声和虚警;雷达特征提取器分为空间编码器和时间编码器两部分,其中空间编码器处理位置、速度和RCS信息,时间编码器处理多帧之间的特征错位。
融合模块包括两阶段:首先是雷达特征和图像特征进行点级融合;然后使用雷达生成服从高斯分布的热图,以反映几何约束,与预测的热图进行RoI级别的融合。最后增强热图输入无需锚框的检测头预测3D边界框。
IV. 方法
A. 雷达处理
专门设计的部分包含三个:(1)数据处理模块,(2)雷达特征提取器,以及(3)物体热图生成器。(1)和(2)的结构如下图所示。
(1)数据处理模块:
多帧积累。以前向雷达为参考系,将过去帧的雷达点云转换到当前帧下:
Z
ref
(
t
)
=
Trans
(
Z
radar
(
t
−
k
)
)
=
T
ego
(
t
)
ref
(
t
)
T
global
ego
(
t
)
T
ego
(
t
−
k
)
global
T
radar
ego
(
t
−
k
)
Z
radar
(
t
−
k
)
Z^\textup{ref}(t)=\textup{Trans}(Z^\textup{radar}(t-k))=T^{\textup{ref}(t)}_{\textup{ego}(t)}T^{\textup{ego}(t)}_\textup{global}T^\textup{global}_{\textup{ego}(t-k)}T^{\textup{ego}(t-k)}_\textup{radar}Z^\textup{radar}(t-k)
Zref(t)=Trans(Zradar(t−k))=Tego(t)ref(t)Tglobalego(t)Tego(t−k)globalTradarego(t−k)Zradar(t−k) 噪声过滤:根据点的动态特性
γ
d
s
\gamma_{ds}
γds、反射强度
σ
\sigma
σ、来自物体的概率
γ
v
s
\gamma_{vs}
γvs和虚警概率
γ
f
p
\gamma_{fp}
γfp过滤噪声(都是nuScenes数据集提供的数据)。记为
C
F
(
Z
radar
(
t
)
)
=
F
i
l
t
e
r
(
σ
,
γ
v
s
,
γ
d
s
,
γ
f
p
)
CF(Z^\textup{radar}(t))=Filter(\sigma,\gamma_{vs},\gamma_{ds},\gamma_{fp})
CF(Zradar(t))=Filter(σ,γvs,γds,γfp) 输入网络的雷达数据
I
radar
(
t
)
=
∑
k
=
0
N
Trans
(
C
F
(
Z
radar
(
t
−
k
)
)
I^\textup{radar}(t)=\sum_{k=0}^N\textup{Trans}(CF(Z^\textup{radar}(t-k))
Iradar(t)=k=0∑NTrans(CF(Zradar(t−k))(2)雷达特征提取器:
空间编码:输入雷达点云的特征包含位置、补偿后的径向速度以及RCS值。使用高效的VoxelNet或PointPillars的主干网络处理输入,提取特征
F
S
E
R
F^{R}_{SE}
FSER。
时间编码:虽然经过对齐,多帧点云仍可能存在细微的错位,故使用ConvLSTM来细化特征
F
S
E
R
(
t
−
k
)
,
k
=
0
,
1
,
⋯
,
N
F^{R}_{SE}(t-k),k=0,1,\cdots,N
FSER(t−k),k=0,1,⋯,N。
整个特征提取器可记为:
F
S
E
R
(
t
−
k
)
=
S
E
(
Trans
(
C
F
(
Z
radar
(
t
−
k
)
)
)
)
F
T
E
R
(
t
)
=
T
E
(
Concat
(
F
S
E
R
(
t
)
,
F
S
E
R
(
t
−
1
)
,
⋯
,
F
S
E
R
(
t
−
N
)
)
)
F^R_{SE}(t-k)=SE(\textup{Trans}(CF(Z^\textup{radar}(t-k))))\\F^R_{TE}(t)=TE(\textup{Concat}(F^R_{SE}(t),F^R_{SE}(t-1),\cdots,F^R_{SE}(t-N)))
FSER(t−k)=SE(Trans(CF(Zradar(t−k))))FTER(t)=TE(Concat(FSER(t),FSER(t−1),⋯,FSER(t−N)))
B. 图像处理
如下图所示,图像处理分为三个部分:图像视图特征提取器,交叉视图特征变换器,BEV特征提取器。
图像视图特征提取器提取多尺度多视图特征图:
F
img
I
=
Neck
(
Backbone
(
I
image
)
)
F_\textup{img}^I=\textup{Neck}(\textup{Backbone}(I^\textup{image}))
FimgI=Neck(Backbone(Iimage)) 交叉视图特征变换器:估计深度分布
F
Depth
I
F_\textup{Depth}^I
FDepthI后与图像特征
F
img
I
F_\textup{img}^I
FimgI作外积得到棱台特征
V
F
img
VF_\textup{img}
VFimg,然后使用相机参数转换到BEV下:
F
Depth
I
=
Softmax
(
DepthEstimate
(
F
img
I
)
)
V
F
img
=
F
img
I
⊗
F
Depth
I
V
F
BEV
=
E
(
I
−
1
(
V
F
img
)
)
F_\textup{Depth}^I=\textup{Softmax}(\textup{DepthEstimate}(F_\textup{img}^I))\\VF_\textup{img}=F^I_\textup{img}\otimes F_\textup{Depth}^I\\VF_\textup{BEV}=E(I^{-1}(VF_\textup{img}))
FDepthI=Softmax(DepthEstimate(FimgI))VFimg=FimgI⊗FDepthIVFBEV=E(I−1(VFimg))其中
E
E
E与
I
I
I分别为相机的外参和内参矩阵。
BEV特征提取器:使用ResNet和FPN。
F
BEV
I
=
BEV
Neck
(
V
F
BEV
)
F_\textup{BEV}^I=\textup{BEV}_\textup{Neck}(VF_\textup{BEV})
FBEVI=BEVNeck(VFBEV)
C. 融合模块
如下图所示,融合分两阶段:点级融合与RoI级融合。
点级融合:首先将图像BEV特征和点云BEV特征进行上下采样以统一分辨率,然后拼接。考虑到不精确的空间变换可能导致视图错位,将融合特征通过卷积。
F
P
F
=
Conv
(
Concat
(
Up
(
F
T
E
R
)
,
Down
(
F
B
E
V
I
)
)
)
F^{PF}=\textup{Conv}(\textup{Concat}(\textup{Up}(F^R_{TE}),\textup{Down}(F^I_{BEV})))
FPF=Conv(Concat(Up(FTER),Down(FBEVI))) RoI级融合:点级融合的输出会输入卷积层预测各类别的热图
H
P
F
H^{PF}
HPF。多通道雷达热图
H
radar
H^\textup{radar}
Hradar由
I
radar
I^\textup{radar}
Iradar使用二维高斯分布生成,生成时考虑原始雷达点云的位置(
x
r
,
y
r
x_r,y_r
xr,yr)、速度(
v
x
,
v
y
v_x,v_y
vx,vy)、强度(
σ
\sigma
σ)和虚警率(
γ
f
p
\gamma_{fp}
γfp)(因此生成的是6通道热图,下式中通道用
a
a
a表示):
H
radar
(
x
,
y
,
a
)
=
1
M
(
a
)
{
e
x
p
(
−
(
x
−
p
x
)
2
+
(
y
−
p
y
)
2
2
Σ
(
a
)
)
∣
x
−
p
x
∣
<
3
Σ
x
,
∣
y
−
p
y
∣
<
3
Σ
y
0
否则
H^\textup{radar}(x,y,a)=\frac{1}{M(a)}\left\{\begin{matrix} exp\left(-\frac{(x-p_x)^2+(y-p_y)^2}{2\Sigma(a)}\right)&|x-p_x|<3\Sigma_x,|y-p_y|<3\Sigma_y \\ 0 & 否则\end{matrix}\right.
Hradar(x,y,a)=M(a)1{exp(−2Σ(a)(x−px)2+(y−py)2)0∣x−px∣<3Σx,∣y−py∣<3Σy否则
Σ
(
a
)
=
{
diag
(
max
(
a
r
m
s
,
τ
)
)
a
∈
{
x
r
,
y
r
,
v
x
,
v
y
}
diag
(
max
(
a
,
τ
)
)
a
∈
{
σ
,
γ
f
p
}
\Sigma(a)=\left\{\begin{matrix} \textup{diag}(\max(a_{rms},\tau)) & a\in\{x_r,y_r,v_x,v_y\}\\ \textup{diag}(\max(a,\tau)) & a\in\{\sigma,\gamma_{fp}\} \end{matrix}\right.
Σ(a)={diag(max(arms,τ))diag(max(a,τ))a∈{xr,yr,vx,vy}a∈{σ,γfp}
M
(
a
)
=
2
π
∣
Σ
(
a
)
∣
1
/
2
M(a)=2\pi|\Sigma(a)|^{1/2}
M(a)=2π∣Σ(a)∣1/2其中下标rms表示均方根,
τ
\tau
τ为最小高斯半径;
p
x
,
p
y
p_x,p_y
px,py为雷达的位置测量。
得到
H
P
F
H^{PF}
HPF和
H
radar
H^\textup{radar}
Hradar后,使用乘法融合两个热图后再通过
1
×
1
1\times1
1×1卷积,得到
H
R
F
H^{RF}
HRF。
D. 检测头设计
检测头为无需锚框的检测头,由卷积层构成。损失函数分为分类损失和回归损失两部分。
分类损失为focal损失以平衡前景和背景的数量:真实热图为类似生成的高斯热图
H
G
T
∈
[
0
,
1
]
H
R
×
W
R
×
C
H^{GT}\in[0,1]^{\frac{H}{R}\times\frac{W}{R}\times C}
HGT∈[0,1]RH×RW×C(
C
C
C为类别数),高斯核为
H
G
T
=
e
x
p
(
(
(
x
−
p
ˉ
x
)
2
+
(
y
−
p
ˉ
y
)
2
)
/
2
σ
p
2
)
H^{GT}=exp(((x-\bar{p}_x)^2+(y-\bar{p}_y)^2)/2\sigma_p^2)
HGT=exp(((x−pˉx)2+(y−pˉy)2)/2σp2)。将
H
R
F
H^{RF}
HRF通过卷积层预测
C
C
C通道热图
H
pred
H^\textup{pred}
Hpred,按下式计算分类损失:
L
c
l
s
=
−
1
N
∑
x
y
c
log
(
H
pred
)
(
1
−
H
pred
)
α
G
(
H
G
T
)
+
log
(
1
−
H
pred
)
(
H
pred
)
α
(
1
−
G
(
H
G
T
)
γ
)
L_{cls}=-\frac{1}{N}\sum_{xyc}\log(H^\textup{pred})(1-H^\textup{pred})^\alpha G(H^{GT})+\log(1-H^\textup{pred})(H^\textup{pred})^\alpha(1-G(H^{GT})^\gamma)
Lcls=−N1xyc∑log(Hpred)(1−Hpred)αG(HGT)+log(1−Hpred)(Hpred)α(1−G(HGT)γ) 回归损失:位置偏差
O
^
p
\hat{O}_p
O^p、尺寸和速度损失为L1损失;对于朝向角损失,使用softmax函数计算;属性损失使用二元交叉熵损失。
L
o
f
f
=
1
N
T
∑
k
=
1
N
T
∣
O
^
p
k
−
(
p
k
R
−
p
~
k
)
∣
,
p
=
p
x
,
p
y
,
p
z
L_{off}=\frac{1}{N_T}\sum_{k=1}^{N_T}\left|\hat{O}_{pk}-(\frac{p_k}{R}-\tilde{p}_k)\right|,p=p_x,p_y,p_z
Loff=NT1k=1∑NT
O^pk−(Rpk−p~k)
,p=px,py,pz
L
d
i
m
=
1
N
T
∑
k
=
1
N
T
∣
s
k
−
s
^
k
∣
,
s
=
w
,
l
,
h
L_{dim}=\frac{1}{N_T}\sum_{k=1}^{N_T}|s_k-\hat{s}_k|,s=w,l,h
Ldim=NT1k=1∑NT∣sk−s^k∣,s=w,l,h
L
v
e
l
=
1
N
T
∑
k
=
1
N
T
∣
v
k
−
v
^
k
∣
,
v
=
v
x
,
v
y
L_{vel}=\frac{1}{N_T}\sum_{k=1}^{N_T}|v_k-\hat{v}_k|,v=v_x,v_y
Lvel=NT1k=1∑NT∣vk−v^k∣,v=vx,vy
L
r
o
t
=
1
N
T
∑
k
=
1
N
T
[
softmax
(
b
^
k
)
−
1
N
θ
∑
i
=
1
N
θ
cos
(
θ
−
b
i
−
Δ
θ
i
)
]
L_{rot}=\frac{1}{N_T}\sum_{k=1}^{N_T}\left[\textup{softmax}(\hat{b}_k)-\frac{1}{N_\theta}\sum_{i=1}^{N_\theta}\cos(\theta-b_i-\Delta\theta_i)\right]
Lrot=NT1k=1∑NT[softmax(b^k)−Nθ1i=1∑Nθcos(θ−bi−Δθi)]
L
a
t
t
=
1
N
T
∑
k
=
1
N
T
1
N
A
∑
i
=
1
N
A
−
w
i
∣
a
k
i
log
a
^
k
i
+
(
1
−
a
k
i
)
log
(
1
−
a
^
k
i
)
∣
L_{att}=\frac{1}{N_T}\sum_{k=1}^{N_T}\frac{1}{N_A}\sum_{i=1}^{N_A}-w_i|a_k^i\log\hat{a}_k^i+(1-a_k^i)\log(1-\hat{a}_k^i)|
Latt=NT1k=1∑NTNA1i=1∑NA−wi∣akiloga^ki+(1−aki)log(1−a^ki)∣其中
N
T
N_T
NT为训练样本数,
N
θ
N_\theta
Nθ为朝向角
θ
\theta
θ划分的区间数,
b
i
b_i
bi是区间
i
i
i的中心角度,
Δ
θ
i
\Delta\theta_i
Δθi表示与区间
i
i
i中心的角度差,
N
A
N_A
NA是属性的数量。
V. 实验
C. 总体结果分析
实验表明,本文的RCBEV方法在没有使用多帧图像的情况下,也能比BEVDet4D有更高的性能。与BEVDet相比,加入雷达数据能使定位精度、尺寸估计精度和速度估计精度大幅提高。与CenterPoint(radar)相比,加入图像数据能大幅提高检测性能,因为仅使用稀疏雷达估计类别很困难。推断速度上,本文的RCBEV仅略慢于BEVDet。
与其余雷达-相机融合方法相比,RCBEV的性能也是最优的。
D. 特殊情况评估
对于仅使用雷达的方法,由于雷达更多反映的是物体(特别是金属物体)的几何形状,因此仅在汽车和金属栅栏的检测上有较好的性能。RCBEV通过融合图像数据,能在几乎所有类别上都有很大的性能提升,且能超过仅基于图像的方法。
对于不同天气条件下的检测性能,仅使用雷达的方法表现最稳定,而对于融合方法和仅使用图像的方法均在夜晚有较大的性能下降。即便如此,RCBEV也比单一模态方法有更高的性能。
E. 消融研究
模型性能随图像分辨率的增大先增大后减小,这是因为超过合适的大小会给训练过程带来困难。
使用雷达的速度属性和RCS均能带来性能提升,且前者会减小速度估计误差。
积累更多帧的雷达数据能进一步提高整体性能,特别是在速度估计上。但时间较短时mAP值能达到峰值。