一、空洞卷积

空洞卷积是是为了解决基于FCN思想的语义分割中,输出图像的size要求和输入图像的size一致而需要upsample,但由于FCN中使用pooling操作来增大感受野同时降低分辨率,导致upsample无法还原由于pooling导致的一些细节信息的损失的问题而提出的。为了减小这种损失,自然需要移除pooling层,因此空洞卷积应运而生。

所谓空洞卷积,有一种理解就是在卷积核中注入空洞(即0),注入的空洞的数量由参数dilation决定,以 卷积核为例,dilation=2即在卷积核每行每列中间加0 ,将卷积核变为 。如下图所示:

二、空洞卷积核的计算

(a) 普通卷积,1-dilated convolution,卷积核的感受野为3x33×3
(b) 扩张卷积,2-dilated convolution,卷积核的感受野为7x77×7
(c) 扩张卷积,4-dilated convolution,卷积核的感受野为15x1515×15

由以上可归纳,当普通卷积核大小为ksize(如上图ksize=3)的时候,n-dilated convolution的膨胀卷积核大小为:

[(n-1)*(ksize+1)+ksize]×[(n-1)*(ksize+1)+ksize]

有了这个公式,当给定n和ksize,就可以计算出膨胀卷积核,然后在以下方法计算出感受野即可。

三、空洞卷积的感受野

  OUT = (IN − FILTER + 2×PADDING )/STRIDE+1

  • IN:输入Feature Map
  • OUT:输出Feature Map
  • FILTER:卷积核的尺寸
  • PADDING:补零圈数
  • STRIDE:滑动步长

卷积操作就是IN->OUT的过程,而求感受野是从OUT->IN的过程。假设不考虑PADDING,那么卷积公式变成:

  OUT = (IN − FILTER )/STRIDE+1

因此,OUT->IN的,

  IN = (OUT-1)×STRIDE+FILTER

计算某一层的一个特征图上的一个像素在原图上的感受野,就从该像素(OUT=1)开始,向前推算(使用FOR循环)。

这里的IN就是对应的感受野r。

OUT代表前一层的输出m。

FILTER:ksize

STRIDE:stride

##################################

以下内容来自

知乎:https://zhuanlan.zhihu.com/p/43784441

作者:机器学习学习之路

##################################

所以有cnn感受野计算公式: 这里 为本层感受野, 上层感受野, 卷积或池化的步长, 卷积核大小。例子如下(初始感受野大小为1):

卷积(stride=1): 感受野为

池化(stride=2): 感受野为

卷积(stride=3): 感受野为

空洞卷积的感受野计算方法和上面相同所谓的空洞可以理解为扩大了卷积核的大小,下面来介绍一下空洞卷积的感受野变化(卷积核大小为 ,stride=1,下面的卷积过程后面的以前面的为基础):

1-dilated conv:rate=1的卷积其实就是普通 因此 )卷积因此感受野为

2-dilated conv:rate=2可以理解为将卷积核变成了 ,因此 )感受野大小为

4-dilated conv:rate=3可以理解为将卷积核变成了 因此 )感受野大小为 15×15

可以看到将卷积以上面的过程叠加感受野变化会指数增长,感受野公式为

####################################

空洞卷积(dilated Convolution) 与感受野(Receptive Field)的更多相关文章

  1. [翻译] 扩张卷积 (Dilated Convolution)

    英文原文: Dilated Convolution 简单来说,扩张卷积只是运用卷积到一个指定间隔的输入.按照这个定义,给定我们的输入是一个2维图片,扩张率 k=1 是通常的卷积,k=2 的意思是每个输 ...

  2. 关于感受野 (Receptive field) 你该知道的事

    Receptive field 可中译为“感受野”,是卷积神经网络中非常重要的概念之一. 我个人最早看到这个词的描述是在 2012 年 Krizhevsky 的 paper 中就有提到过,当时是各种不 ...

  3. 神经网络中的感受野(Receptive Field)

    在机器视觉领域的深度神经网络中有一个概念叫做感受野,用来表示网络内部的不同位置的神经元对原图像的感受范围的大小.神经元之所以无法对原始图像的所有信息进行感知,是因为在这些网络结构中普遍使用卷积层和po ...

  4. Dilated Convolutions 空洞卷积

    Dilated Convolutions,中文一般称为空洞卷积或者扩张卷积,是一种改进的图像卷积方法. 扩张卷积工作示意图如下: 图a是普通的卷积,感受野是3*3,相当于扩充dilation=0 图b ...

  5. CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等

    CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量.我下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中 ...

  6. Understanding the Effective Receptive Field in Deep Convolutional Neural Networks

    Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解深度卷积神经网络中的有效感受野 ...

  7. 各种卷积类型Convolution

    从最开始的卷积层,发展至今,卷积已不再是当初的卷积,而是一个研究方向.在反卷积这篇博客中,介绍了一些常见的卷积的关系,本篇博客就是要梳理这些有趣的卷积结构. 阅读本篇博客之前,建议将这篇博客结合在一起 ...

  8. 机器视觉:Convolutional Neural Networks, Receptive Field and Feature Maps

    CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic se ...

  9. Receptive Field Block Net for Accurate and Fast Object Detection

    Receptive Field Block Net for Accurate and Fast Object Detection 作者:Songtao Liu, Di Huang*, and Yunh ...

随机推荐

  1. 如何优雅的将DTO转化成BO

    用于网络传输的对象,我们都认为他们可以当做是DTO对象,DTO为系统与外界交互的模型对象,那么肯定会有一个步骤是将DTO对象转化为BO对象或者是普通的entity对象,让service层去处理. 网上 ...

  2. Kotlin入门简介

    Kotlin的“简历” 来自于著名的IDE IntelliJ IDEA(Android Studio基于此开发) 软件开发公司 JetBrains(位于东欧捷克) 起源来自JetBrains的圣彼得堡 ...

  3. Android获取长按按键响应

    Android获取长按按键响应http://www.2cto.com/kf/201312/261719.html Android下Listview的onItemClick以及onItemLongCli ...

  4. RabbitMQ 中 Connection 和 Channel 详解

    我们知道无论是生产者还是消费者,都需要和 RabbitMQ Broker 建立连接,这个连接就是一条 TCP 连接,也就是 Connection. 一旦 TCP 连接建立起来,客户端紧接着可以创建一个 ...

  5. Ansible10:Playbook的角色及包含

    目录 说明 一.Playbook的包含 1.tasks包含 2.handlers包含 3.混合包含 二.角色(roles) 1.创建role 2.引用roles 3.pre_tasks和post_ta ...

  6. (转)tomcat+nginx+redis实现均衡负载、session共享(一)

    在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) ...

  7. 浅谈splay(点的操作)

    浅谈splay(点的操作) 一.基本概念 splay本质:二叉查找树 特点:结点x的左子树权值都小于x的权值,右子树权值都大于x的权值 维护信息: 整棵树:root 当前根节点  sz书上所有结点编号 ...

  8. [Apio2012]dispatching 主席树做法

    bzoj 2809: [Apio2012]dispatching http://www.lydsy.com/JudgeOnline/problem.php?id=2809 Description 在一 ...

  9. 提高PowerShell脚本效率的五个常用方法

    PowerShell脚本运行慢怎么办?影响到正常企业流程正常运转怎么办?本文利用例子和数据给大家带来让PowerShell运行更快的五个常用方法.本人拙见,希望能够给大家带来一点启发~ 1. 善用命令 ...

  10. 20155231 2016-2017-2 《Java程序设计》第7周学习总结

    20155231 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 学习目标 了解Lambda语法 了解方法引用 了解Fucntional与Stream API ...