点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

作者丨玖零猴@知乎

来源丨https://zhuanlan.zhihu.com/p/113285797

极市导读

空洞卷积在图像分割需要增加感受野同时保持特征图的尺寸的需求中诞生,本文详细介绍了空洞卷积的诞生、原理、计算过程以及存在的两个潜在的问题,帮助大家将空洞卷积这一算法“消化吸收”。

一、空洞卷积的提出

空洞卷积中文名也叫膨胀卷积或者扩张卷积,英文名也叫Atrous Convolution

空洞卷积最初的提出是为了解决图像分割的问题而提出的,常见的图像分割算法通常使用池化层和卷积层来增加感受野(Receptive Filed),同时也缩小了特征图尺寸(resolution),然后再利用上采样还原图像尺寸,特征图缩小再放大的过程造成了精度上的损失,因此需要一种操作可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样操作,在这种需求下,空洞卷积就诞生了(略有修改,引自[4])

玖零猴:感受野(Receptive Field)的理解与计算@玖零猴

https://zhuanlan.zhihu.com/p/113487374

当然,如果不用空洞卷积这种方案,那怎么去弥补经过下采样而造成信息损失呢?其实,这是另一个思路了,于是才有了我们熟知的skip connection,它可以为上采样弥补信息,像FCN、U-Net这种典型的拓扑网络,如下图所示,其实我个人认为,如果一个问题如果从不同的思路去想的话,就会出现不同的解决方案

图1 FCN、U-Net典型的分割拓扑结构:下采样、上采样、skip connection(图来自[6])

空洞卷积自2016在ICLR(International Conference on Learning Representation)上才被提出后,本身是用在图像分割领域,但立马被deepmind拿来应用到语音(WaveNet)和NLP领域,它在物体检测也发挥了重要的作用,虽然不要求逐个像素检测,但对于小物体的检测也是十分重要的

二、空洞卷积的原理

与正常的卷积不同的是,空洞卷积引入了一个称为 “扩张率(dilation rate)”的超参数(hyper-parameter),该参数定义了卷积核处理数据时各值的间距。扩张率中文也叫空洞数(Hole Size)。

在此以 卷积为例,展示普通卷积和空洞卷积之间的区别,如图2所示

图2 普通卷积和空洞卷积的对比(来自[4])

图2中从左到右分别为a、b、c子图,三幅图是相互独立进行卷积的(区别于下面图4),大框表示输入图像(感受野默认为1),黑色的圆点表示的卷积核,灰色地带表示卷积后的感受野(后面有相关计算公式,这里都是一层卷积的,直接可以看出来)

  • a是普通的卷积过程(dilation rate = 1),卷积后的感受野为3

  • b是dilation rate = 2的空洞卷积,卷积后的感受野为5

  • c是dilation rate = 3的空洞卷积,卷积后的感受野为8

可以这么说,普通卷积是空洞卷积的一种特殊情况

另外,空洞卷积可以增大感受野,但是可以不改变图像输出特征图的尺寸(分辨率,resolution),这句话怎么理解?

为了更好地理解这一点,我们从一维去分析容易理解点

图3 一维版的普通卷积(a、b)和空洞卷积(c),黑色的圆表示填充部分,a、b、c它们相互独立进行卷积 (来自[8])

从b和c可以看出,有无空洞卷积,并不影响输出特征图的尺寸,也就是说输出特征图的尺和空洞数无关,因此可以利用空洞卷积增大感受野,而输出特征图的尺寸可以保持不变

影响输出特征图尺寸的因素有输入特征图的尺寸  ,卷积核的大小  ,填充  ,步长  ,计算公式如下:

由于保持特征图尺寸不变,所以导致了计算过程的计算量比较大

保持住特征图不变,那怎么能利用多尺度信息?

在解答这个问题之前,先补充两点知识

知识一:我们知道,神经元感受野的值越大表示其能接触到的原始图像范围就越大,也意味着它可能蕴含更为全局,语义层次更高的特征;相反,值越小则表示其所包含的特征越趋向局部和细节。因此感受野的值可以用来大致判断每一层的抽象层次。

知识二:在赢得其中一届ImageNet比赛里VGG网络的文章中,他最大的贡献并不是VGG网络本身,而是他对于卷积叠加的一个巧妙观察。1个 7 x 7 的卷积层的正则等效于 3 个 3 x 3 的卷积层的叠加。而这样的设计可以大幅度的减少参数,有正则化的效果,参数少了就没那么容易发生过拟合。这也是现在绝大部分基于卷积的深层网络都在用小卷积核的原因,常常使用3 x 3的卷积核

一般每一层的卷积核都是用3 x 3 大小的,而每一层只要设置不同dilation rate时,感受野就会不一样,也即获取了多尺度信息,当然这样操作并不影响特征图的尺寸,这样一来,又避免下采样那样造成信息损失,同时也利用到多尺度信息,真是一举两得啊

