版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kevin_zhao_zl/article/details/84750779
论文地址 :RefineNet: Multi-Path Refinement Networks with Identity Mappings for High-
Resolution Semantic Segmentation
论文代码:github链接
1. 问题提出
使用深度卷积神经网络进行图像语义分割都会遇到这样的问题:pooling和卷积步长导致feature map尺寸降低,损失了精细特征,针对这个问题很多论文提出了解决方案:
- pooling下采样导致分辨率的损失,采用DeConv反卷积方式很难恢复位置信息;
- 使用空洞卷积增大感受野,,但是这样有两个缺点:(1)增加了计算代价;(2)空洞卷积本质是一个粗糙的Sub-Sampling,损失了重要的信息[是不是一个改进的点,还是已经得到了改进?];
- skip-connections产生高分辨率的预测,这也是本文作者借鉴的点;
2. 提出方案
- 提出多路RefineNet,利用多个层级的特征,使得语义分割更加精确
- 利用Residual Connections(恒等映射),使得梯度更加容易长/短传,使端到端的训练更加高效
- 提出chained residual pooling,可以从较大的区域捕捉北京的上下文信息
3. 基本架构
RefineNet架构灵活,和FCN一样可以有多种变形:
3.1 Single RefineNet
3.1 2-cascaded RefineNet
3.1 4-cascaded RefineNet
3.1 4-cascaded 2-scale RefineNet
4. 架构解读
从上一节可以看到,模型的基本结构是RefineNet Block,详细结构如下:
4.1 RCU:Residual Convolution Unit
这一部分主要用于微调预训练好的ResNet来适应我们自己的任务,是原始ResNet的一个卷积单元的卷积版本,如3.3中的图片,RefineNet-4的filters数量是512,其余三个都是256。
4.2 Multi-Resolution Fusion
这一部分中,实现对输入进行卷积以产生相同维度的特征图,然后把所有特征图上采样至最大的输入的尺寸,最后将所有特征图fused by summation。如果只有一个输入路径(3.3中的RefineNet-4),那么这个输入可以跳过这个模块,也就是go through without changes。
4.3 Chained Residual Pooling
这个模块主要用于较大图像区域中捕获背景的上下文信息。
4.4 Output Convolutions
这个部分由三个RCU串联而成,主要将非线性操作应用到多路融合的特征图从而产生用于分类的特征图,通过这个部分特征图维度不变。