论文名称:TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers
论文链接:https://arxiv.org/pdf/2203.11496v1.pdf
代码链接:https://github.com/xuyangbai/transfusion
1 引言
如图1
所示,左图是照明较差的例子,右图是由于点云的稀疏性,使得用相机参数进行hard-association
的融合方式浪费了许多图像特征,同时对相机参数很敏感,因为投影点可能由于较小的校准误差而落在物体外部。
针对以上问题,论文提出了一种基于注意力的对齐和融合方式,对图像退化和标定矩阵具有鲁棒性。
三个创新点:
- soft-association mechanism(用注意力机制SMCA对齐和融合)
- image-guided query initialization strategy(用图像引导object queries初始化)
- transformer-based LiDAR-camera fusion model
2 方法
TransFusion 的流程如图2
所示,重点是融合方法:给定 LiDAR BEV 特征和图像特征,tranformer 检测头利用 LiDAR 信息,结合初始化的object queries
进行第一次预测,得到初始预测initial predictions
,然后将object queries
和对应的图像特征融合,得到融合特征。
2.1 初始化Query
每个object query
包含了query position
和query feature
,分别包含物体位置信息和边界框信息。
2.1.1 Input-dependent
提出了基于中心热力图初始化object queries
的方法,使其与输入相关,从而具有更好的先验信息,只需要 1层 transformer decoder 就能达到好的效果,加快了收敛速度。假设 LiDAR BEV 特征为
F
L
∈
R
X
×
Y
×
d
F_L\in \mathbb{R}^{X \times Y\times d}
FL∈RX×Y×d,则初始化步骤如下:
- 基于 BEV 特征预测中心热力图 S ^ ∈ R X × Y × K \hat{S}\in \mathbb{R}^{X\times Y\times K} S^∈RX×Y×K,其中 X , Y X,Y X,Y 是 BEV 特征的尺度, K K K 是类别数。
- 对所有类别,每个8连通区域只保留一个最大值,然后选出前 N 个分数最高的,作为候选位置,表示该位置存在物体,并包含对应的类别,记为
S
^
i
,
j
,
k
\hat{S}_{i,j,k}
S^i,j,k(位置
i
,
j
i,j
i,j,属于第
k
k
k 类),每个候选位置用于初始化位置编码
query positions
,对应 BEV 特征作为初始query features
。因此,初始的 queries 会接近可能存在的物体中心,所以能减少 decoder 层。
2.1.2 Category-aware
与2D平面不同,BEV 平面中同类物体尺度很接近,这个性质有利于进行多类别检测,所以对于每个
S
^
i
,
j
,
k
\hat{S}_{i,j,k}
S^i,j,k,先用 one-hot 类别向量通过线性层映射得到
R
d
\mathbb{R}^d
Rd 向量(category embedding
),再把
S
^
i
,
j
,
k
\hat{S}_{i,j,k}
S^i,j,k对应的query feature
和 category embedding
按元素相加,得到 category-aware query features。
2.2 Transformer Decoder and FFN
decoder 的设计与 DETR 中一致,如图3
所示,左图用于第一次预测,右图用于模态融合。
第一个解码器层:
query position
通过MLP 编码为
d
d
d 维向量,作为位置编码,然后与query feature
按元素相加。queries 最终通过解码器和FFN,得到3D边界框和类别。与CenterPoint一样,FFN预测的是相对于queries 的中心偏移量
δ
x
,
δ
y
\delta_x,\delta_y
δx,δy、边界框高
z
z
z、尺度
l
o
g
(
l
)
,
l
o
g
(
w
)
,
l
o
g
(
h
)
log(l),log(w),log(h)
log(l),log(w),log(h)、航向角
s
i
n
(
α
)
,
cos
(
α
)
sin(\alpha),\cos(\alpha)
sin(α),cos(α)、速度
v
x
,
v
y
v_x,v_y
vx,vy,同时为
K
K
K 类预测概率
p
^
∈
[
0
,
1
]
K
\hat{p}\in [0,1]^K
p^∈[0,1]K,每部分的参数都是由1x1卷积计算得到。最终输出:
{
b
^
t
,
p
^
t
}
t
N
\{\hat{b}_t,\hat{p}_t\}_t^N
{b^t,p^t}tN,
b
^
t
\hat{b}_t
b^t 是第
i
i
i 个 query 对应的预测边界框,
p
^
t
\hat{p}_t
p^t 是对应的类别。
在第一个解码器层后加FFN,进行监督学习,是使用了使用了辅助损失函数。注意,除了2.5
节的方法,目前为止还没使用到图像。
2.3 LiDAR-Camera Fusion
2.3.1 图像特征
point-fusion 的方法中,由于点云的稀疏,融合时会导致损失大量图像语义信息,所以论文在图像像素和点云之间使用soft association
,保留了所有图像特征
F
C
∈
R
N
v
×
H
×
W
×
d
F_C\in R^{N_v\times H\times W\times d}
FC∈RNv×H×W×d,作为memory bank
,
N
v
N_v
Nv 是视角个数。
2.3.2 用SMCA进行融合
使用cross-attention
机制,建立soft association
,使得网络能够自适应地决定需要从图像中获取哪些信息。首先用第一次预测结果和相机矩阵找到 object queries 所在的图像,然后在对应的图像特征和 object queries 做cross attention
。由于点云和图像特征来自不同的domain,要使得queries 落在与3D边界框相关的图像区域,需要很长的收敛时间,所以论文设计了spatially modulated cross attention (SMCA)
模块。
实现方法是通过生成一个weight mask
M
M
M,按元素乘以 cross-attention map,使得每个query 只关注3D投影在图像平面的2D边界框区域。
M
M
M生成方法如下:
M
i
j
=
e
x
p
(
−
(
i
−
c
x
)
2
+
(
j
−
c
y
)
2
σ
r
2
)
M_{ij}=exp(-\frac{(i-c_x)^2+(j-c_y)^2}{\sigma r^2})
Mij=exp(−σr2(i−cx)2+(j−cy)2)
其中
(
i
,
j
)
(i,j)
(i,j) 是位置索引,
(
c
x
,
c
y
)
(c_x,c_y)
(cx,cy) 是2D中心,由3D中心投影到图像平面得到,
r
r
r 是3D边界框投影的最小外切圆的半径,
σ
\sigma
σ 是调整高斯分布宽度的超参数。
2.4 标签分配和损失函数
与DETR 中相同,使用二分图匹配进行正样本匹配,匹配损失如下:
C
m
a
t
c
h
=
λ
1
L
c
l
s
(
p
,
p
^
)
+
λ
2
L
r
e
g
(
b
,
b
)
^
+
λ
3
L
i
o
u
(
b
,
b
^
)
C_{match}=\lambda_1L_{cls}(p,\hat{p})+\lambda_2L_{reg}(b,\hat{b)}+\lambda_3L_{iou}(b,\hat{b})
Cmatch=λ1Lcls(p,p^)+λ2Lreg(b,b)^+λ3Liou(b,b^)
其中
L
c
l
s
L_{cls}
Lcls 用二元交叉熵损失,
L
r
e
g
L_{reg}
Lreg 在预测的BEV中心和 ground truth 中心用L1损失(都归一化到
[
0
,
1
]
[0,1]
[0,1]),
L
i
o
u
L_{iou}
Liou 是预测框和真实框的IoU损失。未匹配到的预测框则为负样本。
给定所有样本,分类损失用 focal loss,回归损失用 L1 loss(只对正样本),热力图损失用 CenterPoint 中的 penalty-reduced focal loss,总损失是三部分的加权和,两个解码器层的标签分配策略和损失函数一致。
2.5 Image-Guided Query Initialization
加入图像信息初始化query,能进一步提高检测小物体的能力。 首先将图像特征
F
C
∈
R
N
v
×
H
×
W
×
d
F_C\in R^{N_v\times H\times W\times d}
FC∈RNv×H×W×d 映射到 BEV 平面,再与 BEV 特征
F
L
F_L
FL 做 cross-attention,得到 LiDAR-camera BEV 特征
F
L
C
F_{LC}
FLC。具体如下:
如图4
所示,将多视角的图像特征(图中只画了一个)在高度维度压缩,作为
K
,
V
K,V
K,V序列,与 LiDAR BEV 特征做 cross-attention,得到
F
L
C
F_{LC}
FLC,之后与2.1
节类似,预测热力图,再与只用 LiDAR 得到的热力图
S
^
\hat{S}
S^ 取平均,得到最终的热力图
S
^
L
C
\hat{S}_{LC}
S^LC,用
S
^
L
C
\hat{S}_{LC}
S^LC 选择和初始化 object queries
。使用更先进的将图像特征映射到BEV平面的方法可能可以提高性能。
3 实验
2D骨干网络用 DLA34,3D骨干网络用 VoxelNet。