TransFusion是香港科技大学、华为和香港城市大学在2022年发表在CVPR的一篇论文
论文地址 : TransFusion
文章目录
前言
多模态融合在自动驾驶领域越来越受欢迎,但是针对劣质图像时(照明不良、传感器未校准)鲁棒性不好,由于通过相机标定矩阵建立的 Lidar 和像素的硬关联,很难解决这种问题。
本文提出了 TransFusion,使用软关联机制来处理较差的图像条件。
一、Preliminary: Transformer for 2D Detection
从DETR开始,Transformer被大量应用在目标检测中,DETR第一次引用了object queries这一概念。关于object queries是一个可学习的embeddings,在模型训练过程中再不断迭代更新参数。关于DETR的详解可以参考:DETR 论文精读【论文精读】。
二、Query Initialization
Input-dependent
object queries 是指一组特殊的可学习参数,用于在目标检测任务中查询和定位目标物体。在DETR中 object queries 作为网络参数学习的,一旦训练结束,object queries 也就确定了,与输入的数据没有关系。这种情况将会用更多的decoder层来确定真实的框在什么地方。
对于 Input-dependent,首先通过 Lidar 的 BEV 特征图
F
L
F_L
FL ∈
R
X
×
Y
×
d
R^{X × Y × d}
RX×Y×d 预测中心热力图
S
ˆ
\^{S}
Sˆ ∈
R
X
×
Y
×
K
R^{X × Y × K}
RX×Y×K,X × Y 是 BEV 特征图的大小,K 是类别数。对于所有的类别,在每个 8 连通区域内保留一个最大值后,再选择出前 N 个分数最高的作为候选位置
S
ˆ
i
j
k
\^{S}_{ijk}
Sˆijk ,表示该位置 (
i
i
i,
j
j
j) 存在物体,对应的物体类别是
k
k
k,每个候选位置用于初始化query positions,这个位置对应的BEV特征为初始query features。这样输入的数据不同,得到的BEV图像不i同,热力图也不同,最后得到的object queries也将不同。通过这种方式初始object queries将位于或靠近潜在对象中心,从而消除了用多个decoder层来学习向真实对象中心移动的需要。
Category-aware
由于在BEV平面上对象都是绝对比例,并且在同一类别之间的差异较小。为了利用这些属性进行多分类检测,此时 object queries 包括了query positions 和 query features,我们还需要对 object queries 添加类别信息使得 object queries 具有类别感知能力。
对于每一个
S
ˆ
i
j
k
\^{S}_{ijk}
Sˆijk ,使用 one-hot 类别向量线性映射到
R
d
R^d
Rd向量,将得到的向量与
R
d
R^d
Rd对应的 query features 逐元素求和。
加入了类别信息对于自注意力模块中的 object-object 关系和交叉注意力模块中object-context 关系可以起到辅助作用。同时在预测过程中,提供有价值的先验知识,有利于类别的预测。
The category embedding brings benefits in two aspects: on the one hand, it serves as a useful side information when modelling the object-object relations in the self-attention modules and the object-context relations in the cross-attention modules. On the other hand, during prediction, it could deliver valuable prior knowledge of the object, making the network focus on intra-category variance and thus benefiting the property prediction.
三、Transformer Decoder and FFN
对于 decoder 遵循了DETR中的设计,第一层 decoder 的架构如下图所示,使用上文的 object queries 生成初始3D边框。
query positions 通过MLP编码为 d 维向量,作为位置编码,与 query features 按元素求和,使得网络可以推理上下文信息和位置。自注意力机制可以找到不同 object 之间的某些相关性,而交叉注意力可以使 object 获得一些来自图像或者点云的特征信息。
object queries 通过 decoder 和 FFN 得到3D边界框和类别,这种纯 Lidar 的检测部分称其为TransFusion-L,具体结构如下图所示。
四、LiDAR-Camera Fusion
Image Feature Fetching
基于点集的融合方法受到了点云稀疏性的影响,当一个物体中只有少量的点云,智能获得相同数量的图像特征,损失了大量的图像语义信息。所以作者将Lidar和图像中的硬连接改为软连接,保存了所有的图像特征 F C F_C FC ∈ R N v × H × W × d R^{{N_v} × H × W × d} RNv×H×W×d , N v N_v Nv是图像视角个数。
SMCA for Image Feature Fusion
通过交叉注意力机制,在 Lidar 和图像之间建立软连接,使网络自适应的确定从图像中获得什么信息。
首先通过先前预测框和校准矩阵找到 object queries 所在的图像,然后将 object queries 与对应的图像特征做交叉注意力。因为点云和图像特征来自不同的领域,所以网络需要很长的训练时间才能准确识别图像上的正确区域,因此作者设计了 SMCA(spatially modulated cross attention) 模块。
通过生成一个 Gaussian weight mask M,
M
i
j
M_{ij}
Mij =
e
x
p
(
−
(
i
−
c
x
)
2
+
(
j
−
c
y
)
2
σ
r
2
)
exp(-{\frac{(i - c_x)^2 + (j - c_y)^2}{σr^2}})
exp(−σr2(i−cx)2+(j−cy)2) ,其中(
i
i
i,
j
j
j) 是 M 的空间索引,(
c
x
c_x
cx,
c
y
c_y
cy) 是投影到图像平面上的2D中心,r 是3D投影在图像平面的2D边界框区域,σ是一个超参数。将M与交叉注意力权重图按元素相乘。这样每个 object queries 仅关注投影在图像上的边界框周围的区域,可以使得网络更好的根据 Lidar 特征选择相应的图像特征。
In this way, each object query only attends to the related region around the projected 2D box, so
that the network can learn where to select image features based on the input LiDAR features better and faster.
可视化结果如下图所示。
第二层 decoder 的架构如下图所示:
五、Label Assignment and Losses
与DETR一样使用二分图匹配,匹配损失为:
L
c
l
s
L_{cls}
Lcls 是二元交叉熵损失,
L
r
e
g
L_{reg}
Lreg 是预测的 BEV 中心和真实中心之间的 L1 损失,
L
i
o
u
L_{iou}
Liou 是预测框和真实框之间的 IoU 损失。
对于给定的样本,分类采用焦点损失,针对正样本回归损失采用 L1 loss ,热力图损失采用penalty-reduced focal loss,总损失是每个分量损失的加权和。对于两个decoder采用相同的Loss。
六、Image-Guided Query Initialization
为了利用高分辨率的图像提高检测小物体的能力并且使稀疏点云更加的鲁棒性,利用 LiDAR 和相机信息选择object queries。
将多视角的图像特征沿垂直维度进行压缩,作为 K,V,与Lidar BEV 特征进行交叉注意力,将图像特征
F
C
F_C
FC ∈
R
N
v
×
H
×
W
×
d
R^{{N_v} × H × W × d}
RNv×H×W×d 投影到 BEV 平面,得到 LiDAR-camera BEV 特征图
F
L
C
F_{LC}
FLC。具体结构如下图所示:
和 TransFusion-L 中相同,使用
F
L
C
F_LC
FLC 来预测热力图,与仅由 Lidar 生成的热力图
S
ˆ
\^{S}
Sˆ 进行平均操作作为最终的热力图
S
ˆ
L
C
\^{S}_{LC}
SˆLC。使用
S
ˆ
L
C
\^{S}_{LC}
SˆLC 进行 object queries 的初始化。
使用相机几何结构可以轻松建立 BEV 位置和图像列之间的关系,并且通常每个图像列最多有一个对象。 因此,沿高度压缩可以显着减少计算量,而不会丢失关键信息。
The collapsing operation is based on the observation that the relation between BEV locations and image columns can be established easily using camera geometry, and usually there is at most one object along each image column.
七、Network Architecture
TransFusion由卷积主干和基于Transformer解码器的检测头组成。使用第一层 decoder 根据雷达特征生成初始边界框。与 2D 中DETR不同,本文中 object queries 是包含类别感知。第二层 decoder 将 object queries 通过空间和上下文关系融合相关的图像信息。
2D backbone使用 DLA34,3D backbone使用 VoxelNet。整个网络框架如下图所示。
总结
TransFusion使用一种软关联机制 (soft-association) 代替以往融合方法中的硬关联机制,通过这种新的机制使得算法在图像质量退化和传感器没有严格对齐的情况下能更加鲁棒。同时 Image Guidance利用高分辨率的图像提高检测小物体的能力。
作者在 object queries 的初始化上不仅实现了input-dependent,而且还满足了 category-aware 。在实现 input-dependent 是的操作可谓是十分新颖,通过 heatmap 筛选出热点,既保证了object queries 的稀疏性,又可以通过热点位置的特征对 object 进行初始化,同时热点位置也可以用于位置编码加入到query中。
本文是自己对论文的理解,如有不同见解,欢迎讨论、指正。