获取多尺度信息在视觉任务中相当重要,尤其是在Dense prediction(对每个像素进行分类)问题上,它能够提高准确性的,如语义分割

dense prediction problems such as semantic segmentation ... to increase the performance of dense prediction architectures by aggregating multi-scale contextual information(来自[1])

三、感受野的计算

为了好看,我们把图2放下来

图2 普通卷积和空洞卷积的对比(来自[4])

从图2可以看出,同样一个  的卷积,却可以起到  、  等卷积的效果,空洞卷积在不增加参数量的前提下(参数量=卷积核大小+偏置),却可以增大感受野,假设空洞卷积的卷积核大小为  ,空洞数为  ,则其等效卷积核大小  ,例如  的卷积核,则  ,公式如下(来自[4])

当前层的感受野计算公式如下,其中,  表示当前层的感受野,  表示上一层的感受野,  表示卷积核的大小


表示之前所有层的步长的乘积(不包括本层),公式如下:

同样的,当前层的步长并不影响当前层的感受野,感受野和填补(padding)没有关系

下面举个例子练练手,此图4和上面的图2有区别,图2的三幅图是独立的,而图4是从左到右连续进行卷积,它们属于top-bottom关系

图4 三个不同的空洞卷积,卷积核的kernel size=3, stride=1, 但是空洞卷积的dilation rate分别是1,2,4。默认初始化感受野是1。(来自[1])

感受野的计算

输入图像: 1

第一层卷积:3

第二层卷积:



综上,得

第三层卷积:



综上,得

四、潜在的问题及解决方法

潜在问题 1:The Gridding Effect

假设我们仅仅多次叠加 dilation rate 2 的 3 x 3 kernel 的话,则会出现这个问题:

由于空洞卷积的计算方式类似于棋盘格式,某一层得到的卷积结果,来自上一层的独立的集合,没有相互依赖,因此该层的卷积结果之间没有相关性,即局部信息丢失。这对 pixel-level dense prediction 的任务来说是致命的。

潜在问题 2 :Long-ranged information might be not relevant.

远距离获取的信息没有相关性:由于空洞卷积稀疏的采样输入信号,使得远距离卷积得到的信息之间没有相关性,影响分类结果。

解决方案

具体可参考[5,9]

  • Panqu Wang,Pengfei Chen, et al**.Understanding Convolution for Semantic Segmentation.//**WACV 2018

  • Fisher Yu, et al. Dilated Residual Networks. //CVPR 2017

  • Zhengyang Wang,et al.**Smoothed Dilated Convolutions for Improved Dense Prediction.//**KDD 2018.

  • Liang-Chieh Chen,et al.Rethinking Atrous Convolution for Semantic Image Segmentation//2017

  • Sachin Mehta,et al. ESPNet: Efficient Spatial Pyramid of DilatedConvolutions for Semantic Segmentation. //ECCV 2018

  • Tianyi Wu**,et al.Tree-structured Kronecker Convolutional Networks for Semantic Segmentation.//AAAI2019**

  • Hyojin Park,et al.Concentrated-Comprehensive Convolutionsfor lightweight semantic segmentation.//2018

  • Efficient Smoothing of Dilated Convolutions for Image Segmentation.//2019

reference

