一文详解空洞卷积(Atrous Convolution)

1、什么是空洞卷积(Atrous Convolution)

1.1定义:

与反卷积正好相反,空洞卷积它是对卷积核的kernel size之间进行插值,用参数dilation来决定kernel size之间插值的数量,如果dilation等于2就是在原kernel size插一行,如图:
在这里插入图片描述

1.2 空洞卷积后的feature size大小

因为空洞卷积是对kernel size进行插值,所以空洞卷积后的feature size大小为:
在这里插入图片描述
上面这个式子应该都能看懂,只是加了dilation[0]之后,kernel size变成了dilation[0]*(kernel size[0]-1)+1,然后再替换原先的kernel size即可。

1.2.1空洞卷积的反卷积输出

说白了就是把上式的H_out、W_out作为输入,然后求出上式的H_in、W_in,此时的H_in、W_in作为空洞卷积反卷积之后的输出:
在这里插入图片描述

1.3 为什么使用空洞卷积

简单来说有两点:1、增大了感受野;2、与原卷积相比空洞卷积的参数量不变;
注: 感受野:输出的feature map每一个点占原输入的像素的多少。

1.4 感受野的计算

在这里插入图片描述
(a):对输入原图进行3×3的常规卷积,所以卷积后的每一个点的感受野为3×3;
(b):对(a)输出的feature map进行dilation为2的空洞卷积,(b)图每一个红点代表的感受野都为3×3,所以(b)图的感受野为7×7;
(c):以此类推,(c)图的感受野为15×15;
总结: 感受野的计算公式:RF_out=(RF_in - 1)* stride + kernel-size,其中 RF_in 为上次卷积输出的感受野,kernel-size为当前卷积核的大小,比如对于(b)图来说,RF_in = 3,kernel-size = 5,所以 RF_out = (3-1)x 1 + 5 = 7,对于(c)图来说,RF_in = 7,kernel-size = 9,所以 RF_out = (7-1)x 1 + 9 = 15

  • 6
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值