Deformable ConvNets v2: More Deformable, Better Results

https://arxiv.org/abs/1811.11168v2 link.
  文章主要针对Deformable Convolutional Networks的几何变化可能超出目标区域,从而导致特征被图像的其他无关内容影响的问题进行改进,从而提出了Deformable ConvNets v2。
  改进主要在于两点:首先是可变形卷积层的扩展;通过为更多卷积层增加偏移学习(卷积层的堆叠),DCNv2可以在更广泛的特征级范围内控制采样。第二是可变形卷积模块中的调制机制,每个样本不仅具有经学习得到的偏移,而且还被特征幅度调制。
  为了更好的理解可变形卷积网络,文章引入了三个概念:

  • 有效感受野(effective receptive fields):感受野内的点对响应的贡献是不等的,文章用有效感受野来描述这种不等的贡献,其值为节点响应相对于每个像素的强度扰动的梯度。
  • 有效采样位置(effective sampling locations):为了理解可变形卷积网络,卷积层和池化层的采样位置都可以可视化,但这些采样点对网络节点的影响或者贡献是不明确的;使用节点对采样点的梯度描述这种贡献。
  • error-bounded saliency regions:如果去掉不影响网络节点的图像区域,那么节点响应是不改变的。基于这种性质,文章定义了error-bounded saliency regions:能够产生和全图同等响应(响应之差小于某个较小的阈值)的最小图像区域(support region);简单的说就是利用一个mask挡住图像部分区域,产生的响应和全图输入时的响应小于某个值,那么这个区域就属于error-bounded saliency regions;这样便于比较不同网络的支持区域。

  下图展示了conv5的最后一层中节点的相关信息,从上到下三行分别表示effective receptive fields、effective sampling locations、error-bounded saliency regions。a、b、c图分别是常规卷积、DCN v1、DCN v2的结果:

  1. 常规的ConvNets能够在一定程度上对几何变化建模,主要得益于深度网络强大的表征能力。
  2. 可变形卷积的引入增强了网络度几何变换的建模能力,表现为前景节点包含整个目标,背景节点包含更大的上下文。然而support region存在不准确的情况;前景节点的effective receptive fields和error-bounded saliency regions包含了与检测不相关的背景区域。
  3. 这里使用的三种可视化方式比DCN v1中使用的采样位置更能反映网络获得的信息。在常规的ConvNet在网格上具有固定的采样位置,但实际上它可以通过网络权重来调整其有效的support region。 可变形卷积受偏移量和网络权重的共同影响。

下图显示了每个RoI检测头中2fc节点的spatial support:

  前景上的bin通常会在分类分支产生较大的梯度,从而对预测产生更大的影响。由于引入了可学习的偏移量,Deformable RoIpooling与aligned RoIpooling相比,覆盖前景的Bin比例要大得多。同时,aligned RoIpooling和Deformable RoIpooling中的error-bounded saliency regions没有完全集中在前景目标上,这可能导致RoI之外的内容会影响预测结果。

Modulated Deformable Modules

  为了进一步增强可变形卷积网络控制support region的能力,文章引入了一种调制机制,使Deformable Convolutional Network不仅可以学习调整偏移量,还可以调制不同空间位置的输入特征幅度。在极端情况下,模块可以将其特征幅度置零,不感知来自特定位置的信号。调制项:
DCN v1:
y(p0)=∑pn∈Rw(pn)⋅x(p0+pn+Δpn)\mathbf{y}\left(\mathbf{p}_{0}\right)=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}_{0}+\mathbf{p}_{n}+\Delta \mathbf{p}_{n}\right)y(p0​)=pn​∈R∑​w(pn​)⋅x(p0​+pn​+Δpn​)

DCN v2:
y(p)=∑k=1Kwk⋅x(p+pk+Δpk)⋅Δmky(p)=\sum_{k=1}^{K} w_{k} \cdot x\left(p+p_{k}+\Delta p_{k}\right) \cdot \Delta m_{k}y(p)=k=1∑K​wk​⋅x(p+pk​+Δpk​)⋅Δmk​

