Understanding Convolution for Semantic Segmentation论文解读

Introduction

这篇文章完成于17年,一作来自于图森科技。这篇文章的主要贡献来自于提出了标准空洞卷积存在的“gridding issue”问题,并着手提出了叫做混合空洞卷积(Hybrid Dilated Convolution, HDC)的模块来解决这个问题。

文章首先把分割网络分为编码器和解码器,由于任务不同,卷积的形式也有不同,因此文章试图将两个encoder与decoder部分的卷积分别进行优化。

在decoder中,大部分的网络使用双线性插值来扩大特征图,然后使用条件随机场(CRF)来得到精准的分割结果。文章认为,双线性插值是一个不可学习的过程,简单地放大特征图会失去细节,在受到图像超分辨率的启发后,文章提出了dense upsampling convolution的模块。

Instead of trying to recover the full-resolution label map at once, we learn an array of upscaling filters to upscale the downsized feature maps into the final dense feature map of the desired size.

也就是说,文章使用卷积核来把低分辨的特征图处理成高分辨率,处理的方式就是让神经网络认为每个低分辨率的像素相邻几个channel的像素值是高分辨率特征图上对应位置像素周围的值,换句话说,生成的低分辨率高通道数的特征图是被reshape成高分辨率低通道数的特征图,而不是像以前一样用resize生成。

在encoder中,空洞卷积则是一种非常常见的卷积方式,因为其保留了高分辨率又提供了大感受野。然而,文章发现,空洞卷积存在一种叫做“gridding”的问题。随着空洞卷积的进行,卷积核覆盖的有效区域就如同一个国际象棋的棋盘呈网格状,反而会丢失掉很多临近点的信息,随着空洞的rate增加这种现象也会愈发严重。因此文章在每一个CNN的block内使用多个不同速率的空洞卷积并行计算,再把特征图拼接起来。

Dense Upsampling Convolution

DUC的结构如下所示:

Understanding Convolution for Semantic Segmentation论文解读
假设DUC输入的特征图维度为hwc,那么DUC会使用卷积输出一个维度为hw(d2L)的特征图,其中L是类别的总数,而d是上采样的放大倍数,把hw(d2L)的特征图经过reshape后,之前的每一个像素与同位置的其他通道像素组成了之后的d2个像素,这样就得到了HWL大小的特征图,再把特征图送入softmax,再经过一个argmax即可得到分类结果。由于
DUC的参数是可以学习的,因此也就有能力去捕获和恢复细节,而且也非常容易嵌入到FCN网络中,进行端到端地训练。

Hybrid Dilated Convolution

如果我们把每一层空洞卷积的中心点标红,把这个卷积核覆盖的像素标蓝,那么可以得到这样的结果:
Understanding Convolution for Semantic Segmentation论文解读
如果三个卷积层的空洞膨胀率都是2,那么相邻的像素中有很多都会被忽略,只有一小部分才会被计算到,在r=2的情况下,几层空洞卷积只利用了25%的信息,而且随着r的增加,局部的信息尤其是中心点的局部信息被严重地忽略,而利用到的信息却很可能是距离很远的无用信息。因此,使用多速率的空洞卷积非常的重要。
Understanding Convolution for Semantic Segmentation论文解读
使用了HDC后,高层卷积核利用的信息明显多了起来,不过文章提到,级联的空洞卷积的rate不能呈倍数关系如(2,4,8),否则gridding现象依旧会存在。

Conclusion

Understanding Convolution for Semantic Segmentation论文解读
经过实验可以看出,改进后的网络确实比baseline在细节和边缘上更加精细。在实验中,使用DUC的模型性能比使用Deconvolution的网络性能也要高出一些。