论文|一文读懂《Deformable Convolutional Networks》可变神经网络的精髓

未经允许,不得转载,谢谢~~

《Deformable Convolutional Networks》是微软亚洲研究院发在ICCV2017上的论文。

原文链接: Deformable Convolutional Networks

这是一篇我琢磨了很久才看懂的论文,也是每看一次都觉得idea很惊艳的一篇论文。

那主要从以下几个问题进行介绍吧:

  • 为什么要提出可变的神经网络?
  • 论文的主要贡献在哪里?
  • 可变卷积层是怎么样实现的?

为什么要提出可变的神经网络?

怎么样在计算机视觉识别上更好的适应物体在大小,姿态,角度上的几何变换?

通俗地说就是一个物体比如杯子,由于拍摄的远近,视角等因素最后呈现的样子在大小,角度上都会有差别,那怎么样更好的在这些差别存在的情况下识别这个杯子呢?

一般来说,有2种方法可以解决这个问题:

  1. 用充分多的变种构建训练数据库;
    还是以杯子为例,即采集不同大小,姿势的杯子作为训练数据。
  2. 用变换不变特征;
    例如尺度不变特征转换的SIFT就属于这一类方法。

这两种方法都具有一些共同的局限性:

  • 都假定几何变换是固定的且可以预知的,对于新出现的任务处理效果不好;
  • 手动去采集或者设计不同的特征非常的困难。

广泛应用于深度学习的CNN网络也由于其卷积核是固定的形状,所以很难处理这种变换的情况。
以上就是现有方法对于解决几何变换问题的不足,哪里有需求,哪里就会有创新,这也正是该论文的闪光之处。

论文的主要贡献在哪里?

论文提出了两种用于提高CNN应对几何变换的建模能力:

  1. deformable convolution;
  2. deformable ROI pooling;
  3. 第一次发现在深度网络总学习稠密的空间变化对复杂的任务有帮助。

两个方法都是基于用额外的偏置来增强空间采样位置的想法,其基本原理都是类似的,因此本文只讲解可变卷积的实现,具体的可以详细去看论文。

可变卷积层是怎么样实现的?

核心思想

以2D卷积,3×3的卷积核为例,先上图:


图1
  • 图(a)是我们最熟悉的标准卷积网络。
  • 图(b)是变换之后的卷积采样点分布,轻绿色的表示原来的采样点,蓝色的表示变换后的采样点。
  • 图(c)是图(b)的一种特例:采样尺寸放大的情况。
  • 图(d)是图(b)的一种特例:采样尺寸放大+旋转的情况。

普通2D卷积的实质其实是用卷积核在输入特征上滑动,各个采样点乘上模板的权重之和得到一个新的值。
以图(a)为例,最中间的绿色点卷积后的值就等于9个采样点对应的x值乘上对应卷积核的权重之和。

这里注意一个思维的转换:采样点指的是原输入特征上对应点,权重指的是卷积核对应的值。

用数学方法来表示:
以坐标化的方式来表示接受域:

那么原输入特征中的点P0卷积后的值就等于:

其实就是就是采样点的值×卷积核权重之和。

那么可变卷积的实现是不是只需要改变采样点的位置即可。而这个改变就可以根据给每一个采样点+一个偏置deta-p(x方向的偏置,y方向的偏置)得到,偏置具体值仍然是通过神经网络学习的。。
以图b为例,每个轻绿色的点表示原来常规卷积下的采样点,现在每一个点都移到了新的位置(蓝色处),而且每个点的移动方向和长度都可以是不一样的。

这里先不管是偏置怎么样得到的,假设我们已经知道每个采样点对应的偏置值。那么点P0卷积之后的值就等于:

这样呢就完成了可变卷积的的部分,也就是我们看到的图(b)。

图(c)和图(d)都是图(b)的特殊情况。
图(c)中的采样区域变大了,很自然的可以想到这对于物体尺寸变化的处理效果是会比较好的,能比较完整地抽象到物体的特征。
图(d)也是同样的道理,可以很好的理解这种变换后的接受域对于物体尺寸变化+旋转之后的特征学习是有益的。

细节补充

由于学到的偏置一般都很小,新的坐标并不能落在整数的坐标点上,所以需要用到双线性插值来实现。
这里简单介绍一下是什么意思,对于我们的新采样点p_new, 大概率不会刚好落在整数的坐标点上,但它一定能找到与它最近的4个点,并且落在这4个点的内部。

那么就利用这四个点进行双线性插值即可,在scipy的包中提供了这个函数:
from scipy.ndimage.interpolation import map_coordinates

我们来看一下运行效果就知道了

import numpy as np
from scipy.ndimage.interpolation import map_coordinates as sp_map_coordinates

input=np.arange(12,dtype=float).reshape(3,4)
print input
coords=[[0.5,1.5,1.8],[0.5,1.2,2.0]]
output_array=sp_map_coordinates(input,coords,order=1)
print output_array

运行结果如下所示:

如上图,input为输入的数组,order=1 表示为线性插值。
coords里面存的是列表,为(npoints,2)大小的,左边的数组代表要插入的x坐标,右边的数组表示要插入的y坐标。即在此处要在原来的inputs中插入三个点,这是三个点的坐标分别为(0.5,0.5) (1.5,1.2) (1.8,2.0),以(0.5,0.5)为例,下标落在(0,0) , (0,1), (1,0), (1,1)这四个点之间,即要在在值0,1,4,5之间差值,所以这里用了双线性插值,最后得到的值为2.5

具体实现

这里论文中让我很惊艳的一点是:
上面的图1我们看到的好像是对卷积核的坐标做了偏置。
但其实还是上文提到的思维转换的问题:可变卷积是由改变采样点的位置决定的,而采样点是对于输入特征而言的。更宏观一点来看,它是对采样点对了偏置,就是对输入feature的每个位置学习一个offset。

这里给出论文中的结构图:

图2

这里的offset filed就是通过卷积层conv学到的偏置。
因为输入特征input feature map 上的每个点都需要一个偏置offset(x上的偏置,y上的偏置), 所以得到的offest field的平面大小的input feature map是一样的,但深度方向是input feature map的2倍(x,y两个方向的偏置)。
这样就得到每个点p的偏置窗口了,也就是得到了上文图1中的图(b)。
得到偏置窗口之后就可以用上文中的方式去得到最后的output feature map了。

写在最后

文中图片来自原文: Deformable Convolutional Networks

这真的是一篇创新点新奇的文章,超级推荐阅读。
有理解不到位的地方欢迎简信交流~~

转载记得注明出处,感激不尽。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容