其中Δpk\Delta p_kΔpk​和Δmk\Delta m_kΔmk​分别是采样点k的位置偏移量和特征调节系数,两者由不同卷积核以特征x作为输入得到。假设有K个采样点(3x3卷积9个采样点),卷积层的分辨率和输入特征x相同;输出3×K个通道,对应于每个采样点的偏移量Δpk\Delta p_kΔpk​(x,y两个方向,即2×K个通道)和对应调制系数Δmk\Delta m_kΔmk​(K个通道)。
Δpk\Delta p_kΔpk​和Δmk\Delta m_kΔmk​分别初始化为 0和0.5(默认偏移量为0,无法区别采样点贡献率),对应的卷积核参数初始为0,卷积层的学习率设置为现有层的0.1。
deformable RoIpooling也添加类似的调制项:
DCN v1:
y(i,j)=∑p∈bin⁡(i,j)x(p0+p+Δpij)/nij\mathbf{y}(i, j)=\sum_{\mathbf{p} \in \operatorname{bin}(i, j)} \mathbf{x}\left(\mathbf{p}_{0}+\mathbf{p}+\Delta \mathbf{p}_{i j}\right) / n_{i j}y(i,j)=p∈bin(i,j)∑​x(p0​+p+Δpij​)/nij​

DCN v2:
y(k)=∑j=1nkx(pkj+Δpk)⋅Δmk/nky(k)=\sum_{j=1}^{n_{k}} x\left(p_{k j}+\Delta p_{k}\right) \cdot \Delta m_{k} / n_{k}y(k)=j=1∑nk​​x(pkj​+Δpk​)⋅Δmk​/nk​

  调制系数通过额外的fc层产生,输出3×K通道(归一化的偏移量和系数),额外的fc层的学习率和其他层相同,卷积偏移量和池化偏移量的调制系数都需要经过sigmoid得到。
使用改进的模块的效果对比(考虑deformable convolution和RoIpooling的堆叠)
DCN v1 (conv5):

DCN v2 (conv3∼5):

R-CNN Feature Mimicking:

  进一步地,作者发现基于RoI的分类中,常规CNN或者DCN v1的error-bounded saliency regions会延伸到RoI之外,即包含了与检测不相关的背景区域,作者认为这会影响分类结果。另外作者发现R-CNN的分类结果完全是依赖于RoI的,因为R-CNN的分类输入实际上是经过cropped的RoI。所以作者设计了称为R-CNN feature mimicking的结构,即R-CNN来监督改善对RoI的特征提取过程,或者将R-CNN称为teacher或guidance:

  左边是Faster R-CNN,右边是R-CNN,两个分支共享权重。使用Faster R-CNN得到ROI后在原图上裁剪并 resize成224×224输入到R-CNN,经过 R-CNN提取特征后得到14×14的特征图,经过2个fc层输出1024维特征,用两个网络的输出特征计算损失,从而实现对RoI的特征提取过程的改善。由于R-CNN的输入只有ROI,也就只能关注ROI内部的特征,将R-CNN作为guidance强迫Faster R-CNN同样关注ROI里面的内容,这种强迫就通过deformable convolution和RoIpooling的offsets实现。
损失函数:
Lmimic =∑b∈Ω[1−cos⁡(fRCNN (b),fFRCNN (b))]L_{\text {mimic }}=\sum_{b \in \Omega}\left[1-\cos \left(f_{\text {RCNN }}(b), f_{\text {FRCNN }}(b)\right)\right]Lmimic ​=b∈Ω∑​[1−cos(fRCNN ​(b),fFRCNN ​(b))]

损失函数只应用于正样本,因为正样本只限于自身特征,负样本需要背景或者其它信息判断。
常规卷积和基于DCN v2模型的效果对比:

消融实验:

关于deformable convolution和RoI pooling堆叠的消融实验:

(m)dconv和(m)dpool表示 (modulated) deformable convolution和 (modulated) deformable RoIpooling。

  对正负样本使用上述损失函数的影响(FG: foreground;BG:background),下左图:

DCN v2, DCN v1 和常规的ConvNets在不同的backbones的效果,上右图。
DCN v2和常规的ConvNets在不同的图像分辨率上的表现:

Baseline是基于ResNet-50和ResNet-101的Faster R-CNN,结果表明DCN v2在全输入分辨率上都有良好的表现。在输入较短边大于1000 像素时,基于常规卷积的模型得分迅速下降,在目标处于中大尺寸时,这种下降更为明显:

基于ResNet-101的多尺度测试:

Deformable ConvNets v2阅读笔记相关推荐

  1. Deformable ConvNets v2算法笔记

    论文:Deformable ConvNets v2: More Deformable, Better Results 论文链接:https://arxiv.org/abs/1811.11168 这篇博 ...

  2. 如何评价MSRA视觉组最新提出的Deformable ConvNets V2?

    点击我爱计算机视觉标星,更快获取CVML新技术 今天知乎CV圈的一件大事即针对MSRA视觉组在arXiv放出了Deformable ConvNets V2的讨论. 该问题"如何评价MSRA视 ...

  3. Deformable ConvNets v2 原理与代码解析

    paper:Deformable ConvNets v2: More Deformable, Better Results code:https://github.com/4uiiurz1/pytor ...

  4. CNN卷积神经网络之DCN(Deformable Convolutional Networks、Deformable ConvNets v2)

    可变形卷积网络Deformable ConvNets V1.V2 前言 一.Deformable Convolutional Networks Deformable Convolution Defor ...

  5. Deformable ConvNets v2: More Deformable, Better Results

    文章地址:https://arxiv.org/pdf/1811.11168.pdf 可变形卷积网络的优越性能源于其可以适应物体几何变化的能力.虽然对其神经特征的空间支持比常规convnet更符合对象结 ...

  6. Deformable ConvNets v2 Pytorch版源码讲解_2

    接着上一章的来讲,上一章主要是介绍了一下可变形卷积v1和v2,红色字都是基于源码来的.那么这一篇文章就分析一下整个代码流程是怎么样的.代码是Pytorch版的,这里附上Github地址:https:/ ...

  7. Deformable ConvNets v2

    Deformable ConvNets v2 可变形卷积网络的优越性能源于其对物体几何变化的适应能力.通过对其自适应行为的研究,我们发现虽然对其神经特征的空间支持比常规的转换更符合对象结构,但这种支持 ...

  8. 论文阅读笔记四十:Deformable ConvNets v2: More Deformable, Better Results(CVPR2018)

    论文源址:https://arxiv.org/abs/1811.11168 摘要 可变形卷积的一个亮点是对于不同几何变化的物体具有适应性.但也存在一些问题,虽然相比传统的卷积网络,其神经网络的空间形状 ...

  9. EDVR: Video Restoration with Enhanced Deformable Convolutional Networks阅读笔记

    EDVR: Video Restoration with Enhanced Deformable Convolutional Networks EDVR:基于增强可变形卷积网络的视频恢复 论文:htt ...

最新文章

  1. 【原】YUI压缩与CSS media queries下的bug
  2. JavaWEB开发21——综合项目(图书商城)
  3. 第一节 HTML DOM
  4. Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画、版权声明(如README.md)等之详细攻略
  5. Hbase Interface HConnection
  6. 干货 | 大牛谈嵌入式C语言的高级用法
  7. mysql显示表格前五行,深入浅出MySQL勘误表
  8. 干货:18 张思维导图,后端技术学习路线长这样!
  9. bilibilidown 生成证书_哔哩哔哩(bilibili)助手
  10. Typora使用教程
  11. python股票交易接口是什么_python 股票交易接口【怎样用 Python 写一个股票自动交易的程序】...
  12. 程序员懒人投资大法之定投指数基金
  13. foo:function(){}与function foo(){}还有foo=function()三者间的区别
  14. 84小时,230台服务器,袋鼠云和客户一起全力阻击WannaCrypt蠕虫病毒
  15. NETDMIS5.0箱体测量——建立零件坐标系2023
  16. 学会提问———阅读笔记
  17. 英语语法总结--句子的种类
  18. M7206手动进行双面打印步骤
  19. day007-列表和字典
  20. 谈谈MVC和MVVM

热门文章

  1. 美国发布35页科技趋势报告,哪个是未来的趋势呢?
  2. JS动态修改单网页web应用在微信浏览器中的title
  3. (二十九)arcpy开发利用arcpy在arcgis中实现批量计算图斑四至坐标(polygon顶点计算,范围获取、pyhon类创建)
  4. anaconda环境创建方式
  5. 班级综合评测数据管理系统
  6. 高效的CSS代码(1)
  7. mysql数据库操作命令笔记
  8. python与工业_星球大战与Python之间的那些事
  9. “QQ找茬”游戏的识别小软件JAVA源码
  10. mysql安装appcrash_安装程序的时候出现 问题事件名称:APPCRASH,怎么解决啊??? - Microsoft Community...