zoukankan      html  css  js  c++  java
  • Deformable Convolutional Networks-v1-v2(可变形卷积网络)

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


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

    Deformable Convolution来自:https://arxiv.org/pdf/1703.06211.pdf

       上图的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中,如双线性插值:


      双线性插值

      该变换可以求梯度:

      (变换矩阵反向传播?)

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

  • 相关阅读:
    59、web框架以及Django框架
    58、bootstrap
    56、jQuery事件
    55、原生js事件与jQuery
    36-并发编程
    4.20---远程执行命令的CS架构软件
    35-socket 基于套接字的TCP与UDP
    34-网络编程
    33-异常处理
    4.15---元类练习
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/10040410.html
Copyright © 2011-2022 走看看