最早出现在DeeplLab系列中,作用:可以在不改变特征图尺寸的同时增大感受野,摈弃了pool的做法(丢失信息);
我们设: kernel size = k, dilation rate = d, input size = W1, output size = W2, stride=s, padding=p;
Dilation convolution(扩张卷积)的原理其实也比较简单,就是在kernel各个像素点之间加入0值像素点,变向的增大核的尺寸从而增大感受野。
结构如下:
如上图所示,(a)是我们常见的卷积核,可以看成d=1的扩张卷积,核的尺寸为3,感受野为3;(b)是d=2的扩张卷积,核的尺寸上升为5=2*(3-1)+1,如果与(a)叠加使用的话感受野则为7;(c)是d=4的扩张卷积,核的尺寸上升为9=4*(k-1)+1,若与(a)(b)叠加则感受野区域为15;
(1)经过dilation rate放大后,fliter大小上升为:d*(k-1)+1;
(2)扩张卷积的输入和输出特征图的尺寸关系如下:
ps:在s=1,k=3时,令d = p,则输出特征图尺寸不变;
扩张卷积可用于图像分割、文本分析、语音识别等领域;
存在的问题:棋盘效应(特征图不是处处可导!)
解决方法:使用锯齿状的卷积核
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:扩张卷积(dilated convolution) - Python技术站