目录

  • 摘要
  • Method
    • Rank mimicking
    • Prediction-guided Feature Imitation
    • 总损失
  • 实验
  • 总结

论文全名有点长,题目放不下了:
Knowledge Distillation for Object Detection via Rank Mimicking and Prediction-guided Feature Imitation
已经被AAAI2022接收。

摘要

出发点:student性能差的两个原因:

1.候选框排序差别很大,如下图所示。对于简单的目标(图1a),两个模型的最终留下的bbox是由同一个anchor(对于anchor-free方法而言是anchor points)回归的。但是对于难一点的框却不是(图1b),这说明对于难例样本,两者的anchor置信度排名不一样,作者将这个排序信息用于知识蒸馏中

图1

2.student和teacher的特征和预测之间都存在着很大的gap,所谓的特征差异性(Pdif = Ptea - Pstu)和预测差异性(Fdif = Ftea - Fstu),作者是直接通过特征图相减得到的。问题的关键是:这个gap的位置还不一样(图中inconsistency处),这说明了虽然这一部分区域特征差异性很大,但是预测差异性很小,此处的特征差异性根本不用蒸馏,,这个发现确实让人眼前一亮。因此,作者提出了预测指导特征模仿的思路,用预测差异性来指导特征模仿学习。

基于上述两个问题,作者提出了Rank Mimicking(RM)和Prediction-guided Feature Imitation (PFI)两个点来对一阶段的检测器进行蒸馏,前者将teacher对候选框的排名作为一种待蒸馏的知识,后者用预测结果差异性来计算特征差异性,进而student模型的提高检测结果。

Method

首先简单介绍了一些比较通用的做法,包括分类结果蒸馏和特征蒸馏。分类那提了一下交叉熵损失,然后讲了一下Hinton提出的用teacher模型的类别结果作为软标签,以KL散度作为损失的过程。

Rank mimicking

基于出发点1,作者提出了Rank mimicking。

作者认为softlabel+KL散度的方式在检测中效果不好的原因主要有两个:一是许多检测方法在计算分类损失时都将80类分类问题(CEloss)转化为80个二分类问题(BCEloss),即:在计算损失时采用的BCEloss,而非CEloss,用BCEloss就抛弃了不同类别之间的结构关系(没有softmax,不同类别的概率和不为1)。二是不同许多检测器将类别分数作为NMS期间box排序的一部分,因此软标签可能会导致类别置信度不好,从而导致NMS结果不好,从而降低检测性能。

作者的做法是,对于一个目标j,假设有N个anchor负责对该个物体进行预测(该N个anchor称为该个物体的positive anchor),那么对于student和teacher网络,均将这N个anchor的预测的类别分数取出来,然后分别对student模型和teacher模型的N个正anchor类别分数进行softmax,即左边公式。这样就将获得N个正anchor的预测分布。再利用KL散度让teacher和student的N个正anchor的分数分布一致,即右边这个公式。其中M表示当前图像中的待检测目标格式。


这样做的意义是,teacher模型的N个正anchor中,某个分数高,那么我要求student模型的该个anchor的分数也高,低的话同理。两个模型对于所有positive anchor的预测类别分数具有同样的分布。与hinton的softlabel方法相比,这种方法将所有正anchor作为一个整体,用KL散度去蒸馏他的分布情况,而softlabel方法忽略了不同anchor的分数之间的内在联系。

除了学习分类分数的分布外,还可以要求学习回归的分布情况,操作应该一样的,但是回归一般会回归四个量,分类分布+四个回归分布,一共五个,损失有点多…但是作者实验表明点会提高

值得注意的是,上述是对分类结果进行蒸馏,而且也用到了标签信息和标签分配情况,来寻找positive anchor。

Prediction-guided Feature Imitation

预测差异大的区域承载着学生落后于老师的原因,因为我们最后只要预测结果,不会去管中间特征层。但是从上面的右图可以看到,预测差异大的位置特征差异可能会很小,而预测差异小的位置特征差异可能会很大,如果直接进行无差别的特征蒸馏,那显然那些特征差异比较大、预测差异比较小的区域会在反向传播中占据主导地位,这导致特征蒸馏效果差,甚至会伤害student的训练。

其实看到文章出发点和这个模块的名字就想到这里会怎么设计了。即:用teacher和student模型所有的预测类别分数差的l2距离来表示两个模型的预测差异性,即左边式子。其中c代表类别数,得到的P是一个H×W的mask(PFI mask),某个点的值越大,则代表S和T的预测差异性越大。这个思想与FRS、GID都有点像,GID也是用分数差来代表两个模型的预测差异性,而FRS是用teacher的分数作为特征丰富度mask进行特征蒸馏学习。然后再利用该mask作为每个像素点的权重来指导FPN处的特征蒸馏,即后面两个式子:


总损失

包含上述两个部分和gt loss。α=4,β=1.5。

实验

作者分别做了以R50-R18作为teacher=student对,在RetinaNet、FCOS、ATSS、GFL上的试验,Rank mimicking大部分能提高不到一个点,Prediction-guided Feature Imitation能提高2个点出头,两个损失一起能提高更多一点。还有以RetinaNet作为检测器的R101-R50、mbv2-mbv2half实验。

用作者提出的PFI mask也比不用mask、用gtmask、只用positive samples和只用negative samples的效果好。其中点数是positive mask < negative mask < gt mask < while map < PFI。

与Fitnet、FGFI、GID、DeFeat相比,该方法效果也更好。

总结

