【简评】Understanding Convolution for Semantic Segmentation
本篇论文主要有两个创新点,DUC(dense upsampling convolution)和HDC(hybrid dilated convolution),分别针对上采样和dilated convolution问题进行改进。
我用pytorch实现了DUC功能,代码放在我的github上了,欢迎star,欢迎讨论。
DUC
语义分割任务下的网络基本都具有encoding和decoding的过程,而大多数网络在decoding时使用的是双线性插值。而双线性插值是不能学习的,且会丢失细节信息。所以,文章中提出了一种方法:dense updampling convolution——通过学习一些系列的放大的过滤器来放大降采样的feature map到最终想要的尺寸。具体结构如下:
实验对比如下:
HDC
HDC主要是为了解决使用dilated convolution会产生的“gridding issue”。
当dilated convolution在高层使用的rate变大时,对输入的采样将变得很稀疏,将不利于学习——因为一些局部信息完全丢失了,而长距离上的一些信息可能并不相关;并且gridding效应可能会打断局部信息之间的连续性。
所以,文章提出了HDC——使用一系列的dilation rates而不是只用相同的rate,并且使用ResNet-101中blocks的方式连接它们。具体展示如下:
b:连续的卷积层使用dilation rates
从这也可看出,HDC还有一个好处,可以增大网络的感受野。
实验对比如下: