[CVPR19] Distilling Object Detectors with Fine-grained Feature Imitation
Introduction:
在 Faster RCNN 基础上使用知识蒸馏改进轻量级网络性能,其核心思想是 teacher 网络中需要传递给 student 网络的应该是有效信息,而非无效的 background 信息。
FGFI 利用fine-grained feature limitation,只对 gt 附近的 anchor 进行蒸馏(不是对整个 feature map 做的 hint learning)。具体来说,将 backbone 输出特征图与 RPN 网络输出结果进行组合,得到 student 网络应该学习的特征,用来指导其产生对应的分布。在 VGG11上实现了相对 baseline 15%的提升。
Fine-Gained区域提取
上图中的红色和绿色边界框是在相应位置上的锚框( anchor boxes)。红色 anchor 表示与 gt 的边界框重叠最大,绿色 anchor 表示附近的物体样本。
对于 backbone 输出的特征图,假设其大小为 W∗HW ∗ HW∗H ,网络中使用的 anchor 数量为 KKK ,对于 fine-Gained 区域的提取步骤可以归纳如下(上图中的右边所示):
- 对于给定的特征图,按照设置好的 anchor 信息,生成 W∗H∗KW ∗ H ∗ KW∗H∗K 个框,将这些框与 gt 计算 IoU 值 mmm ;
- 选择最大的 IoU 值 M=max(m)M=\text{max}(m)M=max(m)。引入参数阈值因子 Ψ∈[0,1]\Psi \in[0, 1]Ψ∈[0,1] ,计算得到滤波阈值 F=Ψ∗MF = \Psi ∗ MF=Ψ∗M ;
- 利用 FFF 进行对 IoU map 过滤,保留大于 FFF 的位置:W×HW\times HW×H mask;
- 循环遍历所有 gt box 并保留 mask,得到 fine-grained imitation mask 掩码 III 。
Feature adaptation:a full conv adaptation layer.
Fine-grained feature imitation
通过最小化如下 loss 实现对 student 网络的训练:
l=∑c=1C(fadap(s)ijc−tijc)2
l=\sum^C_{c=1}(f_{adap}(s)_{ijc}-t_{ijc})^2
l=c=1∑C(fadap(s)ijc−tijc)2
其中,sss 为学生网络的 feature map,ttt 为对应的教师网络特征图。对于 W×HW\times HW×H 的特征图上的每个接近目标的 anchor 位置,学习教师检测模型的知识。连同所有估计 anchor 位置,蒸馏目标是最小化:
Limitation=12NP∑i=1W∑j=1H∑c=1CIij(fadap(s)ijc−tijc)2
L_{imitation}=\frac{1}{2N_P}\sum^W_{i=1}\sum^H_{j=1}\sum^C_{c=1}I_{ij}(f_{adap}(s)_{ijc}-t_{ijc})^2\\
Limitation=2NP1i=1∑Wj=1∑Hc=1∑CIij(fadap(s)ijc−tijc)2
其中 Np=∑i=1W∑j=1HIijN_p=\sum^W_{i=1}\sum^H_{j=1}I_{ij}Np=∑i=1W∑j=1HIij 是 MASK 中的正例数量,fadapf_{adap}fadap 为适配函数。
学生模型的总体训练损失为:
L=Lgt+λLimitation
L=L_{gt}+\lambda L_{imitation}
L=Lgt+λLimitation