Skip to content

Focal and Global Knowledge Distillation for Detectors

  • 来源: https://arxiv.org/abs/2111.11837
  • 本地PDF: ../raw/2021-11-23-FGD.pdf
  • 日期: 2021-11-23
  • 标签: knowledge distillation, object detection, feature distillation
  • 研究方向: 2D Object Detection → 模型小型化 → 知识蒸馏
  • 作者: Zhendong Yang, Zhe Li, Xiaohu Jiang, Yuan Gong, Zehuan Yuan, Danpei Zhao, Chun Yuan (Tsinghua / ByteDance / Beihang)
  • 会议: CVPR 2022
  • 代码: https://github.com/yzd-v/FGD

摘要

问题: 知识蒸馏在分类上很成功,但目标检测中教师和学生特征的分布极不均匀——前景和背景区域差异巨大。如果等权蒸馏,特征图的差异不平衡会损害蒸馏效果。

方案: Focal and Global Distillation (FGD)。

  • Focal Distillation: 将前景和背景分离,分别用空间注意力掩码和通道注意力掩码让学生聚焦教师的"关键像素"和"关键通道"
  • Global Distillation: 通过 GcBlock 建模像素间关系,将全局上下文关系从教师传递给学生

关键创新/贡献

  • 指出检测蒸馏中的特征不平衡问题并针对性解决
  • 仅需计算特征图 loss,可应用于各种检测器
  • 开源代码

验证: ResNet-50 基检测器在 COCO 上 AP 提升 +2.9 ~ +3.6


1. Introduction

背景 & 动机:

  • KD 在分类上成功,但检测更复杂,大多数 KD 方法在检测上失败
  • 特征图每个像素对最终检测贡献不同,前景/背景差异巨大
  • 等权蒸馏会使前景学习不充分

关键实验发现(Table 1)

蒸馏区域mAPmAR
fg+bg 混合(等权)38.955.1
仅 fg39.355.6
仅 bg39.255.8
fg+bg 分开权重39.456.1

→ 混合蒸馏比单独蒸馏前景或背景更差,验证了特征不平衡的负作用

观察(Figure 1):教师和学生的 attention 在前景差异大、背景差异小,通道间的 attention 差异也很大

贡献:

  1. 指出现有方法等权蒸馏像素和通道会导致 trivial improvement
  2. Focal Distillation:空间+通道注意力掩码,让学生聚焦"关键像素"和"关键通道",前景/背景分离
  3. Global Distillation:GcBlock 建模像素间关系,补偿全局信息
  4. 仅算特征图 loss,可应用于 one-stage/two-stage/anchor-free 各类检测器

Object Detection: one-stage / two-stage / anchor-free 检测器的输入都是特征图 → FGD 通用

Knowledge Distillation:

  • Hinton et al. (2015): 首创 KD,soft label 传递暗知识
  • FitNet: 中间特征也有语义信息
  • Chen et al.: 首次在检测上做 KD,对整个 neck 特征蒸馏
  • Li et al. (Mimick): 仅蒸馏 RPN 采样区域
  • FGFI: fine-grained mask 选蒸馏区域
  • TADF: Gaussian mask
  • Defeat: 分离前景/背景蒸馏

3. Method

总览(Figure 2):FGD = Focal Distillation + Global Distillation,loss 只算在 FPN 特征图上,通用各类检测器。

3.1 Focal Distillation

基线公式(等权蒸馏):

L_fea = 1/CHW · Σ|F^T - f(F^S)|²

Focal Distillation 引入四个掩码,逐层叠加:

1. M(二值掩码):用 GT box 分离前景/背景

  • M_i,j = 1 if (i,j) ∈ GT box, else 0

2. S(尺度掩码):归一化,解决大目标主导 loss 的问题

  • 前景像素:1/(Hr·Wr),框越大权重越小
  • 背景像素:1/Nbg
  • 若一个像素属于多个目标,取面积最小的框

3. Aˢ(空间注意力掩码)

  • GS(F) = 1/C · Σ|F_c|(对通道维度取绝对均值)
  • Aˢ(F) = H·W · softmax(GS(F)/T)
  • 让像素级的注意力集中在教师关注的关键空间位置

4. Aᶜ(通道注意力掩码)

  • GC(F) = 1/HW · Σ|F_i,j|(对空间维度取绝对均值)
  • Aᶜ(F) = C · softmax(GC(F)/T)
  • 让通道级的注意力集中在教师关注的关键通道

T 是 Hinton style 温度参数(实验固定 T=0.5)

最终特征 loss

L_fea = α·Σ_fg [M·S·Aˢ·Aᶜ·(F^T - f(F^S))²]
       + β·Σ_bg [(1-M)·S·Aˢ·Aᶜ·(F^T - f(F^S))²]

注意力 loss L_at:学生模仿教师的 Aˢ 和 Aᶜ 分布(L1 loss)

Focal loss: L_focal = L_fea + L_at

3.2 Global Distillation

Focal 蒸馏切断了前景/背景像素间的关系。Global Distillation 弥补全局上下文:

  • GcBlock 提取特征图各像素间的全局关系图 R(F)
  • 学生模仿教师的全局关系:L_global = λ · Σ|R(F^T) - R(F^S)|²
  • GcBlock 结构:
R(F) = F + Wv2(ReLU(LN(Wv1(Σ[softmax(Wk·F) · F]))))

3.3 总 loss

L = L_original + L_focal + L_global

蒸馏 loss 仅在特征图上计算(从检测器的 neck 提取),可应用到任意检测器。


4. Experiments

4.1 数据集

COCO 2017(train 120k / val 5k),80 类

4.2 主要结果(Table 2)— ResNet-101 教师 → ResNet-50 学生

检测器方法mAPAP_SAP_MAP_L
RetinaNetbaseline37.420.640.749.7
FGFI38.621.442.551.5
GID39.122.843.152.3
FGD39.622.943.753.6
FGD†39.722.043.753.6
Faster RCNNbaseline38.421.542.150.3
FGD40.422.844.553.5
FGD†40.522.644.753.2
FCOSbaseline38.521.942.848.6
FGD†42.727.246.555.5

† = inheriting strategy(用教师 neck+head 参数初始化学生)

4.3 更强教师(ResNeXt101 → ResNet50)— Table 3

检测器FKDFGDFGD†
RetinaNet+2.2+3.0+3.3
Faster RCNN+3.1+3.6
RepPoints+2.0+2.7+3.4
Mask RCNN (box)+2.5+2.9
Mask RCNN (mask)+2.0+2.4

4.4 消融实验

Focal vs Global(Table 4)

方法mAP说明
baseline37.4
+L_focal40.2大目标提升明显
+L_global40.2小/中目标提升明显
+L_focal+L_global40.4互补

注意力掩码消融(Table 5)

空间掩码通道掩码mAP
37.4
40.0 (+2.6)
39.7 (+2.3)
40.2 (+2.8)

前景/背景不同作用(Figure 6)

  • 背景蒸馏 → 减少 FP(误检)
  • 前景蒸馏 → 减少 FN(漏检)

GcBlock vs Non-Local(Table 6)

方法mAP
baseline38.4
Non-Local39.8 (+1.4)
GcBlock41.5 (+3.1)

T 参数不敏感(Table 7):T=0.5 最佳,最差仅降 0.4 mAP

超参数

  • 所有实验使用统一的超参数组(按检测器类型:two-stage / anchor-based one-stage / anchor-free one-stage)
  • 24 epoch, SGD (momentum 0.9, weight decay 0.0001)

4.5 可视化(Figure 5)

蒸馏后学生和教师的 spatial/channel attention mask 分布趋于一致,证明 FGD 帮助学生学到类似教师的特征。

5. Conclusion

总结:

  • 学生需要同时学习教师的关键部分(focal)和全局关系(global)
  • 基于特征图的蒸馏 loss,可应用到 two-stage / anchor-based / anchor-free 各类检测器
  • teacher's neck+head 参数初始化学生还能再提升

局限性: 如何更好地初始化 head 还是初步探索,留作未来工作。


个人评价

核心价值: 一篇干净优雅的检测蒸馏工作。核心洞察(混合蒸馏不如分离前景/背景)通过一个简单 Table 1 就说清楚了。四个掩码(M/S/Aˢ/Aᶜ)思路清晰,消融完整。

可借鉴点:

  • 前景/背景分离蒸馏 + 尺度归一化是检测 KD 的 baseline
  • GcBlock 虽老但比 Non-Local 轻量且效果更好
  • inherited head 初始化策略能白捡收益

局限性: 2022 年的工作,很多后续工作(如 PKD, CWD)已经进一步改进。

疑问解答 (Q&A)

Q1: FGD 和后来 CWD 的区别?

: CWD(Channel-wise Distillation, 2022)用概率分布视角做通道蒸馏,比 FGD 的 L2 loss 更精细。FGD 是 L2-based 蒸馏的标杆。

Q2: 为什么 GcBlock 比 Non-Local 好?

: GcBlock 简化了 Non-Local(去掉了成对相似度计算),参数量和 FLOPs 更少,但保留了全局上下文信息。对于蒸馏任务,轻量的关系建模反而更容易让学生模仿。