• 论文标题:Deformable Convolutional Networks

  • 论文链接:https://arxiv.org/abs/1703.06211

所要解决的问题

视觉识别的关键挑战是如何在对象比例、姿势等形变问题上适应几何变化或对几何转换建模。一般情况下有以下两种方法:

  • 1、通常是对数据集进行仿射变换。如角度变化、剪切等以此来扩充数据集,增加算法的鲁棒性。

  • 2、使用变换不变的特征和算法。如SIFT和基于滑动窗口的对象检测。

这两种方法都有很大的局限性:几何形变被假设是固定和已知的,这是一种先验信息,用这些已知的形变去处理未知的形变是不合理的;手工设计的特征或算法无法应对过度复杂的形变,即使该形变是已知的。

所以本文作者提出了两种模块可以大大提高CNN对目标几何变换的鲁棒性。

简介

本文提出了两种模块:

  • Deformable convolution:它将2D偏移量添加到标准卷积中的常规网格采样位置,可以使采样网格自由变形。如下图所示。这些offset是通过附加的卷积层从前面的特征图中学习的。因此,变形以局部,密集和自适应的方式取决于输入特征。

(a)是常见的3x3卷积核的采样方式,(b)是采样可变形卷积,加上偏移量之后的采样点的变化,其中(c)(d)是可变形卷积的特殊形式

  • Deformable ROI polling:它为ROI Pooling的常规bin分区的每个位置添加了一个offsetoffset也是从先前的特征图和ROI polling中学习,从而可以对具有不同形状的对象进行自适应定位。

这两个模块都是轻量级的,它们为offset learning添加少量参数和计算,可以很稳定的替换CNN中的常规卷积。并可以通过反向传播进行端到端的训练。

Deformable Convolution Networks

Deformable convolution

在可变形卷积中,可变形卷积操作和池化操作都是2维的,都是在同一channel上进行的,常规的卷积操作主要可以分为两部分:

(1)在输入的feature map上使用规则网格R进行采样;

(2)进行加权运算,R定义了感受野的大小和扩张。

常规卷积对于在输出的feature map上的每个位置P0,通过下列式子进行计算:

其中,Pn是对R中所列位置的枚举。

可变形卷积的操作是不同的,在可变形网络的操作中,常规的规则网格R通过增加一个偏移量进行扩张,同样的位置P0变为:

现在,采样的位置变成了不规则位置,由于偏移量△Pn通常是小数,因此我们通过双线性插值法进行实现,公式为:

如下图所示,大体流程为,在输入的feature map中,原始的通过sliding window得到的是绿框,引入可变形卷积后,我们把原来的卷积网路分为两路,共享input feature map,其中上面的一路用一个额外的conv层来学习offset,得到HW2N的输出offset,其中,2N的意思是有x,y两个方向的偏移,得到这个之后,我们对原始卷积的每一个窗口,都不再是原来规整的sliding window(input feature map中的绿框)而是经过平移后的window(input feature map中的篮框),取得数据后计算过程和常规卷积一样,即input feature map和offset共同作为deformable conv层的输入。

Deformable ROI Polling

ROI Pooling模块是two-stage中常见的池化方法,基于目标检测方法中所有的region proposal。将任意输入大小的矩形调整为固定尺寸大小的feature。给定input feature map x 和一个大小为w * h,位于左上角的区域P0,ROI Pooling将会把这个ROI划分为k*k个bins,同时输出一个size为k * k的feature map y,可以用如下公式表示:

其中,nij是bin中像素的数量 有了这个基础,我们再来看可变形池化,公式如下:

相比普通ROI Pooling,同样增加了一个offset,下图为其网络结构:具体操作为,首先,通过普通的ROI Pooling得到一个feature map,如下图中的绿色块,通过得到的这个feature map,加上一个全连接层,生成每一个位置的offset,然后按照上面的公式得到△Pij,为了让offset的数据和ROI 的尺寸匹配,需要对offset进行微调。全连接层的参数可以通过反向传播进行学习。

把可变形卷积用在SOTA网络结构上

可变形过滤器的三个级别采样位置

可变形ROI Polling的offset阐述

可变形卷积应用在RCNN、Faster-RCNN等SOTA网络架构

由上述表可以得到:把Deformable ConvNet应用到RCNN、Faster—RCNN上,性能都得到了不错的提升,说明可变形网络可行且有效。

结论

