论文笔记:Deformable ConvNets v2: More Deformable, Better Results
概要
MSRA在目标检测方向Beyond Regular Grid的方向上越走越远,又一篇大作推出,相比前作DCN v1在COCO上直接涨了超过5个点,简直不要太疯狂。文章的主要内容可大致归纳如下:
- More dconv and Modulated donv:认为前作中卷积变形时容易采样到不好的位置,例如背景等无关信息,这对于检测是有伤害的,这一点从两个方面下手解决,一是堆叠更多的Deformable卷积(简称dconv),这个不必多说;二是增加调制(modulated)功能,提出Modulated Deformabel卷积(简称mdconv),企图在采样到无关位置时,自适应地将这些位置的权重调低,以缓解其带来的伤害。这两下子一稿,AP从38.0提升到了41.7。
- Feature Mimicking:由于Deformable ROI Pooling(简称dpool,加调制模块简称mdpool)会采样到ROI之外的内容,这些内容虽说具有更多的上下文信息,但毕竟不属于ROI本身,可能对结果造成伤害。所以作者认为应该让dpool或mdpool得到的特征更“像”RCNN的特征,于是采用了知识蒸馏(这东西最近似乎很屌)的方法,作者称之为R-CNN Feature Mimicking,实现了这一目标。个人对此非常惊讶,看上去是难以work的,真是没想到。。。AP从41.7又提到了43.1,简直不要太疯狂。
- 模型分析:JiFeng老师还展示了一些分析模型表现的可视化方法,这一点对于我等炼丹师非常有教育意义。
模型分析
作者给出了三种可视化方法进行模型的分析,目的是从中发现DCN v1存在的问题,这几个方法虽然不是原创,但不得不说用得非常好,值得学习。
- Effective receptive fields:感受野的概念不必多说,有效感受野顾名思义就是感受野中贡献突出的区域。通过计算网络中的节点对于图像中每个像素的梯度,梯度值相对较大的地方就是了,具体的做法可以参阅此处的引文。
- Effective sampling / bin locations:DCN v1中对dpool各个bin的采样作了可视化,但这些采样位置对于后续结果的相对贡献没有体现。同样地,作者也使用节点对于采样位置的梯度大小来说明。
- Error-bounded saliency regions:这个方法是借鉴显著性检测的思想。本文简称ESR,定义为:图像中一片最小的区域,这片区域对网络的响应与全图对网络的响应之差小于一个较小的bound。获得ESR的方法是逐步mask图像中的点,观察节点响应的变化,如果变化大于某个阈值,那么这个点就属于ESR。
如原文Figure 1,有朋友反映不太能get到这个图的点,这里简单分析一下。这个图是对conv5 stage的最后一层卷积运用上面三种方法分析的结果,第一列是个烧饼(小目标),第二列是人(大目标),第三列是背景,绿点是目标的中心,上面几种方法就是基于节点以这几个绿点为中心做卷积时的情况进行的(这句话真是绕)。可以看到,(a)的第一行,regular卷积的感受野是regular的网格,感受野内的权重中心高,四周低。而dconv和mdconv的感受野理论上是全图,dconv比regular conv权重更集中于目标本身,而mdconv又比dconv更牛逼。其他两行要表达的东西其实类似。作者基于此归纳出的结论参考原文,基本也就是这意思。
More Deformable ConvNets
为了更好地建模几何形变,当然要堆叠更多的dconv,前作中只在conv5阶段用了3层dconv,性能就饱和了,但那是在PASCAL上的结果,COCO比PASCAL要复杂得多(当然训练数据量多也是原因之一),所以作者把conv3-conv5三个阶段12层conv都换成了dconv,妥妥的涨点。不过这不是主要的创新。
Modulated Deformable Modules
为了防止卷积变形时focus到无关位置,作者在dconv中加了一个调制项,
\[y(p) = \sum_{k=1}^{K} w_k \cdot x(p+p_k+\Delta p_k)\cdot \Delta m_k\]
符号就不多解释了,最后一项就是可学习的调制项,当采样点focus到无关位置时,这一项置0就可以挽回大局。调制项与前面的offset项用同样的方法获得,就是接一个旁支,之前输出2K个channel,现在输出3K个channel就是了。注意,看起来调制项和卷积核的参数w貌似是一回事,可以合写成一项,其实这是完全不同的,w是模型本身的参数,调制项是从输入特征中计算出来的,可以根据输入的不同自适应地去完成自己的使命。
另外也将dpool改进成了mdpool,也是乘了一个调制项,一样的道理,在此不再赘述。
R-CNN Feature Mimicking

