[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 ∗ H W ∗ H W∗H ,网络中使用的 anchor 数量为 K K K ,对于 fine-Gained 区域的提取步骤可以归纳如下(上图中的右边所示):
- 对于给定的特征图,按照设置好的 anchor 信息,生成 W ∗ H ∗ K W ∗ H ∗ K W∗H∗K 个框,将这些框与 gt 计算 IoU 值 m m m ;
- 选择最大的 IoU 值 M = max ( m ) M=\text{max}(m) M=max(m)。引入参数阈值因子 Ψ ∈ [ 0 , 1 ] \Psi \in[0, 1] Ψ∈[0,1] ,计算得到滤波阈值 F = Ψ ∗ M F = \Psi ∗ M F=Ψ∗M ;
- 利用 F F F 进行对 IoU map 过滤,保留大于 F F F 的位置: W × H W\times H W×H mask;
- 循环遍历所有 gt box 并保留 mask,得到 fine-grained imitation mask 掩码 I I I 。
Feature adaptation:a full conv adaptation layer.
Fine-grained feature imitation
通过最小化如下 loss 实现对 student 网络的训练:
l
=
∑
c
=
1
C
(
f
a
d
a
p
(
s
)
i
j
c
−
t
i
j
c
)
2
l=\sum^C_{c=1}(f_{adap}(s)_{ijc}-t_{ijc})^2
l=c=1∑C(fadap(s)ijc−tijc)2
其中,
s
s
s 为学生网络的 feature map,
t
t
t 为对应的教师网络特征图。对于
W
×
H
W\times H
W×H 的特征图上的每个接近目标的 anchor 位置,学习教师检测模型的知识。连同所有估计 anchor 位置,蒸馏目标是最小化:
L
i
m
i
t
a
t
i
o
n
=
1
2
N
P
∑
i
=
1
W
∑
j
=
1
H
∑
c
=
1
C
I
i
j
(
f
a
d
a
p
(
s
)
i
j
c
−
t
i
j
c
)
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
其中
N
p
=
∑
i
=
1
W
∑
j
=
1
H
I
i
j
N_p=\sum^W_{i=1}\sum^H_{j=1}I_{ij}
Np=∑i=1W∑j=1HIij 是 MASK 中的正例数量,
f
a
d
a
p
f_{adap}
fadap 为适配函数。
学生模型的总体训练损失为:
L
=
L
g
t
+
λ
L
i
m
i
t
a
t
i
o
n
L=L_{gt}+\lambda L_{imitation}
L=Lgt+λLimitation