RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation

现状:在图像分割这一块,图像在输出时尺寸不能变小,为了解决这个问题,DeepLab是一个比较大的进步,使用dilated convolution使得在不改变图像尺寸的同时扩大接受野,但是有缺陷,一个就是由于卷积层需要处理具有大量高维度细节特征的特征图,这使得计算上付出的代价太大,这也限制了输出尺寸一般为原输入的1/8。另一个就是dilated convolution是一种对特征的粗采样,从而导致本质上忽略了一些细节。而另一种办法是整合中间层的特征来生成高分辨率的图像输出,像FCN和Hypercolumn就是代表。而针对如何有效地采样中间特征这个问题,RefineNet作出了贡献。

主要贡献:

1、提出了一个新的结构(RefineNet)来采集来自中间层的特征,RefineNet以递归的形式refine了低分辨率的语义特征(高级)和精细的低层特征来产生高分辨率的输出图像。

2、RefineNet中的所有部分都用带有identity mapping的residual connection,这使得梯度的传播变得容易了,从而可以有效地进行端到端的训练。

3、提出了一个新的component——“chained residual pooling”,这是为了便于对图片中的大范围场景比如背景的context进行提取。

接下来我们看看RefineNet的结构:

1、Multi-Path Refinement:

Multi-Path Refinement

首先看看整体的构造:左边相当于是一个ResNet部分,中间是RefineNet,右边上方是输出的高分辨率的特征图,再经过一个dense softmax层即输出分割好的图像。Multi-Path指的就是ResNet每层的输出与RefineNet连接的部分。

从图中可以看到,除了RefineNet-4,每个RefineNet接收的输入为一层Residual block的输出与上一个RefineNet的输出,RefineNet-4只接收最高一层Residual block的输出为输入。但是这个结构并不是固定的,在后面部分会有讲结构的变体。

每个RefineNets参数不相关,这就允许了对于独立级别的细节更灵活的适应性。

2、RefineNet

RefineNet

这是具体的RefineNet的构造,由四个主要部分组成,分别是:RCU、Multi-resolution Fusion、Chained Residual Pooling以及Output conv.(RCU)。可以看出,RefineNet是可以接收任意数量的特征图输入的。

Adaptive Conv中的RCU相当于简化了的原始ResNet中的卷积单元(移除了batch-normalization层),主要用于fine-tune预训练的ResNet的权重。

随后的Multi-resolution Fusion中,第一个卷积层用于对输入的adaptation,产生相同尺寸的特征图,再用上采样将特征图变为最高分辨率的特征图,从而完成特征图的Sum操作。

接下来进入Chained Residual Pooling,背景的区域一般很大,普通池化可能需要对其采用很大的窗口,而链式池化可以减少每层池化所用的窗口大小,这就是这一个component的目的。而仍然采用residual connection,有一个理由就是因为它有利于梯度的传播。

最后的Output Conv,对经过整合的特征图进行非线性操作,这是为了未来的处理或者是预测产生特征。

实验:

下面是RefineNet在各个数据集上的表现:(部分)


Cityscapes
PASCAL VOC 2012

变体:

1、Single RefineNet

Single RefineNet

2、2-cascaded RefineNet

2-cascaded RefineNet

3、4-cascaded 2-scale RefineNet

4-cascaded 2-scale RefineNet

作者还对这几种变体都进行了实验,结果如下:

Variants Experiment

发现4-cascaded 2-scale RefineNet的效果其实是最好的,这可能是因为网络容量变大的原因,但是由于训练时间较长于是选择了折中的4-cascaded RefineNet。

你可能感兴趣的:(RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation)