《Deformable Convolutional Networks》是一篇2017年Microsoft Research Asia的研究。基本思想也是卷积核的采样方式是可以通过学习得到的。作者提出了两种新的op:deformable convolution和deformable roi pooling,主要是通过给传统卷积采样点加offsets的方式来获得新的采样点。来自:https://arxiv.org/pdf/1703.06211.pd        

传统卷积窗口只要训练每个卷积窗口的像素权重参数即可。而可变形卷积网络必须外加一些参数用来训练卷积窗口的形状(各个像素的偏移向量offset):

Deformable Convolution

上图的offset field就是变形卷积外加的待训练参数,大小和输入层图片大小一样(input feature map),卷积窗口在offset field上滑动就呈现了卷积像素偏移的效果,达到采样点优化的效果。

在实际应用中,对于一个的输入,若使用3*3的卷积核,则先通过卷积,生成一个新的channel数为2*3*3的feature map(大小不变),分别代表不同方向上x,y的offset值。

Deformable RoI Pooling

       在实际使用中,若pooling的目标为一个3*3的featrue map,那么我们需要2×3个偏置对应每一个bin,首先将输入的featrue map进行roi pooling为3*3大小的feature,然后通过全连接,输出为每一个bin(输出feature map大小决定bin个数)对应的offset。同时为了保证采样大小,需要对offset进行normalization。
 

补充STN:

通过仿射矩阵可以求得特征矩阵上的点在经过特定仿射变换后对应输出的位置,通过双线性插值,我们可以得到一个新的特征矩阵。我们可以通过学习来设定仿射矩阵的参数,从而通过仿射矩阵对特征矩阵进行有效归一,我们称其为空间变换器(Spatial Transformers)。

空间变换结构包含三个部分:

空间变换结构
  1. Localisation Network:以的feature map作为输入,以变换矩阵的元素作为输出的网络结构,变换矩阵可以为任意形式,对于仿射变换矩阵而言,为一个6参数矩阵。
    网络可以是以回归层为终止的多种网络结构,可以采用全连接结构也可以采用卷积结构。

  2. Parameterised Sampling Grid:根据Localisation Network的参数,我们对一个一般的feature map产生一个特定的变换后的grid(通过逆变换)。通过仿射变换:

    同时将输入的横纵坐标范围和输出的横纵左边范围归一化为[-1,+1]。由此对图像进行裁剪、平移、旋转、拉伸及扭曲形成输出的feture map。

    左图为一般采样下的grid,右图为空间变换采样的grid
  3. Differentiable Image Sampling:在获得相应的grid和变换矩阵后,需要对原featrue map进行采样从而得到新的feature map。
    通过变换矩阵相关的采样核:

    将原feature map映射到新feature map中,如双线性插值:

    双线性插值

    该变换可以求梯度:

    (变换矩阵反向传播?)

通过以上三个结构,就形成了了一个空间变换器。该结构可以背放在卷积网络的任意位置,通过训练学习如何得到最有效的变换方式。

Deformable Convolutional Networks-v1-v2(可变形卷积网络)的更多相关文章

  1. 深度学习方法(十三):卷积神经网络结构变化——可变形卷积网络deformable convolutional networks

    上一篇我们介绍了:深度学习方法(十二):卷积神经网络结构变化--Spatial Transformer Networks,STN创造性地在CNN结构中装入了一个可学习的仿射变换,目的是增加CNN的旋转 ...

  2. 论文阅读笔记三十八:Deformable Convolutional Networks(ECCV2017)

    论文源址:https://arxiv.org/abs/1703.06211 开源项目:https://github.com/msracver/Deformable-ConvNets 摘要 卷积神经网络 ...

  3. Deformable Convolutional Networks

    1 空洞卷积 1.1 理解空洞卷积 在图像分割领域,图像输入到CNN(典型的网络比如FCN)中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预 ...

  4. 目标检测论文阅读:Deformable Convolutional Networks

    https://blog.csdn.net/qq_21949357/article/details/80538255 这篇论文其实读起来还是比较难懂的,主要是细节部分很需要推敲,尤其是deformab ...

  5. 图像处理论文详解 | Deformable Convolutional Networks | CVPR | 2017

    文章转自同一作者的微信公众号:[机器学习炼丹术] 论文名称:"Deformable Convolutional Networks" 论文链接:https://arxiv.org/a ...

  6. pytorch实现 | Deformable Convolutional Networks | CVPR | 2017

    文章转载自微信公众号:[机器学习炼丹术],请支持原创. 这一篇文章,来讲解一下可变卷积的代码实现逻辑和可视化效果.全部基于python,没有C++.大部分代码来自:https://github.com ...

  7. 论文讨论&&思考《Deformable Convolutional Networks》

    这篇论文真是让我又爱又恨,可以说是我看过的最认真也是最多次的几篇paper之一了,首先deformable conv的思想我觉得非常好,通过end-to-end的思想来做这件事也是极其的make se ...

  8. Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network(GCN全局卷积网络)

    作者认为语义分割的两个挑战是分类和定位,而这两个挑战又是比较对立的.对于分类问题,模型需要有变形和旋转不变形,而对于定位问题,模型有需要对变形敏感. 提出的GCN遵循两个主要原则: 1.对定位问题,模 ...

  9. How to do Deep Learning on Graphs with Graph Convolutional Networks

    翻译: How to do Deep Learning on Graphs with Graph Convolutional Networks 什么是图卷积网络 图卷积网络是一个在图上进行操作的神经网 ...

随机推荐

  1. KVM源代码框架

    自己通过看代码总结的内核中包含kvm的文件夹: (1)Linux-3.17.4\Documentation\virtual\kvm\ (2)Linux-3.17.4\include\ (3)Linux ...

  2. 【Codechef FRBSUM】【FJOI2016】【BZOJ4299】【BZOJ 4408】 可持久化线段树

    4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 475  Solved: 287[Submit][Status ...

  3. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem F. Finance 模拟题

    Problem F. Finance 题目连接: http://codeforces.com/gym/100714 Description The Big Boss Company (BBC) pri ...

  4. Java 中的“implements Runnable” 和“extends Thread”

    知识点 “implements Runnable” 和“extends Thread”的不同 具体分析 最近在学习Android中的Handler消息传递机制时,创建新线程有两种方式:一种是实现Run ...

  5. 老菜鸟致青春,程序员应该选择java 还是 c#-

    致青春 还记得自己那年考清华失败,被调剂到中科大软院,当初有几个方向可以选,软件设计.嵌入式.信息安全等等,毫不犹豫地选择了信息安全. 为什么选信息安全?这四个字听起来多牛多有感觉,我本科是学物理的, ...

  6. LPC43xx SGPIO Camera interface design

    AN11196: Camera interface design using SGPIO

  7. mysqltool :dodba orzdba

    http://www.cnblogs.com/beyang/p/6963306.html

  8. 8张图理解Java---importnew---programcreek

    http://www.importnew.com/11725.html https://www.programcreek.com/2013/09/top-8-diagrams-for-understa ...

  9. 怎么发现RAC环境中'library cache pin'等待事件的堵塞者(Blocker)?

    怎么发现RAC环境中的'library cache pin'等待事件的堵塞者(Blocker) 參考自 How to Find the Blocker of the 'library cache pi ...

  10. 最简单的例子理解Javascript闭包

    理解Javascript的闭包非常关键,本篇试图用最简单的例子理解此概念. function greet(sth){ return function(name){ console.log(sth + ...