CVPR目标检测:少见的知识蒸馏用于目标检测(附论文下载)-程序员宅基地

技术标签: python  机器学习  计算机视觉  深度学习  人工智能  

欢迎关注“

计算机视觉研究院

547d6ee969bb73547719be13964badad.gif

计算机视觉研究院专栏

作者:Edison_G

近年来,知识蒸馏已被证明是对模型压缩的一种有效的解决方案。这种方法可以使轻量级的学生模型获得从繁琐的教师模型中提取的知识。

89048059a6add6030082b26ff1569726.png

长按扫描二维码关注我们

回复“GID”获取论文

1、简介

然而,以往的蒸馏检测方法对不同的检测框架具有较弱的泛化性,并且严重依赖于GT,忽略了实例之间有价值的关系信息。因此,研究者提出了一种新的基于鉴别实例的检测方法,而不考虑GT的正负区别,称为通用的实例蒸馏(GID)。

新提出的方法包含了一个通用的实例选择模块(GISM),以充分利用基于特征、基于关系和基于响应的知识进行蒸馏。大量的结果表明,学生模型在各种检测框架中取得了显著的AP改进,甚至优于教师。具体来说,ResNet-50的RetinaNet在COCO数据集上使用GID在mAP中达到39.1%,超过基线36.2%,甚至优于基于ResNet-101的38.1%AP教师模型。

d46c219981b24bf3fd28d127b05c93e2.png

2、背景及动机

由Hinton等人【Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distilling the knowledge in a neural network, 2015】提出的知识蒸馏(KD)是解决上述问题的一种很有前途的方法。知识蒸馏是将大模型的知识传递给小模型,从而提高小模型的性能,达到模型压缩的目的。目前,知识的典型形式可分为三类:反应型知识、特征型知识和关系型知识。然而,大多数蒸馏方法主要是针对多分类问题而设计的。 

直接将分类特定蒸馏方法迁移到检测模型中的效果较差,因为检测任务中正实例和负实例的比例极不平衡。 

一些为检测任务设计的蒸馏框架处理了这个问题,并取得了令人印象深刻的结果,例如。Li【Quanquan Li, Shengying Jin, and Junjie Yan. Mimicking very efficient network for object detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 2017】通过提取RPN和Wang等人【Tao Wang, Li Yuan, Xiaopeng Zhang, and Jiashi Feng. Distilling object detectors with fine-grained feature imitation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 2019】抽样一定比例的正负实例来解决这个问题。进一步提出只提取近GT区。然而,蒸馏的正负实例之间的比率需要精心设计,而仅蒸馏与GT相关的区域可能会忽略背景中潜在的信息区域。此外,目前的检测蒸馏方法不能同时在多个检测框架中工作:如two-stage, anchor-free。因此,研究者希望设计一种通用的蒸馏方法,用于各种检测框架,以有效地使用尽可能多的知识,而不涉及正或负。

3、新框架优势

fa37ff274f560266c39a8e166dd793fe.png

通过上图可以知道,新框架有如下优势:

(i)可以对一个图像中实例之间的关系知识进行建模,以便进行蒸馏。Hu【Han Hu, Jiayuan Gu, Zheng Zhang, Jifeng Dai, and Yichen Wei. Relation networks for object detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2018】演示了关系信息对检测任务的有效性。然而,基于关系的知识蒸馏在目标检测中还没有被探索。 

(ii)避免手动设置正、负区域的比例,或只选择与GT有关的区域进行蒸馏。虽然GT相关的领域几乎是信息丰富的,但极其困难和简单的实例可能是无用的,甚至来自背景的一些信息块也可以帮助学生学习教师的泛化。此外,研究者还发现,自动选择学生和教师之间的一些判别实例进行蒸馏,可以使知识传递更加有效。这些判别实例被称为一般实例(GIS),因为新方法不关心正实例和负实例之间的比例,也不依赖于GT标签。

(iii)新方法对各种检测框架具有强大的泛化能力。基于学生和教师模型的输出计算GIS,而不依赖于特定检测器的某些模块或特定检测框架的某些关键特性,如anchor。

4、General Instance Distillation

先前的工作【Tao Wang, Li Yuan, Xiaopeng Zhang, and Jiashi Feng. Distilling object detectors with fine-grained feature imitation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 2019】提出,目标附近的特征区域有相当多的信息,这对于知识蒸馏是有用的。然而,研究者发现,不仅目标附近的特征区域,而且即使是来自背景区域的判别块也有意义的知识。基于这一发现,设计了通用实例选择模块(GISM),如下图所示。

