参考代码:BEVSimDet
1. 概述
介绍:在模型实际部署过程中由于实际传感器缺失、计算资源限制等因素,导致对实际部署的模型裁剪,自然性能也会存在下降。对这样的情况一般会采取知识蒸馏的方式实现性能弥补,对于常见intra-modal、cross-modal、multi-modal的蒸馏方式,它们需要source和target中输入的传感器数量保持一致,这样才能实现蒸馏。具体到自动驾驶场景中激光雷达并不是在所有车型,那么对于没有激光雷达的车如何提升感知性能?对此文章提出在图像特征上添加一个模拟的Lidar特征用于实现Lidar部分信息的迁移,这样来弥补由于Lidar缺失带来的性能影响。
2. 方法实现
这篇文章的方法是建立咋BEVFusion方法上的,因而涉及到Lidar和Camera的融合,但这是在source中,而target中是不存在Lidar的。对此文章提出从图像特征上预测一个和Lidar特征近似的特征来代替Lidar,其蒸馏的结构见下图:

对于知识蒸馏由于source和target差异比较大,因而所有的知识迁移都是在BEV空间下完成的,也就是上面对应的CMD、IMD、MMD-F、MMD-P上。首先对于source和target中都存在的feature进行知识迁移,也就是IMD、MMD-F、MMD-P。
IMD:
图像特征经过view-trans之后得到BEV特征,则在source和target中的对应区域添加约束:
L
I
M
D
=
M
S
E
(
F
C
b
e
v
T
,
F
C
b
e
v
S
)
L_{IMD}=MSE(F_{C_{bev}}^T,F_{C_{bev}}^S)
LIMD=MSE(FCbevT,FCbevS)
MMD-F:
这部分是在Lidar和Camera特征融合之后进行蒸馏,其使用的约束是:
L M M D − F = M S E ( F U b e v T , F U b e v S ) L_{MMD-F}=MSE(F_{U_{bev}}^T,F_{U_{bev}}^S) LMMD−F=MSE(FUbevT,FUbevS)
MMD-P:
这部分是在预测头部分分辨对bbox预测结果(
P
B
P_B
PB)和cls特征(
P
C
P_C
PC)进行蒸馏,对于cls特征是[0,1]之间的连续值,则这里使用的是Quality Focal Loss (QFL)进行适配,以此来平衡数据分布,则其约束为:
L
M
M
D
−
P
=
S
m
o
o
t
h
L
1
(
P
B
T
,
P
B
S
)
⋅
s
+
Q
F
L
(
P
C
T
,
P
C
S
)
⋅
s
L_{MMD-P}=SmoothL1(P_B^T,P_B^S)\cdot s+QFL(P_C^T,P_C^S)\cdot s
LMMD−P=SmoothL1(PBT,PBS)⋅s+QFL(PCT,PCS)⋅s
其中,
s
s
s是由bbox与GT的IoU确定的loss加权系数。
CMD:
由于target中没有Lidar传感器,则这里使用图像特征上添加分支进行预测得到的,则部分特征的生成采用了Deformable Attention Layer(用实验也验证了它比DeformConv效果好)构建Geometry Compensation Module (GCM),用于生成表达几何信息能力更强的特征表达,则生成出来的Lidar特征描述为:
F
L
b
e
v
S
=
G
C
M
b
e
v
(
ρ
(
Υ
(
G
C
M
u
v
(
F
C
u
v
S
)
)
×
Θ
(
G
C
M
u
v
(
F
C
u
v
S
)
)
)
F_{L_{bev}}^S=GCM_{bev}(\rho(\Upsilon(GCM_{uv}(F_{C_{uv}}^S))\times\Theta(GCM_{uv}(F_{C_{uv}}^S)))
FLbevS=GCMbev(ρ(Υ(GCMuv(FCuvS))×Θ(GCMuv(FCuvS)))
这里记
ρ
,
Υ
,
Θ
\rho,\Upsilon,\Theta
ρ,Υ,Θ分别代表bev_pool操作、context特征生成、深度特征表达。得到虚拟Lidar数据之后需要将其与Lidar特征进行对齐,参考CenterPoint中对
(
x
ˉ
i
,
y
ˉ
i
)
(\bar{x}_i,\bar{y}_i)
(xˉi,yˉi)作为中心绘制一个2D高斯分布:
H
(
x
,
y
)
=
∑
i
H
e
x
p
(
−
(
x
−
x
ˉ
i
)
2
+
(
y
−
y
ˉ
i
)
2
2
σ
2
)
H(x,y)=\sum_i^Hexp(-\frac{(x-\bar{x}_i)^2+(y-\bar{y}_i)^2}{2\sigma^2})
H(x,y)=i∑Hexp(−2σ2(x−xˉi)2+(y−yˉi)2)
其中,
σ
=
m
a
x
(
f
(
h
,
w
)
,
τ
)
,
τ
=
2
\sigma=max(f(h,w),\tau),\tau=2
σ=max(f(h,w),τ),τ=2,也是参考CenterPoint中的设置。对于bbox在BEV空间下投影得到目标的二值掩膜
B
B
B:
M
o
=
B
⊙
H
M_o=B\odot H
Mo=B⊙H
再使用这个掩膜去对Lidar特征进行蒸馏(关注前景区域):
L
C
M
D
=
M
o
⊙
M
S
E
(
F
L
b
e
v
T
,
F
L
b
e
v
S
)
L_{CMD}=M_o\odot MSE(F_{L_{bev}}^T,F_{L_{bev}}^S)
LCMD=Mo⊙MSE(FLbevT,FLbevS)
这几个模块实际带来的性能影响:

3. 实验结果
蒸馏方法的有效性:


1109

被折叠的 条评论
为什么被折叠?



