论文标题:General Instance Distillation for Object Detection

收录会议:CVPR 2021

论文单位:旷视研究院

论文链接:https://arxiv.org/abs/2103.02340

作者:Xing Dai, Zeren Jiang, Zhao Wu, Yiping Bao, Zhicheng Wang, Si Liu, Erjin Zhou

解读人:张佳程

2019年在北京邮电大学取得学士学位,目前是北京邮电大学人工智能学院研二的学生。研究方向包括目标检测、模型压缩等。

本文提出一种新的基于判别性实例(不区分正、负样本)的蒸馏方法——general instance distillation (GID),它所包含的general instance selection module (GISM)可以综合利用基于特征的、基于关系的、基于响应的知识。本方法泛化性好,在多种检测框架上的实验表明学生模型的AP可以显著提高,甚至超越教师模型。

一、简介

复杂度的检测模型虽然可以取得SOTA的精度,但它们往往难以直接落地应用。模型压缩方法帮助模型在效率和精度之间进行折中。知识蒸馏是模型压缩的一种有效手段,它的核心思想是迫使轻量级的学生模型去学习教师模型提取到的知识,从而提高学生模型的性能。已有的知识蒸馏方法可以分别为三大类:

  • 基于特征的(feature-based,例如VID、NST、FitNets、fine-grained feature imitation)

  • 基于关系的(relation-based,例如IRG、Relational KD、CRD、similarity-preserving knowledge distillation)

  • 基于响应的(response-based,例如Hinton的知识蒸馏开山之作

其中,大多数蒸馏方法都是针对分类任务设计的,它们难以直接应用到检测任务中,原因在于检测任务中的正、负样本之间严重的不均衡性。一些面向目标检测设计的蒸馏算法面临着需要精心设计选取的正负样本比例、严重依赖GT、忽略了实例之间的潜在关系、在不同的目标检测框架中的泛化性较差等困境。本文提出的蒸馏方法(GID)具有以下特点:

  • 对实例之间的关联性知识进行建模。这是首次将关系知识引入用于检测任务的知识蒸馏中,并将其与基于响应和基于特征的知识相结合,使学生模型超越教师模型。

  • 避免手工设置正负样本的比例,避免只选择GT附近的区域进行蒸馏。虽然GT相关的区域带来的信息量最高,但是极度简单/困难的样本难以给学生模型带来增益,有时一些关键的背景信息可以提高学生模型的泛化性。另外,自动选择用于蒸馏的判别性实例(即general instances (GIs))使得知识传递更加有效,GID的实例选择不依赖GT标签。

  • 泛化性强。GIs是根据学生和教师模型的输出来计算的,不依赖特定检测器的某些模块或特征。GID在一阶段、二阶段和anchor-free的检测模型中都取得了SOTA的效果。

二、方法

目标区域附近的特征以及来自背景的判别性实例对于模型的学习都是有意义的。在检测模型中,预测结果指示了有意义的注意区域,在教师模型和学生模型之间这些区域的差异与它们的性能差距密切相关。作者基于此设计了GISM,它利用老师和学生的预测结果来挑选关键实例,如图2所示。

作者提出两个指标——GI score 和 GI box,来量化每个实例的差异并挑选判别性的实例,它们都是在训练阶段动态计算的。GI score是通过计算教师模型预测分数和学生模型预测分数的L1距离得到的,然后挑选更高得分的box作为GI box。每个预测实例r的score和box定义如下:

其中,  和  代表 GI score和GI box,  和  是教师模型和学生模型的预测分数,  和  是教师模型和学生模型的预测框,  是类别数。对于一阶检测器而言,  是最终预测输出得分;对于二阶检测器而言,  是RPN输出的前景得分。作者设置完全相同的教师和学生模型检测头,因此这两个网络输出相等数量的预测框,并且位置一一对应。高GI scores的实例很可能高度重叠,从而导致蒸馏损失重复计算,所以使用IoU阈值为0.3的NMS来消除冗余框。此外在每幅图像中还执行top-K的操作(K默认设置为10,这些都是标准的后处理操作)。

GID同时学习多种蒸馏知识来更好、更多地利用教师模型给出的信息,如图3所示。

基于特征(feature-based)的蒸馏。FPN是针对多尺度检测的有效设计,并被广泛应用,作者直接选择FPN来进行蒸馏。由于在检测任务中目标大小变化范围广,直接进行像素级的蒸馏将使模型更倾向于学习大目标。因此,首先根据GI box的尺度匹配FPN layer,然后采用ROI Align提取相同分辨率的GI特征,对学生模型提取到的GI特征进行一个自适应的线性映射,再计算蒸馏损失。基于特征的蒸馏损失  采用L2 Loss。

基于关系(relation-based)的蒸馏。在同一场景出现的实例具有相关性,利用这些信息可以帮助学生模型更快收敛。为了挖掘一批GIs中有价值的关系知识,作者使用欧式距离来度量实例的相关性,使用L1距离来传递知识。具体来说,首先计算教师模型和学生模型中实例对之间的欧式距离,并归一化来得到实例间的相关性,而后计算教师模型和学生模型对应实例对之间的smooth L1 loss,作为基于关系的蒸馏损失  。

基于响应(response-based)的蒸馏。对整个检测头的输出进行蒸馏不利于学生模型的性能,作者推测这可能是由于检测任务中正负样本的不平衡以及负样本过多带来的噪声造成的。因此,作者设计了用于分类和回归分支的、基于GIs的distillation masks:  。F是模型各异的标签分配策略。在(anchor-based)RetinaNet中,通过anchors和GIs的IoU来决定是否mask;在(anchor-free)FCOS中,GIs外部的所有输出都被mask。没有被mask的样本参与计算模型的分类损失和回归损失(此时将教师模型的输出作为GT,迫使学生模型学习教师模型的输出分布),两者加权和作为基于响应的蒸馏损失  。

至此,学生模型的训练损失可以表述为:(默认设置: α , α , α ,这些超参的设置依据是尽量使得各项的初始的loss在同一量级)

ααα

三、实验结果

主要实验结果与泛化性分析:

在VOC和COCO数据集上进行实验,COCO训练迭代180k次(24 epochs),VOC训练迭代10k次(17.4 epochs)。作者在三个SOTA的流行检测框架上做了实验,分别是anchor-based一阶检测器RetinaNet、anchor-free一阶检测器FCOS和二阶检测器Faster R-CNN。

ResNet-50、ResNet-101分别被选作学生模型和教师模型的backbone。表格1中给出了与其他一些SOTA的蒸馏技术在VOC数据集上的对比实验结果。可以看到GID的效果更好,学生模型的性能在有些场景下甚至超过了教师模型。表格2中给出了在COCO数据集上的对比实验结果。可以看到GID明显提升了学生模型的性能,所有学生模型的性能都超越了教师模型。这些实验结果说明了GID在不同类型的检测框架中具有很好的泛化性。

之前有工作指出:蒸馏的信息与类别数是线性相关的,因此对于类数少的模型,蒸馏效率会降低。在COCO数据集中只训练一个类别(person)时,GID可以给学生模型带来2.4 AP / 1.9 AP50的性能增益。学生模型仍然超过了教师模式。这说明GID可以自适应地选择富含信息区域来提取和利用各种知识。

进一步来验证GID的泛化性,作者采用异族的backbone做实验。具体来讲,MobileNet-v2、ResNet-101分别被选作学生模型和教师模型的backbone。在RetinaNet上的实验结果表明,GID可以给学生模型带来2.5 AP / 3.0 AP50的性能增益。

可视化分析与消融实验:

此外,作者做了一些关于通用实例(GI)的可视化分析,如图4所示,图中(a)(e)中的实例由5000次迭代的模型计算得到,而(c)(g)中的实例由90000次迭代的模型计算得到。作者定义了一个新的指标——interp over proposals (IoP),定义为:  ,它帮助我们更好的区分GIs。

作者将通用实例归纳为了三类:

  • 关键特征块(Key characteristic patches):图中的黄色框(semi-positive GIs,  ),一些运动员的关键特征被选择,如鞋子和衣服,它们是特征蒸馏的关键区域。

  • 额外实例(Extra instances):图中的青色框(negative GIs,  ),一些语义信息比较模糊的背景区域,例如图中所示的烤箱状机器和网球拍的阴影。这一现象是由于学生模型和教师模型之间的分数分布不一致导致的,GID有助于降低学生模型预测的假阳率(FP)。

  • 提供更多信息的正实例(More informative positive instances,  ):图中的红色框(positive GIs),GT的一个子集。与在线困难样本挖掘(OHEM)不同,在GID中极难的实例被丢弃,如图4中的小酒杯,它们在学生和教师模型中都很难被检测到。在训练的后期,许多对于教师和学生模型来说都简单的GT实例会被忽略,如图4(c)(g)所示的运动员和微波炉,而只有网球等一些很难从老师那里学到的positive instances会被提炼。

随时间变化的蒸馏趋势:随着训练的进行,蒸馏的焦点从简单的实例转移到具有挑战的实例,如图4中的heat maps所示。这一场景表明,在训练过程中GISM会自适应地选择信息量最大、最具鉴别能力的区域进行提取。作者做了消融实验来进一步分析每种类型GIs的贡献,如表格5所示。提取每种类型的GIs都可以给学生模型带来性能增益,而将这三种类型结合起来可以获得最佳性能。

注意,仅使用negative GIs仍然有利于学生模型,这证明了GID可以有效地从背景区域中选择有用的信息、过滤有害的知识。此外,即使GISM选择的positive GIs只是GT实例的一个子集,仅使用它的结果也优于使用GT实例的结果,这表明一些极端困难或简单的GT实例对学生模型的学习无益。另外,利用GT实例进行蒸馏仍然是有效的,在训练的早期阶段,GT区域仍然是最具信息量和辨别力的区域。然而,充分利用背景中隐藏的信息会使学生模型获得更好的性能。

通过消融实验来了解每种类型的蒸馏知识对最终性能的影响。结果表明每个蒸馏组分都提高了性能,特别是基于特征和基于响应的知识(+ 1.7 AP)。三种蒸馏知识齐上阵得到了最佳结果(+ 2.9 AP),虽然这三类知识包含一些重叠的部分,但也存在着独特部分。

最后,作者还探索了GISM超参数K的影响,如表格7所示。随着K值的增加,学生模型获得了显著的性能增益,当K值在10到100之间时,模型性能趋于稳定和最优,当K值进一步增大时,性能开始下降,这主要是由于信息量大、区分性强的GIs被琐碎无用的GIs所淹没。

四、总结与思考

本文从一个全新的角度来区分和选择用于蒸馏的实例,并综合利用三种不同的蒸馏知识,显著提高了学生模型的性能,甚至使得学生模型超越了教师模型,十分有意义。

知识蒸馏的概念最早是2015年Hinton提出的,简单说就是迫使学生模型去学习教师模型的输出分布(soft-target)。之后这一领域便引发了广泛的关注,一些主要的改进思路包括但不限于:将教师模型中间层的局部或全局知识迁移到学生模型中、敦促学生模型学习输入到输出的特征流(层与层之间的关系)、借鉴生成对抗的方式来提升学生模型的决策边界鉴别能力、雇佣多个教师网络来指导学生网络(输出加权的方式)等等。可以看到蒸馏效果越来越好的代价是方法越来越复杂。本文抓住了目标检测蒸馏算法中的痛点——蒸馏实例的选择方式,提出了新颖有效的解决方法,在保证方法简洁性的同时大幅提高了学生模型的性能,非常有价值。

知识蒸馏时需要并行两个模型,这是十分消耗显存的,之前有研究提及一些蒸馏算法对batch size是敏感的,所以如何在有限显存资源下高效进行模型蒸馏也是一个可以研究的点。另外,当学生模型和教师模型性能差异很大时(例如MobileNet based RetinaNet和ResNet-101 based RetinaNet),虽然知识蒸馏可以提高学生模型的性能,但两者之间的差距仍旧很大,这直接影响了知识蒸馏算法的大规模应用,也说明这一方向还存在着非常大的优化空间。

联系我们

欢迎同学们一起交流CVPR 2021论文,添加“旷视研究院小姐姐”微信,回复【CVPR】即可

CVPR 2021 论文解读Vol.10 | 通用实例蒸馏GID:青出于蓝而胜于蓝相关推荐

  1. CVPR 2021 论文解读Vol.9 | 多样化分支模块:将卷积构建为类似Inception的单元

    收录会议:CVPR2021 论文单位:旷视研究院 论文链接:https://arxiv.org/abs/2103.13425 一作:丁霄汉 本科毕业于南京大学,直博就读清华大学软件学院.目前在旷视Ba ...

  2. CVPR 2021 论文解读Vol.6 I 动态区域感知卷积,进一步提升分类/检测/分割性能

    论文单位:旷视研究院 论文链接:https://arxiv.org/abs/2003.12243 作者:Jin Chen, Xijun Wang, Zichao Guo, Xiangyu Zhang, ...

  3. CVPR 2021论文解读 | 长尾分布问题解决新思路

    收录会议:CVPR 2021 论文单位:旷视研究院 论文链接:https://arxiv.org/abs/2103.16370 论文代码:https://github.com/Megvii-BaseD ...

  4. 直播 | CVPR 2021论文解读:引入因果结构的解耦表征学习

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  5. CVPR 2021 论文解读I 动态区域感知卷积,进一步提升分类/检测/分割性能|Dynamic Region-Aware Convolution

    Dynamic Region-Aware Convolution 摘要 介绍 方法 实验结果 总结 论文单位:旷视研究院 论文链接:https://arxiv.org/abs/2003.12243 作 ...

  6. 旷视 CVPR 2021 论文解读直播来喽!

    1 ???? 现在,在「知乎」也能找到我们了 进入知乎首页搜索「PaperWeekly」 点击「关注」订阅我们的专栏吧 · ???? 点击阅读原文立刻报名

  7. 旷视CVPR 2021 论文解读直播来喽!

    1

  8. 【论文解读】CVPR 2021 | 旷视提出GID:用于目标检测的通用实例蒸馏

    本文提出一种用于目标检测的知识蒸馏新方法:General Instance Distillation,GID,可应用于各种检测框架中,使得学生模型显著提高AP的性能,甚至优于Teacher模型! 作者 ...

  9. 【重磅】CSIG-广东省CVPR 2021论文预交流在线学术报告会来啦! (5月8日)

    来源丨 CSIG-文档图像分析与识别专委会 编辑丨极市平台 [导读]:广东省CVPR 2021论文预交流学术报告会将于2021年5月8日在线举办,本次会议邀请了13位广东省在此领域部分优秀团队的青年学 ...

  10. CVPR 2021 论文大盘点-人脸造假检测篇

    随着图像合成技术的成熟,利用一张人脸照片合成假视频/不良视频现象越来越多,严重侵犯个人隐私.妨碍司法公正,所以人脸造假检测越来越重要,学术界的论文也越来越多. 本文总结CVPR 2021 中相关技术论 ...

最新文章

  1. python之Scrapy框架的第一个爬虫
  2. mysql 编码分层_【平台开发】— 5.后端:代码分层
  3. html5二次元插件,送你PS一键制作动漫二次元插件,80套背景+50种效果+20款中英字体...
  4. 打印机计算机故障或繁忙,为什么打印机可以通过电脑打印可不能扫描呢
  5. nginx源码分析之IO多路复用流程
  6. 富文本框让最大四百像素_富文本框的使用
  7. 第二增长曲线:如何发现击穿破局点的单一要素?
  8. Helm 3 完整教程(二十):在 Helm 模板中定义和使用变量
  9. 游戏产业链:游戏分发/渠道商
  10. matlab2c使用c++实现matlab函数系列教程-pascal函数
  11. 安卓电视盒子上 安装 Ubuntu 20.04 并安装 certbot 获取证书
  12. html表格中加入斜线,Html Table 表格 画斜线
  13. linux发送邮件mail详解
  14. 怎样利用博客推广自己的网店?
  15. [计算机数值分析]直线拟合的最小二乘法
  16. Cadence电路原理图全部变成黄色如何解决?
  17. NOIP信息学奥赛_普及组第一课--我是谁
  18. 2021-2027全球与中国工业RFID特种电子标签市场现状及未来发展趋势
  19. 操作系统 内存管理(一)
  20. 4.3计算机动画制作 教案,计算机动画制作1教案

热门文章

  1. oracle adpatch 回退,Oracle EBS使用adpatch工具打patch过程【Z】 - huak
  2. 2019_WSDM_Session-Based Social Recommendation via Dynamic Graph Attention Networks
  3. 两个重要极限定理推导
  4. 电子书格式转换方法集锦
  5. php导出页面为pdf文件大小,PHP HTML 生成 PDF|php快速导出pdf文件
  6. ambiguous column name 错误
  7. 以程序员的方式解决武汉公积金用户注册页面无法点击下一步问题
  8. 免费的ASP.net2.0免费空间
  9. UPS电源设备消防与电气安全要求
  10. 腾讯云服务器SSH密匙登录教程