08df45c3fd1732b9974989f98ae8dc66.png

该模块利用教师和学生模型的预测来选择蒸馏的关键实例。此外,为了更好地利用教师提供的信息,提取并利用基于特征、基于关系和基于响应的知识进行蒸馏,如下图所示。实验结果表明,新的蒸馏框架对于目前最先进的检测模型是通用的。

ecca1fed364c4ae7a197404ead6d7bc8.png

5、实验

为了验证该方法的有效性和鲁棒性,在不同的检测框架和异构主架构上进行了实验,并在COCO和Pascal VOC数据集的少数类检测上进行了实验。具体来说,在【Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. In C. Cortes, N. D. Lawrence, D. D. Lee, M. Sugiyama, and R. Garnett, editors, Advances in Neural Information Processing Systems 28, pages 91–99. Curran Associates, Inc., 2015】中的设置之后,对于PascalVOC数据集,选择在VOC2007中分割的5k训练图像和在VOC2012中分割的16k训练图像进行训练,在VOC2007中分割的5k测试图像进行测试。对于COCO,选择默认的120k训练图像分割进行训练,5k Val图像分割进行测试。所有蒸馏性能均以AP进行评价。

0bb963964fafa0458b1151ca553db428.png

42c39a49aa09e60019afeb0d09d6f1c2.png

5aaae462af86e7760d9acc7b861319a5.png

acb90ced78176619529bd0d56225ce06.png

绿色、红色、黄色和青色框分别表示GT、正、半正和负实例。为了进一步分析了每种类型的一般实例的贡献,并验证了GISM的有效性,对每种类型的一般实例进行了实验。引入了一个名为intersection over proposals (IoP),以帮助分离这些GI:

8d33c8dfb473fff4c14afe0c24508386.png

GI的每个类型定义如下:

ac2a1d8cf310e07b002b29a3128ead72.png

1ddfba013d6aa6bd02c18b1f432e4493.png

 THE END

我们开创“计算机视觉协会”知识星球一年有余,也得到很多同学的认可,我们定时会推送实践型内容与大家分享,在星球里的同学可以随时提问,随时提需求,我们都会及时给予回复及给出对应的答复。

49eae1abe29d180427c450612c361e60.png

如果想加入我们“计算机视觉研究院”,请扫二维码加入我们。我们会按照你的需求将你拉入对应的学习群!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

1ee95f8dea5298685d073b6f96d58746.png

计算机视觉研究院

长按扫描二维码关注我们

回复“GID”获取论文

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gzq0723/article/details/122659828

智能推荐

计算机丢失concrt140,小编教你解决concrt140 dll 【解决教程】 的技巧_-程序员宅基地

文章浏览阅读4.5w次。近日有小伙伴发现电脑出现问题了,在突然遇到concrt140 dll时不知所措了,对于concrt140 dll带来的问题,其实很好解决concrt140 dll带来的问题,下面小编跟大家介绍concrt140 dll解决方法:丢失CONCRT140.dll,怎么办?答:分析及解决:网上下载这个DLL文件,将其放置到system32目录下面。 重启系统,或者在CMD下面运行regsvr32*.dl..._concrt140.dll下载教程

微信小程序源码案例大全_微信小程序switch页面demo-程序员宅基地

文章浏览阅读4.3k次,点赞4次,收藏62次。微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo:文章列表demo 微商城(含微信小程序)完整源码+配置指南 微信小程序Demo:一个简单的工作系统 微信小程序Demo:用于聚会的小程序 微信小程序Demo:Growth 是一款..._微信小程序switch页面demo

SLAM学习笔记(Code2)----刚体运动、Eigen库_eigen.determinant-程序员宅基地

文章浏览阅读2.2k次。2.1除了#include<iostream>之外的头文件#include <Eigen/Core>//Core:核心#include <Eigen/Dense>//求矩阵的逆、特征值、行列式等#include <Eigen/Geometry>//Eigen的几何模块,可以利用矩阵完成如旋转、平移/***其他***/#include <ctime>//可用于计时,比较哪个程序更快#include <cmath>//包含a_eigen.determinant

图像梯度-sobel算子-程序员宅基地

文章浏览阅读1w次,点赞12次,收藏61次。(1)理论部分x 水平方向的梯度, 其实也就是右边 - 左边,有的权重为1,有的为2 。若是计算出来的值很大 说明是一个边界 。y 竖直方向的梯度,其实也就是下面减上面,权重1,或2 。若是计算出来的值很大 说明是一个边界 。图像的梯度为:有时简化为:即:(2)程序部分函数:Sobelddepth 通常取 -1,但是会导致结果溢出,检测不出边缘,故使..._sobel算子

cuda10.1和cudnn7.6.5百度网盘下载链接(Linux版)_cudnn7.6网盘下载-程序员宅基地

文章浏览阅读3.6k次,点赞17次,收藏8次。cuda10.1和cudnn7.6.5百度网盘下载链接(Linux版)在官网下载不仅慢,,,主要是还总失败。。终于下载成功了,这里给出百度网盘下载链接,希望可以帮到别人百度网盘下载链接提取码: vyg5_cudnn7.6网盘下载

Python正则表达式大全-程序员宅基地

文章浏览阅读9.3w次,点赞69次,收藏427次。定义:正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。上面都是官方的说明,我自己的理解是(仅供参考):通过事先规定好一些特殊字符的匹配规则,然后利用这些字符进行组合来匹配各种复杂的字符串场景。比如现在的爬虫和数据分析,字符串校验等等都需要用_python正则表达式

随便推点

NILM(非侵入式电力负荷监测)学习笔记 —— 准备工作(一)配置环境NILMTK Toolkit_nilmtk学习-程序员宅基地

文章浏览阅读1.9w次,点赞27次,收藏122次。安装Anaconda,Python,pycharm我另一篇文章里面有介绍https://blog.csdn.net/wwb1990/article/details/103883775安装NILMTK有了上面的环境,接下来进入正题。NILMTK官网:http://nilmtk.github.io/因为官方安装流程是基于linux的(官方安装流程),我这里提供windows..._nilmtk学习

k8s-pod 控制器-程序员宅基地

文章浏览阅读826次,点赞20次,收藏28次。如果实际 Pod 数量比指定的多那就结束掉多余的,如果实际数量比指定的少就新启动一些Pod,当 Pod 失败、被删除或者挂掉后,RC 都会去自动创建新的 Pod 来保证副本数量,所以即使只有一个 Pod,我们也应该使用 RC 来管理我们的 Pod。label 与 selector 配合,可以实现对象的“关联”,“Pod 控制器” 与 Pod 是相关联的 —— “Pod 控制器”依赖于 Pod,可以给 Pod 设置 label,然后给“控制器”设置对应的 selector,这就实现了对象的关联。

相关工具设置-程序员宅基地

文章浏览阅读57次。1. ultraEdit设置禁止自动更新: 菜单栏:高级->配置->应用程序布局->其他 取消勾选“自动检查更新”2.xshell 传输文件中设置编码,防止乱码: 文件 -- 属性 -- 选项 -- 连接 -- 使用UTF-8编码3.乱码修改:修改tomcat下配置中,修改: <Connector connectionTimeou..._高级-配置-应用程序布局

ico引入方法_arco的ico怎么导入-程序员宅基地

文章浏览阅读1.2k次。打开下面的网站后,挑选要使用的,https://icomoon.io/app/#/select/image下载后 解压 ,先把fonts里面的文件复制到项目fonts文件夹中去,然后打开其中的style.css文件找到类似下面的代码@font-face {font-family: ‘icomoon’;src: url(’…/fonts/icomoon.eot?r069d6’);s..._arco的ico怎么导入

Microsoft Visual Studio 2010(VS2010)正式版 CDKEY_visual_studio_2010_professional key-程序员宅基地

文章浏览阅读1.9k次。Microsoft Visual Studio 2010(VS2010)正式版 CDKEY / SN:YCFHQ-9DWCY-DKV88-T2TMH-G7BHP企业版、旗舰版都适用推荐直接下载电驴资源的vs旗舰版然后安装,好用方便且省时!) MSDN VS2010 Ultimate 简体中文正式旗舰版破解版下载(附序列号) visual studio 2010正_visual_studio_2010_professional key

互联网医疗的定义及架构-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏17次。导读:互联网医疗是指综合利用大数据、云计算等信息技术使得传统医疗产业与互联网、物联网、人工智能等技术应用紧密集合,形成诊前咨询、诊中诊疗、诊后康复保健、慢性病管理、健康预防等大健康生态深度..._线上医疗的定义