参考代码: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,F<