本文提出了可变形的ConvNets,它是一种简单,高效,深入且端到端的解决方案,用于对密集的空间变换进行建模。结果表明,对于复杂的视觉任务,比如目标检测和语义分割,可变形卷积都可以大幅度提高各项性能。

简单的代码实现

https://github.com/4uiiurz1/pytorch-deform-conv-v2

可变形卷积神经网络 | Deformable Network相关推荐

  1. 更灵活、有个性的卷积——可变形卷积(Deformable Conv)

    作者简介 CW,广东深圳人,毕业于中山大学(SYSU)数据科学与计算机学院,毕业后就业于腾讯计算机系统有限公司技术工程与事业群(TEG)从事Devops工作,期间在AI LAB实习过,实操过道路交通元 ...

  2. 可变形卷积(Deformable Convolution)

    可变形卷积 前言: 一.可变形卷积 1.原文摘要(Abstract) 2.可变形卷积 前言: 之前分了两次将深度学习中常用的各种卷积操作进行了汇总介绍,具体包括标准2D卷积.1×1卷积.转置卷积.膨胀 ...

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

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

  4. 深度学习之 DCN(Deformable Convolution)-可变形卷积

    Paper link: http://openaccess.thecvf.com/content_ICCV_2017/papers/Dai_Deformable_Convolutional_Netwo ...

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

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

  6. 可变形卷积(Deformable Conv)原理解析与torch代码实现

    1. 可变形卷积原理解析 1.1 普通卷积原理 传统的卷积操作是将特征图分成一个个与卷积核大小相同的部分,然后进行卷积操作,每部分在特征图上的位置都是固定的. 图1 普通卷积过程 图1所示为普通卷积在 ...

  7. 常用的卷积神经网络-1-卷积和通道

    文章目录 CNN 1. CNN基本结构 2. 卷积和通道 2.1 分组卷积(Group Convolution) 2.2 Convolution VS Group Convolution 2.3 Gr ...

  8. 深度学习【5】卷积神经网络CNN(2)

    文章目录 一.卷积的变种 1.分组卷积 (1).定义 (2).优势 (3).应用场景 2.转置卷积 (1).定义 (2).优势 (3).具体步骤 (4).应用场景 3.空洞卷积 (1).定义 (2). ...

  9. 卷积神经网络(CNN)的进化史以及常用的CNN框架

    引言 首先用下面一张图简单回顾CNN的结构,CNN的最大特性就是局部连接和参数共享. # 2D-CNN 首先看一下最一般的二维空间Feature-Map CNN.输入的是一个矩阵,输出的也是一个矩阵, ...

最新文章

  1. 今晚8点开播 | 深度解析知识图谱发展关键阶段技术脉络
  2. 科大讯飞年报出炉,2018每天赚148万元,53%是政府补助
  3. ACCESS高级注入
  4. object-c中的bool
  5. time,gettimeofday,clock_gettime,_ftime
  6. 最简单的React和Redux整合的例子
  7. 机器学习基石HOW部分(1)
  8. linux firewalld
  9. 一位程序员妹纸讲述她是如何拿到美团offer的?
  10. 使用flatten-maven-plugin对发布的POM进行精简
  11. 《基于MFC的OpenGL编程》Part 7 Animation
  12. 海马玩关联android,Android ADB连接海马玩模拟器
  13. python 物理引擎 摩擦力_为什么单机游戏中的碰撞很不真实?物理引擎真的很难做到和现实一样吗?...
  14. CVPR 2021 目标检测论文大盘点(65篇论文)
  15. 开源硬件的舞者--WIZnet
  16. 机房环动监控系统作用
  17. LaTex引用中文论文
  18. Layer For Mobile
  19. 基于TIA博途SCL语言的设备累计运行时间FB函数库_具体方法及程序示例
  20. js中的includes用法

热门文章

  1. nginx+tomcat+redis负载均衡,实现session共享
  2. 读取数据库并写入excel表中 发送邮件
  3. centos7.3部署django用uwsgi和nginx[亲测可用]
  4. Oracle or Question Solve(二)
  5. 编写让别人能够读懂的代码
  6. 【译】《Pro ASP.NET MVC4 4th Edition》第三章(二)
  7. 利用request库请求api
  8. XM7 FOR ANDROID,如何使用Android Studio开发Gradle插件
  9. 回溯算法——复原IP地址(Leetcode 93)
  10. 手机点餐系统概述_疫情之下,无接触点餐模式再成热搜,扫码点餐系统能不能普及?...