[目标检测知识蒸馏3] [AAAI22] Knowledge Distillation for Object Detection via Rank Mimicking and Prediction
[AAAI22] Knowledge Distillation for Object Detection via Rank Mimicking and Prediction-guided Feature Imitation
Motivation
导致 Student 网络性能差的两个原因:
- 候选框 bbox 差别很大:如图所示,对于简单的目标 (图a),两个模型的最终留下的 bbox 是由同一个 anchor 回归的 (对于 anchor-free 方法是 anchor points)。但是,对于难一点的 bbox (图b) ,却是由不同的 anchor 回归。对于难例样本,两者的 anchor 置信度不同。
- Student 和 teacher 的特征和预测之间都存在着较大 gap。特征差异性 $(F_{dif} = F_{tea} - F_{stu}) $和预测差异性 (Pdif=Ptea−Pstu)(P_{dif} = P_{tea} - P_{stu})(Pdif=Ptea−Pstu),是直接通过特征图相减得到的。关键是:二者 gap 位置是不一样的 (图中 inconsistency 处)。这表明这部分区域特征差异性很大,预测差异性却很小。故不需要将对应的特征差异性用来蒸馏。预测指导特征模仿的思路:用预测差异性来指导特征模仿学习。
Method
基于上述两个问题,作者提出了 Rank Mimicking (RM) 和 Prediction-guided Feature Imitation (PFI) 对一阶段的检测器进行蒸馏。前者将 teacher 对候选框的排序作为一种待蒸馏的知识;后者用预测差异性来指导特征差异性,可以提高 student 模型的检测结果。
Rank Mimicking
- 对于一个目标 jjj,假设有 NNN 个 anchor 负责对该个物体进行预测 (positive anchor)。对 student 和 teacher 网络,计算得到这 NNN 个 anchor 的预测的类别分数。
- 分别对 student 网络和 teacher 网络的 positive anchor 类别分数进行 softmax,得到其预测分布:
sij′=exp(sij)∑m=1Nexp(smj)tij′=exp(tij)∑m=1Nexp(tmj)s_i^{j^\prime}=\frac{\text{exp}(s_i^j)}{\sum^N_{m=1}\text{exp}(s_m^j)} \ \ \ \ \ \ \ \ t_i^{j^\prime}=\frac{\text{exp}(t_i^j)}{\sum^N_{m=1}\text{exp}(t_m^j)} sij′=∑m=1Nexp(smj)exp(sij) tij′=∑m=1Nexp(tmj)exp(tij) - 最小化 KL 散度让 teacher 和 student 网络 positive anchor 分数的分布保持一致:
LRM=−1M∑j=1M∑i=1Ntij′log(sij′tij′)L_{RM} = -\frac{1}{M}\sum^M_{j=1}\sum^N_{i=1}t_i^{j^\prime}log(\frac{s_i^{j^\prime}}{t_i^{j^\prime}}) LRM=−M1j=1∑Mi=1∑Ntij′log(tij′sij′)
其中,M表示当前图像中的待检测目标格式。
- Teacher 模型与 student 模型对于所有 positive anchor 的预测类别分数具有同样的分布。
- 将所有 positive anchor 作为一个整体,利用KL散度去蒸馏其分布情况。
Prediction-guided Feature Imitation
现象:预测差异大的位置特征差异可能会很小,而预测差异小的位置特征差异可能会很大。
- 如果直接进行无差别的特征蒸馏,则特征差异较大、预测差异较小的区域会在反向传播中占据主导地位。这会导致特征蒸馏效果变差。
- 采用 teacher 和 student 网络预测类别分数差的 ℓ2\ell_2ℓ2 距离,来表示其预测的差异性。其中 CCC 代表类别数,得到的 PPP 是一个 H×WH\times WH×W 的 mask (PFI mask)。某个点的值越大,则代表 S 和 T 的预测差异性越大。
Pdif=1C∑c=1C∥Pstuc−Pteac∥22Fdif=1Q∑q=1Q∥Fstuq−Fteaq∥22LPFI=1L∑l=1L1Hl∗Wl∥Pdif⊙Fdif∥22Ltotal=Ltask+αLRM+βLPFIP_{dif}=\frac{1}{C}\sum^C_{c=1}\|P_{stu}^c-P^c_{tea}\|^2_2\\ F_{dif}=\frac{1}{Q}\sum^Q_{q=1}\|F_{stu}^q-F^q_{tea}\|^2_2\\ L_{PFI}=\frac{1}{L}\sum^L_{l=1}\frac{1}{H_l*W_l}\|P_{dif}\odot F_{dif}\|^2_2\\ \\ L_{total} = L_{task}+\alpha L_{RM}+\beta L_{PFI} Pdif=C1c=1∑C∥Pstuc−Pteac∥22Fdif=Q1q=1∑Q∥Fstuq−Fteaq∥22LPFI=L1l=1∑LHl∗Wl1∥Pdif⊙Fdif∥22Ltotal=Ltask+αLRM+βLPFI
Experiment
[目标检测知识蒸馏3] [AAAI22] Knowledge Distillation for Object Detection via Rank Mimicking and Prediction相关推荐
- [2022AAAI]Knowledge Distillation for Object Detection via Rank Mimicking and ... 论文笔记
目录 摘要 Method Rank mimicking Prediction-guided Feature Imitation 总损失 实验 总结 论文全名有点长,题目放不下了: Knowledge ...
- 直播预告 | AAAI 2022论文解读:基于锚框排序的目标检测知识蒸馏
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- 【CVPR 2021】基于解耦特征的目标检测知识蒸馏:Distilling Object Detectors via Decoupled Features
[CVPR 2021]基于解耦特征的目标检测知识蒸馏:Distilling Object Detectors via Decoupled Features 论文地址: 主要问题: 主要思路: 具体实现 ...
- 【AAAI 2021】自监督目标检测知识蒸馏:Distilling Localization for Self-Supervised Representation Learning
[AAAI 2021]自监督目标检测知识蒸馏:Distilling Localization for Self-Supervised Representation Learning 论文地址: 代码地 ...
- 【CVPR 2021】通用的实例级蒸馏:General Instance Distillation for Object Detection
[CVPR 2021]通用的实例级蒸馏:General Instance Distillation for Object Detection 论文地址: 主要问题: 主要思路: 主要贡献: 具体实现: ...
- 分析显著性目标检测--Global Context-Aware Progressive Aggregation Network for Salient Object Detection
分析显著性目标检测--Global Context-Aware Progressive Aggregation Network for Salient Object Detection 引入 方法 网 ...
- 基于dota的目标检测(旋转框)论文阅读Oriented Object Detection in Aerial Images with Box Boundary-Aware Vectors
基于dota的目标检测(旋转框)|论文阅读Oriented Object Detection in Aerial Images with Box Boundary-Aware Vectors 文章目录 ...
- CVPR2022知识蒸馏用于目标检测:Focal and Global Knowledge Distillation for Detectors
论文下载:https://arxiv.org/abs/2111.11837 源码下载:https://github.com/yzd-v/FGD Abstract 知识蒸馏已成功应用于图像分类.然而目标 ...
- 一文搞懂【知识蒸馏】【Knowledge Distillation】算法原理
知识蒸馏算法原理精讲 文章目录 知识蒸馏算法原理精讲 1. 什么是知识蒸馏? 2. 轻量化网络的方式有哪些? 3. 为什么要进行知识蒸馏? 3.1 提升模型精度 3.2 降低模型时延,压缩网络参数 3 ...
最新文章
- c 初始化char**_CC++|指针详述及实例分析
- 瘫痪17年,利用双向脑机接口来诱发触觉,控制机械手
- 白钢条用什么可以切割_错怪李佳琦了!原来用小苏打刷牙,1个月真的可以白4度,太心动了...
- java tessdata训练_Tesseract For Java为可执行jar设置Tessdata_Prefix
- 删除sql下注册服务器
- Redis 6.0 源码阅读笔记(7) -- ZSet 数据类型源码分析
- 我是如何在5 天内,完成 60 个类的核心模块的重构
- iOS使用得图SDK开发VR播放器
- java 米与厘米 转换_米转码换算(米与码的换算关系)
- 易到要在网约车市场突围并不容易
- 超级鸡马虚拟服务器,超级鸡马按键操作图文教程_超级鸡马怎么玩_牛游戏网
- SpringBoot搭建微信公众号后台(零):服务搭建与接口验证
- python中的序列类型数据结构元素的切片操作_PythonI/O进阶学习笔记_4.自定义序列类(序列基类继承关系/可切片对象/推导式)...
- weekofyear跨年问题
- 朴素贝叶斯算法(python 实现)
- 【优化】py2下hbase的字符串编码问题(\\xe7\\xbc\\x96)
- 真香!java设置全局变量
- 谷歌和有道翻译API使用
- 【ASM】史上最通俗易懂的ASM教程 ASM 插件
- certutil 校验文件md5,sha1,sha256