吃透空洞卷积(Dilated Convolutions)

2020 年 12 月 3 日 极市平台
↑ 点击 蓝字  关注极市平台

作者丨玖零猴@知乎
来源丨https://zhuanlan.zhihu.com/p/113285797
编辑丨极市平台

极市导读

 

空洞卷积在图像分割需要增加感受野同时保持特征图的尺寸的需求中诞生,本文详细介绍了空洞卷积的诞生、原理、计算过程以及存在的两个潜在的问题,帮助大家将空洞卷积这一算法“消化吸收”。>>加入极市CV技术交流群,走在计算机视觉的最前沿

一、空洞卷积的提出

空洞卷积中文名也叫 膨胀卷积或者 扩张卷积,英文名也叫 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

推荐阅读



添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~

△长按添加极市小助手

△长按关注极市平台,获取 最新CV干货

觉得有用麻烦给个在看啦~   


登录查看更多
0

相关内容

【AAAI2021】面向交通需求预测的耦合层图卷积
专知会员服务
45+阅读 · 2021年1月31日
专知会员服务
37+阅读 · 2020年11月24日
KDD20 | AM-GCN:自适应多通道图卷积网络
专知会员服务
39+阅读 · 2020年8月26日
系列教程GNN-algorithms之六:《多核卷积拓扑图—TAGCN》
专知会员服务
49+阅读 · 2020年8月8日
【IJCAJ 2020】多通道神经网络 Multi-Channel Graph Neural Networks
专知会员服务
25+阅读 · 2020年7月19日
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
38+阅读 · 2020年2月21日
一文读懂图卷积GCN
计算机视觉life
21+阅读 · 2019年12月21日
DRN - 扩张残留网络(图像分类和语义分割)
AI科技评论
18+阅读 · 2019年8月19日
卷积神经网络四种卷积类型
炼数成金订阅号
18+阅读 · 2019年4月16日
DeepLabv1 & DeepLabv2 - 空洞卷积(语义分割)
AI研习社
12+阅读 · 2019年3月25日
总结-空洞卷积(Dilated/Atrous Convolution)
极市平台
41+阅读 · 2019年2月25日
DeepLab V3
计算机视觉战队
9+阅读 · 2018年4月2日
模型汇总23 - 卷积神经网络中不同类型的卷积方式介绍
深度学习与NLP
5+阅读 · 2017年10月12日
【选介】基于全卷积网络的迭代非盲反卷积
机器学习研究会
7+阅读 · 2017年9月12日
一文了解各种卷积结构原理及优劣
量子位
9+阅读 · 2017年7月29日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
Arxiv
3+阅读 · 2020年4月29日
已删除
Arxiv
32+阅读 · 2020年3月23日
Self-Attention Graph Pooling
Arxiv
5+阅读 · 2019年4月17日
Arxiv
15+阅读 · 2019年4月4日
Arxiv
8+阅读 · 2018年5月15日
VIP会员
相关VIP内容
【AAAI2021】面向交通需求预测的耦合层图卷积
专知会员服务
45+阅读 · 2021年1月31日
专知会员服务
37+阅读 · 2020年11月24日
KDD20 | AM-GCN:自适应多通道图卷积网络
专知会员服务
39+阅读 · 2020年8月26日
系列教程GNN-algorithms之六:《多核卷积拓扑图—TAGCN》
专知会员服务
49+阅读 · 2020年8月8日
【IJCAJ 2020】多通道神经网络 Multi-Channel Graph Neural Networks
专知会员服务
25+阅读 · 2020年7月19日
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
38+阅读 · 2020年2月21日
相关资讯
一文读懂图卷积GCN
计算机视觉life
21+阅读 · 2019年12月21日
DRN - 扩张残留网络(图像分类和语义分割)
AI科技评论
18+阅读 · 2019年8月19日
卷积神经网络四种卷积类型
炼数成金订阅号
18+阅读 · 2019年4月16日
DeepLabv1 & DeepLabv2 - 空洞卷积(语义分割)
AI研习社
12+阅读 · 2019年3月25日
总结-空洞卷积(Dilated/Atrous Convolution)
极市平台
41+阅读 · 2019年2月25日
DeepLab V3
计算机视觉战队
9+阅读 · 2018年4月2日
模型汇总23 - 卷积神经网络中不同类型的卷积方式介绍
深度学习与NLP
5+阅读 · 2017年10月12日
【选介】基于全卷积网络的迭代非盲反卷积
机器学习研究会
7+阅读 · 2017年9月12日
一文了解各种卷积结构原理及优劣
量子位
9+阅读 · 2017年7月29日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
相关论文
Arxiv
3+阅读 · 2020年4月29日
已删除
Arxiv
32+阅读 · 2020年3月23日
Self-Attention Graph Pooling
Arxiv
5+阅读 · 2019年4月17日
Arxiv
15+阅读 · 2019年4月4日
Arxiv
8+阅读 · 2018年5月15日
Top
微信扫码咨询专知VIP会员