BEVSimDet:Simulated Multi-modal Distillation in Bird’s-Eye View for Multi-view 3D Object Detection

参考代码: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) LMMDF=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 LMMDP=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)=iHexp(2σ2(xxˉi)2+(yyˉ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=BH
再使用这个掩膜去对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=MoMSE(FLbevT,FLbevS)

这几个模块实际带来的性能影响:
在这里插入图片描述

3. 实验结果

蒸馏方法的有效性:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m_buddy/article/details/131426762