如何理解扩张卷积(dilated convolution)

空洞卷积(扩张卷积,带孔卷积,atrous convolution)的一些总结与理解 空洞卷积(扩张卷积,带孔卷积,atrous convolution)是一种区别于普通卷积的卷积方式,从字面理解,就是卷积层中有洞。 1.一维理解 以一维为例: 图中(a)Input feature表示输入特征,Output feature表示输出特征,这是一个正常的kernel = 3; stride = 1; pad = 1的卷积操作。 图中(b)下面为Input feature,上面为Output feature,与图(a)不同的是pad = 2,同时引入了一个rate = 2,这个rate 阅读详情
AI摘要

扩张卷积,又称空洞卷积,通过在卷积核中加入空洞,增加模型感受野,尤其适用于图像分割和目标检测任务,能在不牺牲特征图尺寸的情况下增大感受野。

原理

扩张卷积(Dilated Convolution)也被称为空洞卷积或者膨胀卷积,是在标准的卷积核中注入空洞,以此来增加模型的感受野(reception field)。相比原来的正常卷积操作,扩张卷积多了一个参数: dilation rate,指的是卷积核的点的间隔数量,比如常规的卷积操作dilatation rate为1。它的论文是:《MULTI-SCALE CONTEXT AGGREGATION BY
DILATED CONVOLUTIONS》

前言

CNN结构中,大部分的layer是靠Conv和Pooling完成的,这两个层是CNN中非常重要的两个组件。一般情况下对于一个图像分类任务,一个靠Conv和Pooling堆叠起来的backbone都是具有不错的特征提取能力的,这种堆叠最经典的就是结构就是VGG。在图像输出网络后,Conv做特征的抽取,而Pooling做特征的聚合,并且让模型具有一定程度上的平移不变性,还可以降低后面卷积层的算力。最后到全连接层输出分类结果就好了。
但是这种结构对目标检测和图像分割来说,就会存在一些问题:

  • 目标检测和图像分割中感受野很重要,比如目标检测一般情况下要在最后一层特征图上做预测,那么特征图上的一个点能过映射到原图的多少像素,决定了网络能检测到的尺寸上限,而保证感受野就要靠下采样,下采样的结果就是小目标不容易被检测到;
  • 针对上面的问题,多层特征图拉取分支能改善这个问题,因为小目标在越靠前的特征图上越容易体现,但是前面的特征图语义信息不够,比如在SSD中就存在这个问题;
  • 不做下采样,只增加卷积层的数量,首先会增大网络的计算量,其次不做Pooling的聚合最后的特征提取效果也会受到影响,而且感受野不会变化。
    所以有没有一种可以不牺牲特征图尺寸的情况下增加感受野的方式呢?
    扩张卷积就能做到这点。

原理

在这里插入图片描述
扩张卷积操作还是很好理解的,上图中(a)是基础的卷积核,扩张卷积就是在这个基础卷积核加入间隔,上图(b)对应 3 × 3 3\times3 3×3 的dilation rate=2的卷积,但是间隔为1,也就是相当于对应 7 × 7 7\times7 7×7的图像块,可以理解为kernel size还是变成了 7 × 7 7\times7 7×7,但是却只有9个点有参数,其余的位置参数都是0,和输入特征图对应位置的像素进行卷积计算,其余的位置都略过。图©和图(b)是类似的,只是dilation rate=4,相当于变成了 15 × 15 15\times15 15×15的卷积核。
而卷积核尺寸变大了,感受野也就自然变大:
R F i = R F i − 1 + ( k − 1 ) × s RF_{i}=RF_{i-1}+(k-1)\times s RFi​=RFi−1​+(k−1)×s
R F i − 1 RF_{i-1} RFi−1​是上一层的感受野, k k k是卷积核的尺寸, s s s是步长。

存在的问题

扩张卷积虽然在不损失特征图尺寸的情况下增大了感受野,但是也会带来新的问题,主要是体现在卷积的输入,由于卷积核是有间隔的,这意味着不是所有的输入都参与计算,整体特征图上体现出一种卷积中心点的不连续,尤其是当叠加的卷积层都是用相同的dilation rate的时候:
在这里插入图片描述
上图中示例是三个dilation rate=2扩张卷积层连续卷积后的结果,蓝色的标识是参与计算的卷积中心,而颜色的深度表征次数。可以看到,由于3次的dilation rate是一致的额,所以卷积的计算中心会呈现出一种网格状向外扩展,有一些点不会成为计算的中心点。

解决方法