作者的发现属实让人眼前一亮,即预测差异性较小的地方,其特征差异性可能很大,反之亦然。其次,student和teacher的anchor的置信度排名也确实会影响到NMS。这是本文的两个出发点,没啥毛病,尤其是第一个出发点,如果论文说的这种情况普遍存在的话,那之前的很多特征蒸馏算法是不太合理的,但是从本论文的点数来看应该不至于。

针对第一点,作者对以预测差异性作为mask,利用该mask来进行特征蒸馏学习。针对第二点,作者将每个目标的N个正anchor的预测分数通过softmax转化为一个概率分布问题,然后利用KL散度来让两个模型的分布相同。

我感觉第二个出发点提点少的一个原因是,可能对于student模型而言,可能最终的预测结果是由负anchor提供的,如图1左边的猫的边界框所示,两个模型的预测结果中心点隔这么远,可能student模型的bbox就是负anchor回归而来的,此时对正anchor的分数分布情况进行蒸馏是对该个目标的检测没有帮助的。由此衍生的一个问题是,一些负anchor的分布情况是否也有蒸馏价值?其次,如果一个目标分配得到的anchor很少,那也这个KL散度能传授的知识也很有限。

[2022AAAI]Knowledge Distillation for Object Detection via Rank Mimicking and ... 论文笔记相关推荐

  1. [目标检测知识蒸馏3] [AAAI22] Knowledge Distillation for Object Detection via Rank Mimicking and Prediction

    [AAAI22] Knowledge Distillation for Object Detection via Rank Mimicking and Prediction-guided Featur ...

  2. 《Imbalance Problems in Object Detection:A Review》论文笔记

    代码地址:ObjectDetectionImbalance 1. 概述 导读:这篇文章系统性研究了目标检测任务中的不平衡问题,并且文章针对不同的不平衡问题做了深入研究(文章中将其分为了4个大类,8个小 ...

  3. 《Single-Shot Object Detection with Enriched Semantics》论文笔记

    1. 概述 导读:这篇文章提出了新的一阶段检测算法Detection with Enriched Semantics(EDS),该算法在检测网络中通过semantic Segmentation bra ...

  4. R-CNN 《Rich Feature Hierachies for Accurate Object Detection and Semantic Segmentation》论文笔记

    本学弱喜欢在本子上记笔记,但字迹又丑. 望看不懂我的字的大佬不要喷我,看得懂的大佬批评指正.

  5. ICCV 2017 《Online Video Object Detection using Association LSTM》论文笔记

    本学弱喜欢在本子上记笔记,但字迹又丑. 望看不懂我的字的大佬不要喷我,看得懂的大佬批评指正.

  6. End-to-End Object Detection with Fully Convolutional Network 论文笔记

    background 任务:目标检测任务中,去除不可训练的NMS,实现端到端的训练 关键词:POTO,3DMF Introduction 传统的目标检测会用到不可训练的NMS,严重阻碍了端到端的训练. ...

  7. 【CVPR 2021】通用的实例级蒸馏:General Instance Distillation for Object Detection

    [CVPR 2021]通用的实例级蒸馏:General Instance Distillation for Object Detection 论文地址: 主要问题: 主要思路: 主要贡献: 具体实现: ...

  8. End-to-End Object Detection with Transformers,DETR论文学习

    End-to-End Object Detection with Transformers,DETR论文学习 1. 引言 2. 本论文发表前的目标检测策略(非端到端的目标检测策略) 2.1 目标检测的 ...

  9. Open-Vocabulary Object Detection Using Captions(2021 CVPR)----论文解读

    Open-Vocabulary Object Detection Using Captions[2021CVPR]----论文解读 paper code 1. Abstract Open-Vocabu ...

最新文章

  1. 深入理解 wpa_supplicant(四)
  2. [BZOJ3631][JLOI2014]松鼠的新家
  3. arcgis python 保存当前窗口图形为jpg
  4. 硕士本科论文通过matlab出仿真图
  5. opencv4.4.0函数手册_Cobalt strike3.0使用手册
  6. 汇编指令的学习4——ldm/stm指令、栈的处理
  7. file对象怎样获取文件的长度?_使用FSO对象获取整个文件夹的信息
  8. laravel5.5 尝试使用laravel安装器安装(失败) 最后还是用的composer。。。
  9. Maven-打包的时候丢失非.java的文件
  10. Java进阶篇设计模式之一 ----- 单例模式
  11. 记一次消息总线的打造 - McKay - 博客园
  12. 美国网络安全体系架构揭秘
  13. oracle批量执行_批量随机键值查询测试
  14. 惠普136nw打印机清零_HP惠普打印机清零大全
  15. jspstudy启动mysql失败_JspStudy软件快速本地部署JDK+tomcat+Apache+mysql环境
  16. CFPS数据处理:少儿代答库与成人库匹配
  17. html文字闪烁特效代码,HTML最简单的文字闪烁代码
  18. 深入理解计算机系统----第四章处理器体系结构
  19. sqlite3 二进制读取
  20. json编辑器插件 vue_基于vue平台的json schema 编辑器

热门文章

  1. modelsim仿真一直卡在loading的解决办法
  2. HyperWorks----Simlab批处理软件通过Desktop发布后在用户端打开软件报错
  3. Android SQLite之乐学成语项目数据库存储
  4. 【职业规划】了解自己~
  5. 什么是代理服务器及代理服务器的工作原理?
  6. OTA升级详解(二)
  7. php,js常用的一些总结
  8. Python中线程间通信
  9. LoRa开发常见问题
  10. C# socket通信随记回顾