参考代码:SparseBEV
动机与主要贡献:
BEV感知可以按照是否显式构建BEV特征进行划分,显式构建BEV特征的方法需要额外计算量用于特征构建,而类似query方案的方法则不需要这样做。比较两种类型的方法,前者需要更多计算资源但是效果好,后者需要的计算资源相对较少,但是性能相比起来不足。在这篇文章中从如下3个维度去分析和优化基于query的感知方法:
- 1)分析query之间的关联,在基于query的方法中往往使用self-attention的方式构建query之间的关联,但是对于3D空间中的物体它们是存在空间距离的,相隔较远的物体它们之间的关联性自然就弱
- 2)自身和目标的运动补偿,自动驾驶的场景是运动场景,则需要对自车和周围物体的运动状态建模,从而实现在特征维度的对齐和采样
- 3)不同时许的特征融合,提出一种channel-wise和spatial-wise attention的特征融合方法
算法流程结构:
算法的流程结构是CNN编解码+transformer解码的结构,见下图
上图中左边的3个小框就分别代表了文章的3个主要工作:基于query距离的self-attention、自车和目标运动补偿、时序融合。
基于query距离的self-attention:
原本query之间的self-attention是global的,这就把相隔很远的物体也关联起来了,但按照直观理解这样是不太合理的,则需要考虑两个query之间的实际距离:
D
i
,
j
=
(
x
i
−
x
j
)
2
+
(
y
i
−
y
j
)
2
D_{i,j}=\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}
Di,j=(xi−xj)2+(yi−yj)2
那么这个距离就通过如下方式添加到attention的计算过程中:
A
t
t
n
(
Q
,
K
,
V
)
=
s
o
f
t
m
a
x
(
Q
K
T
d
−
τ
D
)
V
Attn(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d}}-\tau D)V
Attn(Q,K,V)=softmax(dQKT−τD)V
其中,
τ
\tau
τ适用于控制距离作用的可学习因子,避免直接按照距离划分太过生硬,也让这个过程具有数据驱动的能力。对于这个
τ
\tau
τ其实是根据多头注意力的个数确定的,也就是对多头注意力的每个头预测一个距离因子。那么不同的距离因子对于实际query的感受野影响见下图所示:
自然
τ
\tau
τ越大关注的距离也就越近了,同时对应的实验结果也显示了大的目标需要的感受野范围也就越大:
自车和目标运动补偿:
在Deformable Attention中已经存在基于query的采样offset预测,但是它与目标的实际大小不相关,完全由参与预测的MLP决定。则对于每个query这里分别预测相对物体长宽高的offset,从而使得offset的生成更加符合目标的空间实际,这是对offset生成部分的改动。相比传统的offset生成方式有mAP上1个点左右的提升:
确定offset生成方式之后之前需要对齐不同时序下的特征,自然需要依据自身pose变化对特征进行变换,并且对于场景中的运动目标还需要使用速度进行补偿。两种运动对齐的影响:
时序融合:
在实现多桢数据对齐之后便是需要对多桢数据进行融合,这里融合不是简单concat这类操作,而是使用channel-wise和spatial-wise attention的方式进行。不同的融合策略对于性能的影响:
实验结果:
nuScenes test:
nuScenes val: