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):
| 蒸馏区域 | mAP | mAR |
|---|---|---|
| fg+bg 混合(等权) | 38.9 | 55.1 |
| 仅 fg | 39.3 | 55.6 |
| 仅 bg | 39.2 | 55.8 |
| fg+bg 分开权重 | 39.4 | 56.1 |
→ 混合蒸馏比单独蒸馏前景或背景更差,验证了特征不平衡的负作用
观察(Figure 1):教师和学生的 attention 在前景差异大、背景差异小,通道间的 attention 差异也很大
贡献:
- 指出现有方法等权蒸馏像素和通道会导致 trivial improvement
- Focal Distillation:空间+通道注意力掩码,让学生聚焦"关键像素"和"关键通道",前景/背景分离
- Global Distillation:GcBlock 建模像素间关系,补偿全局信息
- 仅算特征图 loss,可应用于 one-stage/two-stage/anchor-free 各类检测器
2. Related Work
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 = 1if (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 学生
| 检测器 | 方法 | mAP | AP_S | AP_M | AP_L |
|---|---|---|---|---|---|
| RetinaNet | baseline | 37.4 | 20.6 | 40.7 | 49.7 |
| FGFI | 38.6 | 21.4 | 42.5 | 51.5 | |
| GID | 39.1 | 22.8 | 43.1 | 52.3 | |
| FGD | 39.6 | 22.9 | 43.7 | 53.6 | |
| FGD† | 39.7 | 22.0 | 43.7 | 53.6 | |
| Faster RCNN | baseline | 38.4 | 21.5 | 42.1 | 50.3 |
| FGD | 40.4 | 22.8 | 44.5 | 53.5 | |
| FGD† | 40.5 | 22.6 | 44.7 | 53.2 | |
| FCOS | baseline | 38.5 | 21.9 | 42.8 | 48.6 |
| FGD† | 42.7 | 27.2 | 46.5 | 55.5 |
† = inheriting strategy(用教师 neck+head 参数初始化学生)
4.3 更强教师(ResNeXt101 → ResNet50)— Table 3
| 检测器 | FKD | FGD | FGD† |
|---|---|---|---|
| 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 | 说明 |
|---|---|---|
| baseline | 37.4 | — |
| +L_focal | 40.2 | 大目标提升明显 |
| +L_global | 40.2 | 小/中目标提升明显 |
| +L_focal+L_global | 40.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 |
|---|---|
| baseline | 38.4 |
| Non-Local | 39.8 (+1.4) |
| GcBlock | 41.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 更少,但保留了全局上下文信息。对于蒸馏任务,轻量的关系建模反而更容易让学生模仿。