解决这个问题最直接的方法当然就是不使用连续的dilation rate相同的扩展卷积,但是这还不够,因为如果dilation rate是成倍数的,那么问题还是存在。所以最好的方式是将连续排布的扩张卷积的dilation rate设置为“锯齿状”,比如分别是[1,2,3],那么卷积中心的分布就会变成下面这样,不在有遗漏的情况。
在这里插入图片描述

应用实例

扩张卷积在图像分割领域使用是比较多的,因为本身扩张卷积的原文就用来做分割,此外,它在目标检测领域也有些应用,比如SSD,在新增的Conv6层卷积使用了dilation rate=6的卷积,为了进一步增大感受野。
此外,扩张卷积已经在caffe原始代码中实现了,就是dilation参数。

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 2
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}

上面这种情况就是一个基础的卷积层,它的dilation=1。

扩张卷积(Atrous 卷积) 空洞卷积(dilated convolution)是针对图像语义分割问题中下采样会降低图像分辨率、丢失信息而提出的一种卷积思路。 dilated的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。在图像需要全局信息或者语音文本需要较长的sequence信息依赖的问题中,都能很好的应用dilated conv。 利用添加空洞扩大感受野,让原本3 x3的卷积核,在相同参数量和计算量下拥有5x5(dilated rate =2)或者更大的感受野,从而无需下采样。. 阅读详情

相关推荐

Dilated Convolution —— 空洞卷积(膨胀卷积)

目录 Dilated Convolution概述 Dilated Convolution存在的问题 HDC (Hybrid Dilated Vonvolution) Dilated Convolution概述 Dilated Convolution是在标准卷积的Convolution map的基础上注入空洞,以此来增加感受野(reception field)。因此,Dilated ...

birdguan 4万+

膨胀卷积(Dilated convolutions)(又叫空洞卷积、扩张卷积)

膨胀卷积(Dilated convolutions)(又成空洞卷积、扩张卷积)和HDC设计膨胀卷积的规则分享

caip12999203000的博客 1万+

空洞卷积,扩张卷积,膨胀卷积,多孔卷积,带孔卷积,dilated convolution

引子: 感受野(receptive field):CNN中,某一层输出结果中一个元素所对应的输入层的区域大小.。越大的感受野包含越多的上下文关系 Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) 或者是 Convolution with holes 从字面上就很好理解,是在标准的 convolution map 里注入空洞,以此来增加 recepti...

Jiashilin 4601

CNN中四种常用的卷积操作详解

欢迎关注微信公众号“智能算法” 卷积现在可能是深度学习中最重要的概念。正是靠着卷积和卷积神经网络,深度学习才超越了几乎其他所有的机器学习手段。这期我们一起学习下深度学习中常见的卷积有哪些? 1. 一般卷积 卷积在数学上用通俗的话来说就是输入矩阵与卷积核(卷积核也是矩阵)进行对应元素相乘并求和,所以一次卷积的结果的输出是一个数,最后对整个输入输入矩阵进行遍历,最终得到一个结果矩阵,说白了就是...

春有百花秋有月,夏有凉风冬有雪! 6171

c++界面开发入门

c++界面开发 DialogBox MessageBox

jiaodou2的博客 6516

ESP-IDF下载配合MQTT协议接入云平台实例

通过ESP-IDF下载环境搭建,结合MQTT协议实现设备与云平台通信,详解从配置到连接的完整流程,助力物联网应用开发。重点涵盖espidf下载和MQTT集成关键步骤。

weixin_28913879的博客 454

