膨胀卷积(空洞卷积 dilated convolution)
学习的B站大佬的视频大部分图片来自于课中,文章结尾有大佬视频链接,以及阅读《深度学习之pytorch物体检测实战》,刚开始学习可能有些错误,希望大佬指正
1.空洞卷积了解
空洞卷积最初是为解决图像分割的问题而提出的。常见的图像分割算法通常使用池化层来增大感受野(所以如果去掉池化层会使得感受野变小,从而影响后面的卷积层),同时也缩小了特征图尺寸,然后再利用上采样还原图像尺寸。特征图缩小再放大的过程造成了精度上的损失,因此需要有一种操作可以在增加感受野的同时保持特征图的尺寸不变(要加padding),从而替代池化与上采样操作,在这种需求下,空洞卷积就诞生了。在近几年的物体检测发展中,空洞卷积也发挥了重要的作用。因为虽然物体检测不要求逐像素地检测,但是保持特征图的尺寸较大,对于小物体的检测及物体的定位来说也是至关重要的。
普通卷积
K = 3 P = 1 S = 2
膨胀卷积
K = 3 r = 2 (膨胀因子/间隙) P = 0 S = 1
假设空洞卷积的卷积核大小为k,空洞数为d,则其等效卷积核大小k'计算如下面所示。
在计算感受野时,只需要将原来的卷积核大小k更换为k'即可。 空洞卷积的优点显而易见,在不引入额外参数的前提下可以任意扩大感受野,同时保持特征图的分辨率不变。这点在分割与检测任务中十分有用, 感受野的扩大可以检测大物体,而特征图分辨率不变使得物体定位更加精准。
2.缺陷
(1)网格效应(Gridding Effect) :由于空洞卷积是一种稀疏的采样方式,当多个空洞卷积叠加时,有些像素根本没有被利用到,会损失信息的连续性与相关性,进而影响分割、检测等要求较高的任务。
(2)远距离的信息没有相关性:空洞卷积采取了稀疏的采样方式,导致远距离卷积得到的结果之间缺乏相关性,进而影响分类的结果。
(3)不同尺度物体的关系:大的dilation rate 对于大物体分割与检测有利,但是对于小物体则有弊无利,如何处理好多尺度问题的检测,是空洞卷积设计的重点。
对于上述问题,有多篇文章提出了不同的解决方法,典型的有图森未来提出的HDC(Hybrid Dilated Convolution)结构。该结构的设计准则是堆叠卷积的dilation rate不能有大于1的公约数,同时将dilation rate 设置为类似于[1,2,5,1,2,5]这样的锯齿类结构。此外各dilation rate之间还需要满足一个 数学公式,这样可以尽可能地覆盖所有空洞,以解决网格效应与远距离信息的相关性问题,具体细节可参考相关资料。
https://arxiv.org/abs/1702.08502 (论文Understanding Convolution for Semantic Segmentation)
3.解决方法
1.当只使用空洞卷积的时候
图片表示经过3次卷积,layers4对应特征图上的感受野,如图可以看出只使用空洞卷积无法覆盖所有空洞,一些细节丢失
2.当使用普通卷积的时候
如图可知layer4对应的感受野为7×7,即我们平时使用3个 3×3卷积代替一个7×7卷积
3.改进
如图可知,我们同样使用3个3×3卷积,但是感受野却变为了 13 × 13 ,而且没有出现 Gridding Effect
4.如何设置膨胀因子
方法一
论文原文片段:
翻译:
在这里,我们提出了一个简单的解决方法---------(HDC),以解决这个理论问题。假设我们有N个卷积层并且卷积核大小为K×K膨胀系数为r1,...,ri,...,rn],HDC的目标是让最终大小的一系列卷积操作完全覆盖一个方形区域没有任何洞或缺失的边缘。我们定义“两个非零值之间的最大距离”为(Mi 即第 i层两个非0元素的距离)
Mn = rn (每一层单独看,每一层两个非0值之间的最大距离 = 膨胀系数), 设计目标是让M2 ≤ K。
例如,对于内核大小K=3,r=[1,2,5] 模式 M2 = 2,可以达到我们的需要:max ( 1 , -1 , 2) = 2 < 3然而,r=[1,2,9] 模式M2 = 5 > 3 所以不能达到我们的要求。
r = [1 ,2 ,5]时:
r = [1,2,9]时:
方法二
论文原文片段
推荐将dilation rates 设置成锯齿结构,例如[1,2,3 , 1,2,3]
公约数不能大于一,比如【2,4,8】,结果图如下
r = [2,4,8]时:
4.结果
第一行为认为标注的,第二行没有使用文章的方法,很多细节丢失,第三行使用了设计准则
视频链接
膨胀卷积(Dilated convolution)详解_哔哩哔哩_bilibili
膨胀卷积(空洞卷积 dilated convolution)相关推荐
- 分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
文章目录 1. 常规卷积 2. 分组卷积 3. 转置卷积 4. 空洞卷积 5. 可变形卷积 6. 深度可分离卷积(Separable Convolution) 6.1 Depthwise Convol ...
- 【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
1 PNASNet模型简介 PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构.即用机器来设计机器学习 ...
- 膨胀卷积 / 空洞卷积(Dilated convolution)
视频学习链接:[https://www.bilibili.com/video/BV1Bf4y1g7j8] 1. 认识膨胀卷积 r 为间隙,r = 1 时,就是普通卷积 2. 为什么要使用空洞卷积 提出 ...
- 空洞卷积(Atrous/Dilated Convolution)
由Deeplabv1提出的. 有两种实现方式: 一,卷积核填充0. 二,输入等间隔采样. 扩张率(dilation rate),也叫空洞数(Hole Size). 标准卷积可以看做空洞卷积rate=1 ...
- 膨胀卷积(空洞卷积)学习篇
文章目录 提出背景 感受野 膨胀卷积是什么 膨胀卷积的设计原理 膨胀卷积的优缺点 膨胀卷积的改进 膨胀卷积基于Pytorch的代码实现 总结 原论文链接: 2016ICLR<Multi-Scal ...
- 空洞卷积atrous/dilated convolution
1.定义 空洞卷积(atrous/dilated convolution)又称膨胀卷积是针对图像语义分割问题中下采样会降低图像分辨率.丢失信息而提出的一种卷积思路.空洞卷积向卷积层引入了一个称为&qu ...
- 【必懂概念】一文详解什么是空洞卷积?
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 空洞卷积(Dilated Convolution) 简介 空洞卷积也叫扩张卷积或者 ...
- 卷积、转置卷积、可分离卷积、分组卷积、空洞卷积的理解
文章目录 卷积.转置卷积.可分离卷积.分组卷积.空洞卷积的理解 转置卷积 深度可分离卷积 分组卷积 空洞卷积 卷积.转置卷积.可分离卷积.分组卷积.空洞卷积的理解 这里主要是汇总一些本人觉得比较好的文 ...
- 膨胀卷积(Dilated convolution)
Dilated conv,中文叫做空洞卷积或者扩张卷积,起源于语义分割,大部分文章也用于语义分割,具体能否对其他应用有价值姑且还不知道,但确实是一个不错的探究方向. 感受野(receptive fie ...
最新文章
- 神策数据荣登 2020 IDC 中国 Fintech 50 强榜单
- 在windows下将Tomcat设置为自动启动的服务
- 二值化处理c语言程序,数字信号处理c语言程序集
- 创业,程序员心中说不出的痛
- biginteger和long精度_修复Long类型太长,而Java序列化JSON丢失精度问题的方法
- centos php-mysql_centOS 下安装php和mysql
- JQuery AJAX 加载 HTML代码“lt”形式的。怎么解析成形式,并且把img解析成图片输出到浏览器中。...
- 关于分辨率和地图打印的一些问题
- 【Flink】flink on yarn 并行度设置高导致任务失败
- Python+pandas处理Excel文件中的超市营业额数据
- 大数据之-Hadoop_推荐系统框架图---大数据之hadoop工作笔记0015
- window下配置nginx服务器
- 管理感悟:宁可五个阶段做三个月,绝不一个阶段做二个月
- python 刷票_Python刷票器的简单实现
- apollo 横纵向控制改成MPC控制方式
- 2021年 win10 Flash 不可用解决方法
- Microsoft Store微软应用商店打不开怎么办?完美解决方案!
- TCP三次握手中SYN,ACK,Seq含义
- Centos7 安装奔跑的小火车
- 使用IPMi获取服务器的硬件信息,如风扇转速、cpu等