参考代码:UniDistill
1. 概述
介绍:这篇文章为BEV下3D目标检测领域提出了一种知识蒸馏方案,无论是Lidar还是Camera作为数据输入,它们均可以在BEV空间下实现特征对齐,则可以不用考虑前级网络由于不同模态输入而导致特征不匹配问题。对于刚完成到BEV视角转换的特征称为low-level特征,经过BEV编码器之后得到high-level特征,之后检测任务才能在high-level上得到感知结果。这篇文章的具体方法便是在上数BEV涉及的3个维度进行特征蒸馏,具体是通过在目标上采点和使用高斯掩膜实现蒸馏,采点的好处是对目标的scale鲁棒,高斯掩膜的好处是蒸馏更加聚焦。
2. 具体方法
2.1 整体结构和思路
下图展示了文章算法的大体蒸馏思路:
可以看到文章方法进行知识蒸馏的维度都是在BEV特征下完成的,对应到上图便是在low-level、high-level和预测头部分实现特征蒸馏。在说明具体蒸馏方法之前需要明确如下问题:
3D目标特征蒸馏思路:
对于个3D目标其位置在BEV特征图下是固定的,则忽略目标的高度信息,则可以在BEV的XY平面上得到一个矩形区域,则以该矩形4定点+4边中点+1中心点可以构建由9个点描述的检测目标。对于蒸馏的区域是选择在前景区域,而不会对噪声很大的背景区域也选择蒸馏。对于前景区域按照9个点描述可以避免目标大小影响蒸馏偏向性,从而导致小目标蒸馏效果差。
教师网络性能拉垮时的处理:
万一教师网络在某些case上性能拉垮导致传递错误信息给学生网络,对此通过在学生网络对应特征输出部分添加一层卷积作为adapter,这样缓解错误信息引导,这个机制会在low-level和high-level的时候使用。
2.2 具体蒸馏方法
low-level特征蒸馏:
对于adapter之后的特征(目标边界上的9个点组成)采用L1损失的方式进行蒸馏:
L f e a = 1 9 ∑ i = 1 9 ∣ F M T l o w ( x i , y j ) − F M S l o w ( x i , y j ) ∣ L_{fea}=\frac{1}{9}\sum_{i=1}^9|F_{MT}^{low}(x_i,y_j)-F_{MS}^{low}(x_i,y_j)| Lfea=91i=1∑9∣FMTlow(xi,yj)−