几种常用的卷积操作原理(标准卷积、深度卷积、组卷积、扩张卷积和反卷积

本文为转载文章,原文链接   0、标准卷积 默认你已经对卷积有一定的了解,此处不对标准卷积细讲。 举个例子,假设有一个3×3大小的卷积层,其输入通道为16、输出通道为32。 那么一般的操作就是用32个3×3的卷积核来分别同输入数据卷积,这样每个卷积核需要3×3×16个参数,得到的输出是只有一个通道的数据。之所以会得到一通道的数据,是因为刚开始3×3×16的卷积核的每个通道会在输入数据的每个对应通道上

Acmer_future_victor的博客 4246

无线Mesh组网全攻略:从原理、部署到调优与排障

对于布线困难的大户型、复式楼或园区,传统的无线中继往往面临带宽减半和链路不稳定的问题。无线Mesh网络通过多跳转发与自组织路由,让每个节点无需网线即可协作扩展覆盖,并依靠动态路径选择实现自愈。其核心技术涉及802.11s、HWMP路由协议,以及802.11k/v/r协同的无缝漫游,能有效提升终端切换体验。在实际部署中,设备选型、回程频段规划与布点位置直接决定网络质量。围绕无线Mesh的组网原理、设备选型、配置调优与故障排查,提供一套工程实践参考,帮助用户在复杂环境下构建稳定高效的无缝覆盖。

weixin_34098209的博客 271

如何理解扩张卷积(dilated convolution)

扩张卷积原理 扩张卷积(Dilated Convolution)也被称为空洞卷积或者膨胀卷积,是在标准的卷积核中注入空洞,以此来增加模...

Arthur_Holmes的博客 1969

「Unity3D」Addressable版本冲突解析:SBP与Addressables兼容性问题实战指南

本文深入解析Unity3D中Addressable与SBP(Scriptable Build Pipeline)版本冲突问题,提供实战解决方案。当遇到「Build Task CreateBuiltInShadersBundle failed」错误时,可通过版本匹配、临时资源引用或构建参数调整解决。文章详细分析兼容性原理,并给出版本组合指南与最佳实践,帮助开发者高效处理资源构建问题。

weixin_29001683的博客 410

最优化理论与自动驾驶(三):LQR原理、公式及代码演示

LQR 是基于线性系统和二次型代价函数的最优控制方法,在实际工程应用中,我们一般采用离散时间系统的LQR设计,其目标是通过设计反馈控制律,使系统在离散时间步长内稳定运行,最小化某个二次型代价函数。给定一个离散时间系统,其状态和控制输入通过以下方程表示:是时刻k的系统状态,是时刻k的控制输入,是状态转移矩阵,是输入矩阵。系统描述的物理意义:系统状态通过矩阵A演变到下一时刻,同时控制输入通过矩阵B影响系统的状态。

a8598671的博客 4595

深入浅出理解空洞卷积/膨胀卷积/扩张卷积(Dilated/Atrous Convolution)

深入浅出理解空洞卷积/膨胀卷积/扩张卷积(Dilated/Atrous Convolution)

IT菜鸟 7676

毕设-MobileNetV4:给YOLOv8装上轻量化“引擎”——通用瓶颈与C2f融合的实战教程

本文介绍了一种将MobileNetV4与YOLOv8结合的目标检测模型轻量化方案。MobileNetV4通过通用瓶颈(UB)结构实现多任务适配,其核心改进包括动态卷积核、注意力机制和多路径特征聚合,显著提升特征提取能力。作者详细阐述了如何在YOLOv8框架中实现MobileNetV4的通用瓶颈模块,包括"膨胀-卷积-注意力-压缩"的流程设计,并构建完整的backbone网络。该方案通过融合MobileNetV4的轻量化优势与YOLOv8的高效检测架构,在移动设备上实现了精度与速度的良好平

FJN110的博客 504

Dilated conv扩张卷积的理解(一看就会)

Q1:Dilated conv的作用? A1:在同层计算不增加参数量的同时扩大感受野,感受野的理解见:https://blog.youkuaiyun.com/weixin_36835368/article/details/105659474 Q2:如何做到不增加参数的同时增加感受野? A2:step0:先了解Dilated conv如何不增加参数数量 绿色:与卷积核相乘的点。 ...

半度微凉的博客 1211

【大模型+知识图谱】大模型与知识图谱融合:技术演进、实践应用与未来挑战

大模型与知识图谱的融合不是简单拼接,而是认知智能的范式重构。当符号主义的精确性与连接主义的泛化能力深度交织,我们正站在通向可信AGI的关键路口。正如OpenKG技术委员会王昊奋教授所言:“2025年将是图模协同从技术探索走向规模落地的分水岭”。参考文献OpenKG 2024年度报告(同济大学王昊奋)大型语言模型与知识图谱协同研究综述(海豚实验室,2024)知识图谱与大模型结合方法概述(黄巍,2023)图模互补:知识图谱与大模型融合综述(优快云,2024)

知识靠谱的博客 1091

Python全栈入门到实战【基础篇 22】生成器与迭代器:底层逻辑与实战场景

Python迭代器与生成器:惰性求值的高效实践 摘要:本文深入解析Python中迭代器和生成器的核心机制与应用场景。迭代器通过实现__iter__()和__next__()方法实现惰性求值,适合处理大数据集和无限序列。生成器作为迭代器的简化实现,通过yield关键字自动实现迭代器协议,代码更简洁。文章详细对比了可迭代对象与迭代器的区别,演示了自定义迭代器和生成器函数的实现方式,并介绍了生成器表达式这一高效替代列表推导式的方案。通过斐波那契数列等实例,展示了惰性求值在内存优化方面的优势,以及生成器在流式数据处

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 3262

Multi-Scale Context Aggregation by Dilated Convolution 对空洞卷积(扩张卷积)、感受野的理解

dilated convolution是针对图像语义分割问题中下采样会降低图像分辨率、丢失信息而提出的一种卷积思路。

妙猪的专栏 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【深度学习】吃透空洞卷积(Dilated Convolutions)

一、空洞卷积的提出空洞卷积中文名也叫膨胀卷积或者扩张卷积,英文名也叫Atrous Convolution空洞卷积最初的提出是为了解决图像分割的问题而提出的,常见的图像分割算法通常使用池化层和卷积层来增加感受野(Receptive Filed),同时也缩小了特征图尺寸(resolution),然后再利用上采样还原图像尺寸,特征图缩小再放大的过程造成了精度上的损失,因此需要一种操作可以在增加感受野的同...

fengdu78的博客 1179

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

空洞卷积实战:如何用PyTorch实现Dilated Convolution(附代码示例)

本文详细介绍了空洞卷积(Dilated Convolution)在PyTorch中的实战应用。通过解析其核心原理,展示如何利用膨胀率参数在不增加计算成本的前提下扩大感受野,并提供了构建ASPP模块的完整代码示例。文章还探讨了混合空洞卷积等最佳实践,以规避网格效应,帮助开发者高效地将该技术应用于图像分割、目标检测等视觉任务。

hp777的博客 206

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

膨胀卷积(Dilated convolution)

Dilated conv,中文叫做空洞卷积或者扩张卷积,起源于语义分割,大部分文章也用于语义分割,具体能否对其他应用有价值姑且还不知道,但确实是一个不错的探究方向。 感受野(receptive field):CNN中,某一层输出结果中一个元素所对应的输入层的区域大小,感受野是卷积核在图像上看到的大小,例如3×3卷积核的感受野大小为9。越大的感受野包含越多的上下文关系。 膨胀卷积与普通的卷积相比...

满腹的小不甘 5万+

【扩张卷积or空洞卷积】如何理解Dilated Convolutions(空洞卷积)

文章来源:https://blog.youkuaiyun.com/alxe_made/article/details/88594550 1. 扩张卷积的提出 Multi-Scale Context Aggregation by Dilated Convolutions Dilated Residual Networks 论文笔记——CVPR 2017 Dilated Residual Netwo...

华仔的博客 7949

对Dilated Convolution理解

本文主要对论文《Multi-Scale Context Aggregation by Dilated Convolutions》进行总结。论文地址:https://arxiv.org/abs/1511.07122源码地址:https://github.com/fyu/dilation摘要针对图像语义分割中像素点级别的密集预测分类,提出了一种新的卷积网络模块。通过扩张(空洞)卷积进行多尺度上下文信息...

Microstrong 5605

空洞卷积(扩张卷积dilated convolution)

为什么用空洞卷积? 普通的Deep CNN中普遍包含Up-sampling / pooling layer,导致 内部数据结构丢失;空间层级化信息丢失。 小物体信息无法重建 (假设有四个pooling layer 则任何小于 2^4 = 16 pixel 的物体信息在理论上将无法重建和分割。) 普通卷积过程如下: 在这样显著缺陷问题的存在下,语义分割问题一直处在瓶颈期无法再明显提高精度,...

橘露源的博客 4096

Dilated Convolution (空洞卷积或扩张卷积)

之前博文已经对空洞卷积做了介绍,本文进行深入介绍《各种卷积层的理解(深度可分离卷积、分组卷积、扩张卷积、反卷积)》 诞生背景,在图像分割领域,图像输入到CNN(典型的网络比如FCN[3])中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预测是pixel-wise的输出,所以要将pooling后较小的图像尺寸upsampling到原始...

gwpscut的博客 1万+

如何理解空洞卷积(dilated convolution)

论文:Multi-scale context aggregation with dilated convolutions简单讨论下dilated conv,中文可以叫做空洞卷积或者扩张卷积。首先介绍一下dilated conv诞生背景[4],再解释dilated conv操作本身,以及应用。首先是诞生背景,在图像分割领域,图像输入到CNN(典型的网络比如FCN[3])中,FCN先像传统的CNN那样...

suixinsuiyuan33的博客 5万+

[扩张卷积or空洞卷积] 如何理解Dilated Convolutions(空洞卷积)

文章来源:https://blog.youkuaiyun.com/alxe_made/article/details/88594550 1. 扩张卷积的提出 Multi-Scale Context Aggregation by Dilated Convolutions Dilated Residual Networks 论文笔记——CVPR 2017 Dilated Residual Networks 在图像分割领域,图像输入到CNN(典型的网络比如FCN)中,FCN先像传统的CNN那样对图像做卷积再po.

小铅笔 848
上一篇: [Intensive Reading]目标检测(object detection)扩展系列(一) Selective Search:选择性搜索算法
下一篇: 如何计算CNN感受野、计算量和模型大小
zxucver
zxucver 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄11年 2159粉丝 252原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值