当前位置: 首页 > news >正文

空洞卷积(膨胀卷积/扩张卷积)本质理解

传统增大感受野的方法有两种:

1.增大卷积核 (如 5×5、7×7)→ 参数增多,计算量变大

2.卷积核大小不变,池化后再卷积 (如 max pooling,stride=2)→ 尺寸减小,导致空间信息丢失

于是出现了需求:

有没有一种方法,能够扩大感受野,又不缩小特征图的空间尺寸?

答案就是:空洞卷积(Atrous Convolution / Dilated Convolution)

膨胀卷积:1.增大感受野2.保持原图尺寸大小不变

一、空洞卷积的工作机制

空洞卷积的核心思想是:在卷积核元素之间插入空洞(即“空”的位置),跳着采样输入特征图,而不是连续采样。

  • 原始卷积:一个 3×33\times33×3 卷积核是连续滑动采样
  • 空洞卷积(r=2):相邻的卷积核格点之间插入一个空格(跳一个像素)

空洞卷积=插空的卷积核(膨胀后的滤波器)

1.普通卷积(r=1):

卷积核是连续的,像素点之间不跳过:

输入特征图(7x7):o o o o o o oo o o o o o oo o o o o o oo o o o o o oo o o o o o oo o o o o o oo o o o o o o卷积核(3x3)扫过时,每次覆盖连续 3x3 的块:● ● ●● ● ●● ● ●
2.空洞卷积(r=2):

在卷积核每两个格子之间插入一个“空格”,也就是跳过输入特征图的像素进行采样:

空洞卷积核(3x3, dilation=2):●   ●   ●↓  ●   ●   ●      ← 相当于采样的是一个 5x5 区域中跳着的像素↓  ●   ●   ●→ 有效感受野 = (kernel_size - 1) * dilation + 1 = (3 - 1) * 2 + 1 = 5

本质理解
就像是你用筷子夹豆豆,普通卷积是“一粒一粒夹”,空洞卷积是“每隔一粒夹”
你手没变大(卷积核没变),但夹的范围(感受野)变大了!

二、空洞卷积的优点

特性

说明

感受野增大

不改变卷积核大小(参数量不变),却能覆盖更大区域

空间分辨率不变

不需要下采样,保留特征图的细节信息

适合语义分割

适用于像素级任务,尤其是 DeepLab 系列

三、空洞卷积与感受野关系(图解)

举例:连续 3 层空洞卷积,卷积核大小 3×33 \times 33×3,空洞率分别为 1、2、4

空洞率 r

有效感受野

实际卷积核点分布

1(普通卷积)

3×3

连续格点

2

5×5

每格中插1个空格

4

9×9

每格中插3个空格

你会发现:感受野变成了

(3−1)⋅r+1

四、Gridding Effect(网格效应)

“gridding effect” 是空洞卷积的一个副作用,原因是:

空洞率增大后,卷积核只在稀疏的像素上采样,像素之间没有重叠,导致输出图像出现栅格状(checkerboard-like)模式。

解决方案:
  1. 混合多个空洞率(如 ASPP 模块)
    DeepLabv3 中引入了多尺度空洞卷积,让不同感受野的信息融合,缓解 gridding。
  2. 使用卷积核堆叠(多个不同 dilation rate 层)
  3. 适当插入普通卷积层 保证局部连续采样

方法

解释

ASPP 模块(DeepLabv3)

使用多种空洞率(r=1, 6, 12, 18)并行卷积 → 多尺度融合

Dilated block 堆叠

dilation=1,2,4 交替堆叠,避免单一间隔造成盲点

加普通卷积

中间插入 standard convolution 平衡信息

五、总结一句话:

空洞卷积=给卷积核“插空”,以扩大感受野但不增加计算和参数,在语义分割中大放异彩,但也容易引入栅格效应,需要多尺度融合等方式优化。

相关文章:

  • Java 本地缓存的实现:常见的四种方式
  • 逻辑过期怎么设计
  • PclSharp ——pcl的c#nuget包
  • 自己的账号
  • 细说STM32单片机FreeRTOS任务管理API函数vTaskList()的使用方法
  • 软件测试|App测试相关面试题(3)
  • 2025年第二期DAMA认证考试通知已发布!
  • kali下maven 的安装与配置
  • 自动化构建工具:makemakefile
  • 求简单交错序列前N项和
  • 【Linux我做主】探秘gcc/g++和动静态库
  • RestControllerAdvice 和 ControllerAdvice 两个注解的区别与联系
  • 二十、FTP云盘
  • Operator 开发入门系列(一):Hello World
  • 【Java学习笔记】标识符和保留字
  • NLP高频面试题(四十七)——探讨Transformer中的注意力机制:MHA、MQA与GQA
  • 火山云如何运营
  • Vscode开发Vue项目NodeJs启动报错处理
  • 【Rust基础】crossbeam带来的阻塞问题
  • 大模型-mcp学习
  • 解放日报:中国大模型企业的发展机遇已经到来
  • 五一假期上海推出首批16条“市民健康路线”,这些健康提示请收好
  • 民生访谈|规范放生活动、提升供水品质……上海将有这些举措
  • 卸任兰大校长后,严纯华院士重返北大作报告
  • 解放日报头版聚焦“人民城市”:共建共享展新卷
  • 气温“过山车”现象未来或更频繁且更剧烈