对于这一点我个人的疑惑是比较大的,这种trick能够work我感到惊讶和佩服。操作的方法就是模型蒸馏那一套,这个东西最近挺火的,最近还有一篇投稿到CVPR2019做pose的也用了这东西去做模型的压缩,效果也比较惊艳,不过这里是用来做特征的模仿,不是压缩。要解决的问题其实还是要筛除无关的上下文信息,作者认为加入调制项还不够,我们知道,R-CNN的做法不考虑ROI之外的内容,也就不会引入无关的context,所以直接模仿R-CNN提的特征就好了。具体做法参见原文Figure3,得到ROI之后,在原图中抠出这个ROI,resize到224x224,再送到一个RCNN中进行分类,这个RCNN只分类,不回归。然后,主网络fc2的特征去模仿RCNN fc2的特征,实际上就是两者算一个余弦相似度,1减去相似度作为loss即可,见原文公式(3)。这个东西确实是work了,不过个人有个重大疑问,或许也是可以改进的点,欢迎各位看官一起讨论:
主网络fc2的特征要用来分类,也要用来回归bbox,而RCNN的fc2特征只用来分类,让主网络的fc2特征去模仿RCNN,是不是会丢失定位信息?也就是说,Mimic Loss会不会跟bbox回归Loss产生某种意义上的冲突?能不能试试拆分一下fc2特征,把用于分类和用于回归的特征分开,只模仿用于分类的部分?当然,这个想法不成熟,有待商榷,不过感觉直接Mimic真的有一丢丢粗暴。
就这样吧,还要抓紧读JiFeng老师刚发的另一篇paper。=_=
论文笔记:Deformable ConvNets v2: More Deformable, Better Results的更多相关文章
- 论文阅读笔记四十:Deformable ConvNets v2: More Deformable, Better Results(CVPR2018)
论文源址:https://arxiv.org/abs/1811.11168 摘要 可变形卷积的一个亮点是对于不同几何变化的物体具有适应性.但也存在一些问题,虽然相比传统的卷积网络,其神经网络的空间形状 ...
- 论文阅读:Deformable ConvNets v2
论文地址:http://arxiv.org/abs/1811.11168 作者:pprp 时间:2019年5月11日 0. 摘要 DCNv1引入了可变形卷积,能更好的适应目标的几何变换.但是v1可视化 ...
- 论文阅读笔记三十八:Deformable Convolutional Networks(ECCV2017)
论文源址:https://arxiv.org/abs/1703.06211 开源项目:https://github.com/msracver/Deformable-ConvNets 摘要 卷积神经网络 ...
- Deformable ConvNets
Deformable ConvNets 论文 Deformable Convolutional Networks(arXiv:1703.06211) CNN受限于空间结构,具有较差的旋转不变性,较弱的 ...
- 论文笔记:CNN经典结构1(AlexNet,ZFNet,OverFeat,VGG,GoogleNet,ResNet)
前言 本文主要介绍2012-2015年的一些经典CNN结构,从AlexNet,ZFNet,OverFeat到VGG,GoogleNetv1-v4,ResNetv1-v2. 在论文笔记:CNN经典结构2 ...
- 【论文笔记系列】AutoML:A Survey of State-of-the-art (下)
[论文笔记系列]AutoML:A Survey of State-of-the-art (上) 上一篇文章介绍了Data preparation,Feature Engineering,Model S ...
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文, ...
- 论文笔记之:Visual Tracking with Fully Convolutional Networks
论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015 CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...
- Deep Learning论文笔记之(八)Deep Learning最新综述
Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...
随机推荐
- python迭代器、生成器、装饰器之迭代器
迭代是Python最强大的功能之一,是访问集合元素的一种方式. 一般分为可迭代对象,迭代器,可迭代对象不一定是迭代器,但迭代器一定是可迭代对象 1.可以直接作用于for循环的数据类型 第一类:集合数据 ...
- 创建.Net Core For WPF项目并且添加VS Code编译运行支持
1.下载最新的Visual Studio 2019或者Preview版本,新建项目,找到"WPF App(.Net Core)"模板. 2.输入项目名称"NetCore- ...
- Charles 教程
本文介绍 charles 教程 - 代理抓包的使用方法 本文参考了:阿西河 Charles 教程 Charles Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看其机器 ...
- 线程.Qt更新界面
1.信号&槽 机制 即可 ZC:个人暂时 测试下来,类似是 PostMessage(...)的方式: a.是在各自的线程中执行代码, b.调用 emit不耗时(指的意思是 像调用PostMes ...
- Spring 使用jsp
1.New----新建项目 2.选择图中所示按钮,下一步 3.标记处修改工程名,下一步 4选中图中所示选项 5.完成 6.在main目录下新建目录webapp 7.自动导入 8.调整项目结构 9.选择 ...
- VMware中 CentOs虚拟机的安装教程
首先点击创建新的虚拟机 选择典型安装,点击下一步 这里我们选择稍后安装操作系统,然后点击下一步 这里我们操作系统选择Linux操作系统,版本选择CentOs 7 64位,然后点击下一步 这里我们可以修 ...
- js 实现数字格式化(货币格式)几种方法
// 方法一 function toThousands(num) { var result = [ ], counter = 0; num = (num || 0).toString().split( ...
- python 列表List - python基础入门(13)
列表是python开发过程中最常用的数据类型之一,列表俗称:list ,特点如下: 1.列表由一个或者多个数据构成,数据的类型可以不相同也可以相同: 2.列表中的数据需要写在[]中括号内部,数据与数据 ...
- [转帖]可能是东半球最好的 Curl 学习指南,强烈建议收藏!
可能是东半球最好的 Curl 学习指南,强烈建议收藏! http://www.itpub.net/2019/09/30/3302/ 记得转帖过.. 简介 curl 是常用的命令行工具,用来请求 Web ...
- SQL,NoSQL和NewSQL
一:概念 SQL(Structured Query Language):数据库,指关系型数据库.主要代表:SQL Server.Oracle.MySQL.PostgreSQL. NoSQL(Not O ...