论文地址 :Deformable Convolutional Networks
工程地址:github 链接

0. 摘要

  卷积神经网络对位置变化的建模存在天然缺陷,这是由于网络固定的位置结构。该论文提出两个新的模块来增强CNNs的这种建模能力,称为deformable convolution and deformable RoI pooling,两个模块的基本思想采样时增加额外的参数offets并学习这种偏移,新模块可以直接替换现有CNNs中的对应方法并且可以通过后向传播算法端到端训练,由此产生deformable convolutional networks。实验表明这两个模块对于目标检测任务和语义分割任务的精度都有一定的提升。

1. 介绍

  视觉任务的一大挑战在于如何在变形物体上有效泛化或者说在物体层面对各种变形进行建模,一般有两种方法,一是建立包含各种变形的数据集,而是使用具有平移不变性的特征和算法。然而这两种方法存在两个问题:

  • 变形有固定的方向而且可知
  • 手工设计的具有不变性的特征和算法对于具有复杂变形的物体,可能无法描述或这描述过于困难。

  尽管CNNs在各种计算机视觉任务上都取得了非常好的效果但是也无法完全解决上述两个问题,各种方法对物体变形的建模能力无非来自数据增广,大模型和简单设计的模块{比如最大池化在轻微的变形上的效果}
  简而言之,由于内部模块的结构,CNNs对大的未知的变换的建模能力天然不足:卷积单元对输入的特征图在固定的位置进行采样;池化层不断减小着特征图的尺寸;RoI池化层产生空间位置受限的RoI。网络内部缺乏能够解决这个问题的模块,这会产生显著的问题,例如,同一CNN层的激活单元的感受也尺寸都相同,这对于编码位置信息的浅层神经网络并不可取,因为不同的位置可能对应有不同尺度或者不同形变的物体,这些层需要能够自动调整尺度或者感受也的方法。再比如,目标检测虽然效果很好但是都依赖于基于特征提取的边界框,这并不是最优的方法,尤其是对于非网格状的物体而言。
  该论文介绍了两个新型的模块极大地增强了CNNs对于变形目标的建模能力,1) Deformable convolution: 在常规的网格状空间采样中加入2D偏移如下图所示; 2) Deformable RoI pooling: 在常规RoI池化的bin位置加入偏移。

  两个模块都是轻量的,通过增加较少的参数和计算用于offsets的学习,替换标准CNNs中对应的方法简单快捷形成的网络称为:Deformable ConvNets
  论文中提出的方法与空间变换网络和可变形模型共享浅层特征,二者都有变换相关的参数并且从数据中学习,不同在于论文提出的方法能够以较为简单有效的方式处理较为复杂的变形。

2. Deformable Convolutional Networks

  需要注意的是为了更好的形式化,下面的可变形卷积和RoI池化都不是在特征图的3D维度进行说明的,而是2D。

2.1 Deformable Convolution

  2D卷积包含两个步骤:1)使用常规的grid RRR在输入特征图x上进行采样;2)将这些采样结果以一个权重w进行归并。grid RRR定义了感受也尺寸和空洞,比如说R=[(−1,−1),(−1,0),...,(0,1),(1,1)]R=[(-1,-1),(-1,0),...,(0,1),(1,1)]R=[(−1,−1),(−1,0),...,(0,1),(1,1)]就定义了一个空洞率为1的3×33\times 33×3的核。
  对于输出特征图yyy中的每一个位置p0p_0p0​,有:
(1)y(p0)=∑pn∈Rw(pn)⋅x(p0+pn)y(p_0)=\sum_{p_n \in R}w(p_n) \cdot x(p_0+p_n) \tag{1}y(p0​)=pn​∈R∑​w(pn​)⋅x(p0​+pn​)(1)

  其中pnp_npn​是RRR中位置的枚举。
  在可变形卷积中常规网格RRR是经过偏移{δpn=n=1,...,N\delta p_n=n=1,...,Nδpn​=n=1,...,N},其中N=∣R∣N=|R|N=∣R∣,公式1就变为下面的形式:
(2)y(p0)=∑pn∈Rw(pn)⋅x(p0+pn+δpn)y(p_0)=\sum_{p_n \in R}w(p_n) \cdot x(p_0+p_n+\delta p_n)\tag{2}y(p0​)=pn​∈R∑​w(pn​)⋅x(p0​+pn​+δpn​)(2)

  这样一来,采样就在不规则且有偏移的位置pn+δpnp_n+\delta p_npn​+δpn​上进行,因为偏差δpn\delta p_nδpn​比较所以通过双线性差值实现:
(3)x(p)=∑qG(q,p)⋅x(q)x(p)=\sum_q G(q,p) \cdot x(q)\tag{3}x(p)=q∑​G(q,p)⋅x(q)(3)

  其中p表示任意的位置(公式2中p=p0+pn+δpnp=p_0+p_n+\delta p_np=p0​+pn​+δpn​),q从特征图x的所有位置中选择,G(⋅,⋅)G(\cdot,\cdot)G(⋅,⋅)是双线性插值的核函数,是二维的所以可以分成两个以为的核:
(4)G(q,p)=g(qx,px)⋅g(qy,py)G(q,p)=g(q_x,p_x)\cdot g(q_y,p_y)\tag{4}G(q,p)=g(qx​,px​)⋅g(qy​,py​)(4)

  其中g(a,b)=max(0,1−∣a−b∣)g(a,b)=max(0,1-|a-b|)g(a,b)=max(0,1−∣a−b∣)。公式3的计算是非常快的因为G(q,p)G(q,p)G(q,p)除了少数的qs其他位置都是0。

  如上图所示,偏差是通过一个卷几层来获得的,其卷积核与普通的卷积层无异。输出的偏差域和输入特征图的尺寸相同,通道维度的2N对应N 二维偏移。生成偏移和输出特征的卷积核同时训练,为了学习偏移,梯度通过双线性操作后向传播。

2.2 Deformable RoI Pooling

  普通的RoI将输入的任意尺寸的矩形区域转化为固定大小的特征,给定输入特征图x,和一个尺寸为w×hw \times hw×h的RoI和左上角坐标点p0p_0p0​,RoI池化层将RoI分为k×kk \times kk×k个容器并且输出一个k×kk\times kk×k的特征图y,对于第(i,j)个容器的(0≤i,j≤k0 \leq i,j \leq k0≤i,j≤k),有:
(5)y(i,j)=∑p∈bin(i,j)x(p0+p)/nijy(i,j)=\sum_{p \in bin(i,j)} x(p_0+p)/n_{ij}\tag{5}y(i,j)=p∈bin(i,j)∑​x(p0​+p)/nij​(5)

  其中nijn_{ij}nij​是容器中像素点的数量,且对于第(i,j)个容器有:[iwk]≤px&lt;[(i+1)wk]且[jwk]≤py&lt;[(j+1)wk][i\frac{w}{k}] \leq p_x &lt;[(i+1)\frac{w}{k}]且[j\frac{w}{k}] \leq p_y &lt;[(j+1)\frac{w}{k}][ikw​]≤px​<[(i+1)kw​]且[jkw​]≤py​<[(j+1)kw​]。
  与公式2相同,在可变形RoI池化中,偏移{δpij∣0≤i,j&lt;k\delta p_{ij}|0 \leq i,j&lt;kδpij​∣0≤i,j<k}加到容器中,公式5变为:
(5)y(i,j)=∑p∈bin(i,j)x(p0+p+δpij)/nijy(i,j)=\sum_{p \in bin(i,j)} x(p_0+p+\delta p_{ij})/n_{ij}\tag{5}y(i,j)=p∈bin(i,j)∑​x(p0​+p+δpij​)/nij​(5)

  如下图所示,首先RoI池化层(公式5)生成池化特征图,之后应用一个全连接层生成正则化的偏移δp^ij\delta \hat p_{ij}δp^​ij​,然后通过逐元素的乘法δpij=γ⋅δp^ij∘(w,h)\delta p_{ij}=\gamma \cdot \delta \hat p_{ij} \circ(w,h)δpij​=γ⋅δp^​ij​∘(w,h)转化为偏移δpij\delta p_{ij}δpij​,其中γ\gammaγ是预先设定好的缩放因子用于调整偏移的量级,取经验值0.1。

