【图像语义分割】Large Kernel Maters--Improved Semantic Segmentation by Global ConvNet

来源:互联网 发布:盘点2016网络流行语 编辑:程序博客网 时间:2024/06/05 04:23

该篇文章是face++的文章,个人觉得相当严谨

摘要:

目前流行的网络架构往往通过堆积小的卷积核(stack small filters),因为在相同计算量下,stack small filters往往比large kernel更加有效。然而在图像语义分割这块,我们需要做一个dense per-pixle prediction, 我们发现大内核在同时实现localization和classification的时候能够起到重要的作用。在这个设计原则下,我们提出了一个Global Convolutional Network来同时解决classification和localization问题。我们同时也提出了基于残差的图像块来further refine the object boundaries。

正文:

先明白一点,Sementic Segment到底在做一件什么事情。实际上Sementic Segment主要是解决两个子问题:1)classification; 2)localization
然而这两个子问题在一定程度上存在着冲突
对于classification task来说: 我们的网络模型需要一定的平移旋转不变性
对应localization task来说:模型需要transformation sensitive,因为我们需要对每个locate每个pixle

这里我简单概括一下,也就是指的是classification需要大的感受野,也往往就需要小的feature map。 而localization需要一个大的feature map,因为这样包含着更大的空域信息。因此对于Classification的网络往往是锥型的,而localization的网络往往是桶型的

原文原话是:

For classification, most modern frameworks such as AlexNet [20], VGG Net [30], GoogleNet [31, 32] or ResNet [14] employ the ”Cone-shaped” networks shown in Figure 1 A: features are extracted from a relatively small hidden layer, which is coarse on spatial dimensions, and classifiers are densely connected to entire feature map via fullyconnected layer [20, 30] or global pooling layer [31, 32, 14], which makes features robust to locally disturbances and allows classifiers to handle different types of input transformations For localization, in contrast, we need relatively large feature maps to encode more spatial information.

为了解决这两个问题,本文提出了一种新的架构称之为:Global Convolutional Network(GCN)来同时解决这两个问题。
本文的网络结构设计如下:
1)从localization角度来说,网络层需要全卷积
2)从classification角度来说,我们采取大内核来解决平移不变性

这里介绍几个相关工作
1. Context Embeding,
上下文嵌入: Zoom-out 手工提取了层级上下文特征
Dialted-Net 在score map后嵌入multi-scale context
DeeplabV2 使用了Atrous Spatial Pyramid Pooling

2. Resolution Enlarging,
FCN利用了转置卷积deconvolution
DeconvNetSegNet 引入了unpooling操作
LRR 认为unsampling上采样特征比上采样score更好
DeeplabDialted-Net提出了一种特殊的dilated conv来直接增大特征map的空域大小

3. Boundary Alignment,通过对预测结果进行进一步的refine。
比如Deeplab V1的CRF,及一些将CRF融入到网络中的一些模型

本文方法
本文提出了Global ConvNet+Boundary Refinement
这里写图片描述
our GCN module employs a combination of 1 × k + k × 1 and k × 1 + 1 × k convolutions, which enables densely connections within a large k×k region in the feature map

Global ConvNet结构
Specially, if the kernel size increases to the spatial size of feature map (named global convolution), the network will share the same benefit with pure classification models.
;Global ConvNet

Boundary Refinement结构
Boundary Refinement

Experiment:

该文的实验做的相当全,做了各种对照实验。
这里写图片描述
从a whole pipeline中可以看到,feature map到最后为16x16的大小,为了保证卷积核的alignment问题,核大小一般选择奇数,因此该文最大选择15x15的kernel size。

当然在kernel的大小选择上,本文对各种大小的kernel进行了实验:其中的base选择1x1的卷积核,见Fig4(b)
这里写图片描述
该类实验在PASCAL VOC2012上进行实验,可以发现,当随着kernel size的增大时,score也在提升。

然而第一个实验的对照组并不能直接说明是GCN引起的性能提升,原因很简单,GCN用了更大的核,那么会不会是参数引起的性能提升呢?因此作者做了第二组实验。

直接拿一个kxk的kernel(见Figure4(c))来与GCN进行对比:
这里写图片描述
事实证明GCN依然比直接拿一个大kernel的性能提升要好

既然在GCN要比大kernel效果好,但是以前常规的网络都是通过stack small filters来增大感受野,然而实验证明在相同堆栈下,GCN依然比stack small filters(Figure4 D)的性能要好。
这里写图片描述

相同堆栈下,large kernel size可能会比GCN带来更多参数。所以是不是参数量的增大而导致性能的下降呢?
这里写图片描述
然而事实证明performance suffers from degradation with fewer parameters。

事实上,我们已经分析了GCN在classification这个子问题上有很好的性能,但是在localization这个sub task呢?
作者又做了几个实验,分开boundary和Internal两个区域,
这里写图片描述

关于Fine-tuning和pre-trained
这里写图片描述
A为baseline,分别在ImageNet上进行预训练

这里写图片描述
事实证明当有GCN的ResNet要比Baseline搞出5.5%

总结:该篇文章的实验相当严谨,我认为相当不错

阅读全文
0 0
原创粉丝点击