1、Yu, Fisher, and Vladlen Koltun. "Multi-scale context aggregation by dilated convolutions." arXiv preprint arXiv:1511.07122 (2015).(https://arxiv.org/abs/1511.071220)

2、Understanding Convolution for Semantic Segmentation(https://arxiv.org/abs/1702.08502)

3、Rethinking Atrous Convolution for Semantic Image Segmentation(https://arxiv.org/abs/1706.05587)

4、书籍《深度学习之PyTorch物体检测实战》

5、如何理解空洞卷积(dilated convolution)?(https://www.zhihu.com/question/54149221)

6、U-Net++作者对U-Net的分析(https://zhuanlan.zhihu.com/p/44958351)

7、GIF动图,加深普通卷积和空洞卷积的区别: https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md

8、如何理解Dilated Convolutions(空洞卷积)

9、yyfyan:总结-空洞卷积(Dilated/Atrous Convolution)(https://zhuanlan.zhihu.com/p/50369448)

小白团队出品:零基础精通语义分割↓↓↓下载1:OpenCV-Contrib扩展模块中文版教程在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。交流群欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

吃透空洞卷积(Dilated Convolutions)相关推荐

  1. 空洞卷积(Dilated Convolutions)

    在深度学习中,我们常见的就是卷积神经网络.这篇博客来给大家介绍一下空洞卷积跟普通卷积的区别. 空洞卷积的应用处:空洞卷积(dilated convolution)是针对图像语义分割问题中下采样会降低图 ...

  2. 总结-空洞卷积(Dilated/Atrous Convolution)、gridding问题以及解决方案、训练技巧BN和PReLU、CReLU

    这里有个可视化.直观的图:https://github.com/vdumoulin/conv_arithmetic https://zhuanlan.zhihu.com/p/50369448 http ...

  3. 膨胀卷积(空洞卷积 dilated convolution)

    学习的B站大佬的视频大部分图片来自于课中,文章结尾有大佬视频链接,以及阅读<深度学习之pytorch物体检测实战>,刚开始学习可能有些错误,希望大佬指正 1.空洞卷积了解 空洞卷积最初是为 ...

  4. 空洞卷积(dilated convolution)理解

    1.简介 Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) 或者是 Convolution with holes 从字面上就很好理解,是在标准的 convoluti ...

  5. 膨胀卷积(DILATED CONVOLUTIONS)

    膨胀卷积(DILATED CONVOLUTIONS)是在卷积核的元素之间插入一些额外的空间,而插入空间的量由参数膨胀因子d (dilation rate)来控制, 通常有d-1个空间在卷积核元素之间被 ...

  6. 空洞卷积dilated conv

    空洞卷积 a.b.c图卷积核均为3*3,图a和普通的卷积操作一样,a)图对应3x3的1-dilated conv,b)图对应3x3的2-dilated conv,2-dilated conv的前一层是 ...

  7. 深度学习之空洞卷积(Dilated/Atrous Convolution)

    空洞卷积 Convolution with holes 是在标准的卷积映射(convolution map )里注入空洞,以此来增加感受野( reception field),捕获多尺度上下文信息. ...

  8. casual Convolution因果卷积、空洞卷积dilated convolution、Hybrid Dilated Convolution (HDC)

    1.因果卷积 2.空洞因果卷积 3.HDC https://blog.csdn.net/qq_26369907/article/details/97624028 https://blog.csdn.n ...

  9. 因果卷积(causal Convolutions)和扩展卷积(Dilated Convolutions)

    背景 对于序列问题(Sequence Modeling)的处理方法,通常采用RNN或者LSTM,例如处理一段视频/音频,往往会沿着时间方向(时序)进行操作.通常CNN网络都被认为适合处理图像数据而不适 ...

  10. 空洞卷积原理详解及其pytorch代码实现

    一.空洞卷积 1.1 普通小卷积核卷积-池化-再上采样会出现的问题 Up-sampling / pooling layer (e.g. bilinear interpolation) is deter ...

最新文章

  1. linux中 用户管理命令,Linux中的常用用户和用户组管理命令
  2. 按照linux文件出现的时间来删除文件
  3. ab压力测试工具linux,【Linux】ApacheBench(ab)压力测试工具
  4. SAP CRM BSP component在test mode下launch的执行顺序
  5. python 多进程并发_python并发编程之多进程
  6. Git Windows安装手册
  7. Android 程式开发:(二十)内容提供者 —— 20.6 自定义ContentProvider的使用
  8. mysql错误码 1045_MySql错误代码1045的解决方法
  9. Facebook Cache Token Issue
  10. webAppbuilder微件使用教程1 快速入门
  11. vue.js视频教程,vue.js视频教程下载
  12. 上班族中流行以貌取人 汉王人脸通变普及
  13. 【长篇肝文7万字】模电/数电/单片机/计算机组成原理/电力电子常见笔试/面试题(合集)未完更新ing
  14. linux硬盘修复软件,DiskGenius下载-硬盘修复软件(DiskGenius)官方版下载[电脑版]-PC下载网...
  15. 16种常见的竞品分析方法,建议收藏!
  16. wps底板颜色怎么去掉_wps怎么把复制网页的灰色阴影去掉 底纹去掉方法
  17. 瑞芯微RK3328_Demo(1)原理图参考
  18. 美国圣诞8日西海岸自驾游
  19. 快递查询 教你一个方法使用物流单号查询物流信息
  20. 74HC245三态输出八路信号收发器

热门文章

  1. ios签名php在线监控,IOS无需签名无需越狱H5网页在线封装APP教程
  2. win10 2016 LTSB
  3. Rainyday.js – 傻眼了!竟然有如此逼真的雨滴效果
  4. Html注释与Javascript注释的嵌套
  5. 真假屏幕测试软件,如何判断4K电视真假?测试方法在这里,最简单用手机就可以...
  6. 桌面时间的最佳管理者-软媒时间_我是亲民_新浪博客
  7. 三对角矩阵的压缩存储
  8. 实训笔记20190807--数据分析
  9. 广州科二化龙考场_广州市机动车驾驶人化龙考场交通路线攻略
  10. 苹果录屏功能没有声音_安卓最高清的录屏软件,没有之一,已解锁VIP功能!