空洞卷积(Atrous/Dilated Convolution)
2023-04-18 13:08:43 时间
- 由Deeplabv1提出的。
- 有两种实现方式:
- 一,卷积核填充0。
- 二,输入等间隔采样。
- 扩张率(dilation rate),也叫空洞数(Hole Size)。
- 标准卷积可以看做空洞卷积rate=1(Note:rate=2表示中间空洞间隙为1)的特殊形式
- 中间的空洞间隙,计算感受野的时候,也属于感受野的有效范围。(单个卷积的感受野计算公式:[(rate-1)(k-1) + k] ** 2 ,其中(rate-1)(k-1) 是因为空洞而新增加的边长增量)
- 作用:
- 扩大感受野:
- 原本为了增加感受野同时不增加计算量,只能进行降采样(pooling或s2/conv),但空间分辨率(fm尺度)因此缩小了。
- 空洞卷积可以在不需要引入额外参数的前提下,任意扩大感受野。
- 一方面感受野大了可以检测分割大目标,另一方面分辨率高了可以精确定位目标。因此空洞卷积主要应用于检测、分割。
- 捕获多尺度上下文信息:
- 空洞卷积有一个参数可以设置dilation rate,具体含义就是在卷积核中填充dilation rate-1个0。
- 当设置不同dilation rate时,感受野就会不一样,也即获取了多尺度信息(常考deeplabv2的ASPP)。而多尺度信息在视觉任务中相当重要。
- 扩大感受野:
- 用法:
- 语义分割由于需要获得较大的分辨率图,因此经常在网络的最后两个stage丢弃降采样操作,改用空洞卷积减少感受野的丢失。
- 缺点:
- 在实际中不好优化,且缺少对应的算子加速,速度会大大折扣。
- 因为空洞卷积得到的某一层的结果中,邻近的像素是从相互独立的子集中卷积得到的,相互之间缺少依赖。因此存在gridding问题(网格效应/棋盘问题):
- 局部信息丢失:由于空洞卷积的计算方式类似于棋盘格式,某一层得到的卷积结果,来自上一层的独立的集合,没有相互依赖,因此该层的卷积结果之间没有相关性,即局部信息丢失。
- 远距离获取的信息没有相关性:由于空洞卷积稀疏的采样输入信号,使得远距离卷积得到的信息之间没有相关性,影响分类结果。
- 改进方法:
- HDC:
- 不同于采用相同的空洞率的deeplab方案,该方案将一定数量的layer形成一个组,然后每个组使用连续增加的空洞率,其他组重复。
- 如deeplab使用rate=2,而HDC采用r=1,r=2,r=3三个空洞率组合,这两种方案感受野都是13。
- 但HDC方案可以从更广阔的像素范围获取信息,避免了grid问题。
- 同时该方案也可以通过修改rate任意调整感受野。
- deeplabv3在v2基础上进一步探索空洞卷积,分别研究了级联ASPP与并联ASPP两种结构。
- HDC:
- 总结-空洞卷积(Dilated/Atrous Convolution)
相关文章
- spring cloud服务提供与调用示例
- testNG-失败用例重跑方法探究
- sonarqube扫描安卓代码
- 接口测试之基础篇--http协议
- 一些测试面试题
- 性能测试一些相关的概念
- django+appium实现UI自动化测试平台(开源部分,可定制开发)
- django+uwsgi+nginx部署
- Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)
- ab使用命令
- jmeter 压测最近的心得体会
- 机器学习回顾篇(8):CART决策树算法
- jmeter 分布式实战
- 对于手机系统更新,你必须要了解的这些知识点
- 机器学习回顾篇(5):朴素贝叶斯算法
- docker系列(五):网络通信
- appium 解锁九宫格
- docker系列(二):镜像
- docker系列(一):docker基础与安装笔记
- 接口自动化测试(7)