[2021CVPR]General Instance Distillation for Object Detection 论文笔记
1.摘要
核心依据:1. 通用性方面,现有的方法对各类检测器的适用性不足;2. 过分依赖GT框这一局限性而忽视了各实例间的关联性。为此提出了一种新型的一般实例蒸馏技术(general instance distillation),其主要关注各实例间的关联性,并未考虑GT所带来的正负面影响。
由于检测中的正负样本比例失衡问题,在现有研究中难以直接应用分类中的蒸馏方法至目标检测任务中。[14]与[34]等研究均旨在通过优化数据比例来提升蒸馏检测的效果。然而,在这一过程中若仅依赖于标注区域(ground truth)进行蒸馏,则可能忽视背景区域潜在的重要信息。基于这一思路,在本研究中采用图像作为蒸馏目标,并结合响应式(response-based)、特征式(feature-based)以及关系式(relation-based)三种方法来进行多维度融合训练。实验结果表明:基于这一思路设计的学生模型不仅显著超越了基线模型(teacher model),并且展现出良好的泛化能力(generalization capability)。此外该方法还适用于 anchor-free 方法等多种场景。
2.Method
2.1实例选择
单个实例即为一个预测的结果,在将student与teacher进行蒸馏训练的过程中需要缩小两者之间的差异程度。作者通过基于L1距离计算各分类间的分数差异,并筛选出教师与学生在各类别上分数差距较大的样本,在这些样本中取其前k项作为进一步优化的目标集。其中c∈(0, C)是因为每个样本不仅包含边界框检测的结果还涵盖了各类别识别的信息;对于每一个测试样本r而言,在其同类别的各个样本中求解与其的最大差异度;接着比较教师模型与学生模型在各类别上的得分表现并选择得分更高的一方作为最终候选集合;最后对该候选集合中的所有样本执行阀值为0.3的非极大抑制(NMS)算法得到最终候选目标集数目限定为10项用于后续蒸馏训练

2.2特征蒸馏——FPN层面
对top k=10个实例在FPN上的特征进行蒸馏损失的优化处理。具体而言,在学生网络与 teacher网络的FPN层中提取对应的目标框(GI box)的特征向量。为了应对不同目标尺度带来的影响差异,在直接计算特征向量间的L2损失时容易导致学习偏向较大目标的问题。为此可对每个实例的目标框特征执行ROIAlign操作以统一目标尺度,并通过线性自适应映射(fadapt)使学生网络与 teacher网络的特征维度保持一致后再计算L2损失

2.3relation-based蒸馏
该基于关系的方法关注的是不同实体间的关联,在研究student内部各个实体间以及teacher内部各个实体间的(欧氏)距离时引入平滑L1损失函数以缩小student与teacher之间实体间的内在联系。具体而言,在教师模型与学生模型中分别计算各实体对的欧式距离,并对其进行归一化处理以量化实体间的关联程度;其次,在教师与学生之间计算对应实体对的平滑L1损失值作为基于关系的知识蒸馏损失量度。其中φ为归一化参数,t代表教师端的具体样本,s代表学生端的具体样本.在平滑L1损失函数中,变量x表示第一个公式括号内两数之差


2.4response-based蒸馏
具体而言是虚化分类器和虚化分支。然而直接将检测器输出用于虚化存在不合理之处。(即仅对与正样本数量相当的负样本进行虚化)作者采取的方法是在2.1节所选实例基础上根据标签分配策略生成对应的二值检测掩码。例如对于RetinaNet我们通过实例与锚框之间的IoU阈值确定掩码中的0/1值而对于FCOS则将不属于实例的所有头置零。此外虚化损失与原始模型的分类损失以及回归损失具有完全相同的性质如下所示其中L_st代表虚化损失而M表示掩码N则代表对掩码像素求总和运算

三个蒸馏都说完了,总的损失即为LGT加上上述三个损失。
实验
主要应用在RetinaNet、FCOS以及Faster-RCNN等模型上;其中响应式方法在标签分配策略与各网络模型损失计算方式上的差异导致了其特点的不同;实验结果与分析均表现出令人满意的特性
分别针对教师节点(teacher)与学生节点(student)的情况展开设计。其主干网络架构分别为ResNet-101与ResNet-50(这也值得商榷),经过优化后可使学生模型性能提升2~3个点,并通过对比实验表明,在Mimicking、Fine-grained与Fitnet等方法的基础上
基于主网络与子网络蒸馏的策略进行研究,在实验中采用ResNet-101作为主模型并配合MobileNet-V2作为学习器(student),通过这种方式同样能显著提升分类精度。
3.仅使用少量类别进行蒸馏操作时会面临类群数量对效果的影响这一问题,在现有研究中已有研究表明,在类群数量减少时蒸馏的效果会逐渐降低。然而,在本研究提出的方法中该问题得到了有效规避,并且即使类群数量较少的情况下该方法依然表现出良好的效果。
在实例选择阶段, 由于所选样本均为教师或学生的高分段, 因此不会涉及困难样本的蒸馏, 比如图4(a)所示的杯子问题, 作者认为这种情况下容易导致误导. 另一方面, 在后期阶段, 模型可能会忽视部分较为简单的样本, 转而更加关注那些semi-positive类别的样本.
5.消融实验结果表明,在各自独立运行的情况下(即单独完成各自的消融任务),每组模块的表现均能达到1至2分的提升;而当各组模块协同工作时,则能实现2.9分以上的显著提升,并且这种效果甚至超过了对比实验中的Teacher方法。
总结
该研究探讨了新颖的思想,在整体框架上主要关注于通过student学习teacher的top-k预测差异结果,并将其具体分为三个层次:特征提取、实例关系建模以及响应预测阶段。在具体实现上采用了独特的策略,在这三个层次上分别设计了相应的蒸馏机制。值得注意的是,在这一过程中所涉及的设计细节并不复杂,但实验部分依然进行了充分验证。遗憾的是该开源代码尚未发布
