1.为何要引入空洞卷积

1.1.Pool下采样的缺点

    在分割网络中,一般先通过Conv和Pool进行操作,其中Conv提取特征信息(假设padding为same),Pool进行下采样。下采样的好处就是能够减少feature map的尺寸并且增大感受野,但是这又引起了另一个问题,那就是经过下采样后,一些细节的信息就丢失掉了。而在后续的上采样阶段,想要对这些丢失掉的信息进行恢复是不可能了(除非像U-Net那样将下采样阶段的feature map叠加到上采样的feature map上,这样能够补充丢失掉的信息)。而细节信息的丢失对于分割任务来说是挺严重的,因为分割任务是pixel-wise的dense prediction,分类任务则对细节信息不太注重。

 

1.2.空洞卷积的引入

    既然在分割网络中,Pool下采样有损细节信息,那么有没有一种方法可以代替Pool下采样的功能(增大感受野),又不丢失细节信息呢?答案就是增大卷积核,但这又势必引起参数的增加,使得内存和计算量的增加。那么可以不增加卷积核的参数也能实现这一目的吗?能,空洞卷积。空洞卷积的参数个数依然是n*n已经固定的了,但是引入dilation factor,它表示卷积核中,相邻两个参数相隔的距离正常卷积的据集是1,如图(a)。假如使间隔变为2,那么就如下图(b),其中空出来的部分用0来填补(注意外层也需要填补),图(c)为的间隔为3。

    因此通过空洞卷积,可以在不改变feature map size、不增加卷积核参数的情况下,增大感受野。

卷积自编码器 pytorch maxunpool2d 卷积自编码器 空洞卷积_卷积核

 

 

2.具体介绍

    论文中引入了一个context module,它用来聚集多尺度上下文信息以此来提升密集预测结构的性能。该模块的输入通道和输出通道相同,feature map size也通过padding使得其不变,故可以插入到现有的密集预测结构中。有两种,一种是Basic,里面的通道数恒为C;另一种是Large,里面的通道数先从C增加到32C,最后又降维C。

卷积自编码器 pytorch maxunpool2d 卷积自编码器 空洞卷积_卷积核_02

 

 

3.FRONT-END

    待定……