之后就是实验和与当时SOTA方法的结合以及相关工作部分{第一次见到这个部分放在后面~孤陋寡闻了}

欢迎扫描二维码关注微信公众号 深度学习与数学   [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]

论文阅读-可变形卷积网络:Deformable Convolutional Networks相关推荐

  1. 可变形卷积网络--Deformable Convolutional Networks

    https://arxiv.org/abs/1703.06211 Microsoft Research Asia Code coming soon 本文可以看做是对 Spatial Transform ...

  2. 图卷积网络(Graph Convolutional Networks, GCN)详细介绍

    本文翻译自博客. 在这篇博文中会为大家详细地介绍目前使用广泛的图神经网络--图卷积网络(Graph Convolutional Networks, GCN)的相关知识.首先将带领大家直觉上感受其工作原 ...

  3. 论文阅读课1-Attention Guided Graph Convolutional Networks for Relation Extraction(关系抽取,图卷积,ACL2019,n元)

    文章目录 abstract 1.introduction 1.1 dense connection+GCN 1.2 效果突出 1.3 contribution 2.Attention Guided G ...

  4. 论文阅读笔记《Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation》

    文章目录 论文原文 摘要 介绍 相关工作 基于会话的推荐SBR 超图学习 自我监督学习 具体实现方法 符号和定义 定义1,超图 定义2:超图的线图 超图的构造 双通道超图卷积网络 超图通道和卷积 线图 ...

  5. 【GCN】图卷积网络 Graph Convolutional Networks

    公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 作者 | Frank Cao 专栏 | 深度学习 地址 | https://zhuanlan. ...

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

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

  7. 视频重建论文EDVR: Video Restoration with Enhanced Deformable Convolutional Networks阅读笔记

    论文来源:CVPRW2019 论文链接:http://ieeexplore.ieee.org/document/9025464 项目地址:GitHub - xinntao/EDVR: Winning ...

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

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

  9. 论文笔记之EDVR: Video Restoration with Enhanced Deformable Convolutional Networks

    EDVR: Video Restoration with Enhanced Deformable Convolutional Networks 金字塔.级联和可变形卷积的对齐 时间空间注意力融合 整体 ...

  10. Deformable Convolutional Networks论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

最新文章

  1. java map 内存_java 使用对象和Map保存字符串占用存储空间对比
  2. linux配置静态IP后ping外网不通的解决方案
  3. [How TO]-如何编写Linux kernel documentation
  4. Android——Activity去除标题栏和状态栏
  5. 高等数学下-赵立军-北京大学出版社-题解-练习10.1
  6. leetcode133. 克隆图(bfs)
  7. php路由类默认模块,微擎入口路由及其模块入口路由 - YangJunwei
  8. linux里netstat与ps,linux命令——ps和netstat
  9. 【软件工程导论】软件工程学概述
  10. Jmeter中生成随机函数和使用csv文件数据
  11. 读书笔记之《Redis开发与运维》—— 一
  12. 移动路由器刷linux,家用WIFI路由器硬改刷系统(DIY智能路由器)
  13. 计算机装系统找不到硬盘分区,解决安装系统找不到硬盘的问题(图文)
  14. excel两列数据对比找不同_数据相差太大在Excel图表对比柱形图,那是你不会次坐标设置!...
  15. VSCode: Acquiring CodeLLDB platform package 速度慢
  16. Java基础----【异常、线程】
  17. 列出所有的电影ID,名字和销售总额(以百万美元为单位计算)
  18. 恐怖的广告推送。其实,我们每天都在“裸奔”!
  19. 【不忘初心】Win11_21H2_22000.100_X64_四合一[纯净精简版][2.9G](2021.8.5)
  20. 「科普」一文读懂生产制造MES系统

热门文章

  1. 大二实习使用的技术汇总(中)
  2. Good Bye 2018 (A~F, H)
  3. DOM.getBoundingClientRect()
  4. JDK 1.8 - 1.7
  5. SPOJ - LCS 后缀自动机入门
  6. java7-3 继承
  7. usaco-1.1.1-PROB Your Ride Is Here
  8. 解决Fedora中root无法登录问题
  9. Springboot2.X + screw数据库快速开发文档
  10. JavaScript - 理解面向对象编程