Advertisement

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_{IMD}=MSE(F_{C_{bev}}^T,F_{C_{bev}}^S)

MMD-F:
这部分是在Lidar和Camera特征融合之后进行蒸馏,其使用的约束是:

L_{MMD-F}=MSE(F_{U_{bev}}^T,F_{U_{bev}}^S)

MMD-P:
这部分是在预测头部分分辨对bbox预测结果(P_B)和cls特征(P_C)进行蒸馏,对于cls特征是[0,1]之间的连续值,则这里使用的是Quality Focal Loss (QFL)进行适配,以此来平衡数据分布,则其约束为:
L_{MMD-P}=SmoothL1(P_B^T,P_B^S)\cdot s+QFL(P_C^T,P_C^S)\cdot s
其中,s是由bbox与GT的IoU确定的loss加权系数。

CMD:
由于target中没有Lidar传感器,则这里使用图像特征上添加分支进行预测得到的,则部分特征的生成采用了Deformable Attention Layer(用实验也验证了它比DeformConv效果好)构建Geometry Compensation Module (GCM),用于生成表达几何信息能力更强的特征表达,则生成出来的Lidar特征描述为:
F_{L_{bev}}^S=GCM_{bev}(\rho(\Upsilon(GCM_{uv}(F_{C_{uv}}^S))\times\Theta(GCM_{uv}(F_{C_{uv}}^S)))

这里记\rho,\Upsilon,\Theta分别代表bev_pool操作、context特征生成、深度特征表达。得到虚拟Lidar数据之后需要将其与Lidar特征进行对齐,参考CenterPoint中对(\bar{x}_i,\bar{y}_i)作为中心绘制一个2D高斯分布:
H(x,y)=\sum_i^Hexp(-\frac{(x-\bar{x}_i)^2+(y-\bar{y}_i)^2}{2\sigma^2})
其中,\sigma=max(f(h,w),\tau),\tau=2,也是参考CenterPoint中的设置。对于bbox在BEV空间下投影得到目标的二值掩膜B
M_o=B\odot H
再使用这个掩膜去对Lidar特征进行蒸馏(关注前景区域):
L_{CMD}=M_o\odot MSE(F_{L_{bev}}^T,F_{L_{bev}}^S)

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

3. 实验结果

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

全部评论 (0)

还没有任何评论哟~