文章目录
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