Semantic Segmentation---GCN:Large Kernel Matters---Improve Semantic Segmantic by Global ...(论文解读四)

Title:GCN:Large Kernel Matters---Improve Semantic Segmantic by Global Convolutional Network
Note data:2019/05/13
Abstract:GCN提出了Global Convolutional Network(GCN),同时给出了一个基于残差(residual)的boundary   refinement(BR)模块用于细化物体边界,论文在PASCAL VOC 2012(82.2%)和Cityscapes(76.9% )上达到了state-of-the-art.
Code :pytorch


目录

GCN论文解读

1 Abstract 

2 Introduction

3 Related work

4 Architecture

4.1 网络设计两个原则

5 Experiment

5.1 预训练模型

5.2 PASCAL VOC 2012

5.3 Cityscapes

6 Conclution

复现结果


GCN论文解读

1 Abstract 

论文提出一种Semantic Segmentation模型:GCN

网络结构:基于FCN提出大卷积概念与边界精细化边界Boundary Refinement Block

创新:提出7*7大卷积,提出边界精细化模块Boundary Refinement block,提高语义分割前景物体边界的定位精度

动机:主要解决分类与定位之间的矛盾

最近的一些网络结构趋向使用小卷积(如GoogleNet提出的1*1,VGG中的3*3),但是对于语义分割是一种逐像素分割预测,需要兼顾分类与定位的矛盾关系,提出了一种解决这种矛盾关系的GCN语义分割模型!同时给出了一个基于残差的boundary refinement(BR)模块用于细化物体边界,论文在PASCAL VOC 2012(82.2%)和Cityscapes(76.9% )上达到了state-of-the-art.

效果图:


2 Introduction

在语义分割任务中主要面对两个主要问题:

  • 分类:应该正确标记与特定语义概念相关的对象;
  • 定位:像素的分类标签必须与输出分数图中的适当坐标对齐。

对于分类任务,模型必须对各种变换(如平移和旋转)不变。 但是对于定位任务,模型应该是变换敏感的,即精确地定位每个语义类别的像素。论文中精心设计的细分模型应该同时处理这两个问题。

两个问题任务重点GCN方法
Classification

获得每个像素的语义信息,

使得每个像素分类正确

模型对各种变换具有不变性

(如平移翻转等)

网络应该采用较大的核,使得feature map与

像素分类层之间有密切的连接,从而增强处理不同变换的能力

Localization

使得每个像素的label与对应的种类信息正确

对变换敏感,可以精确定位每个语义类别的像素

 

模型应该是完全卷积(没有FC或全局池化),保持定位信息

论文中对两个问题给出的示意图:

            

  • Figure1.A  Classification : 多次提取高层次的feature map,然后做分类. 例如:AlexNet,VGGNet,GoogleNet,ResNet等,整体呈现的是“圆锥形网络”(Cone-shaped),这样的feature map的空间上是粗糙的(高语义的),分类任务可通过后续接FC层或全局池化层,这样有模型能接收不同类型的输入,保持较强的鲁棒性。
  • Figure1.B. Segmentation : 输入和输出大小相同(feature map尺度没变),全卷积层最后每个通道对应一个分类结果. 这需要有较大的feature map保持空间信息。所有大多数模型例如:FCN,DeepLab,Deconv-Net采用桶状(Barrel-shaped)结构,使用Deconvolution, Unpooling 和Dilated-Convolution等技术反向生成高分辨率feature map.
  • Figure1.C. GCN : 全卷积设计,最后分类使用了多通道的信息(和ShuffleNet有那么点神似). 考虑到B中分类器和feature map不是全局连接,难以处理输入上的变换。例如下图,分类器与输入对象的红点对齐,如果接收野不够大(valid receptive filed,VRF),则很难分别出来.如果使用更大的feature map,则效果更差. 如下图所示:

  


3 Related work

以FCN为基础,从三个方面尝试提高semantic segmentation 性能:

  1. Context Embedding : 上下文语义嵌入。这里列举了一些工作:ParseNet使用全局池化分支增加额外上下文信息;Dilated-Net使用空洞卷积增加上下文信息;Deeplab-V2使用Atrous Spatial Pyramid Pooling模块增加上下文信息.
  2. Resolution Enlarging : FCN是使用deconvolution来提高层次的feature map的分辨率;在Deconv-Net和SegNet上采用unpooling来学习上采样;Deeplab和Dilated-Net提出了一个特殊的dilated convolution来扩大feature map的大小,从而达到更大的分辨图.
  3. Boundary Alignment : 边界对齐的任务是优化分割对象的边界预测。许多方法是使用CRF(条件随机场)。后续的Deeplab提出的denseCRF等等一大堆的CRF改进版。

与以前的网络相反,我们认为语义分割是large feature map的分类任务,我们的GCN可以同时满足分类和定位的要求。 


4 Architecture

在GCN架构中,将核大小增加到feature map的空间大小,从而可以获取全局信息(Global Convolution)。这里没有直接使用大卷积核,而是采用GoogleNet的思想,将大卷积核拆分为卷积组合,即GCN模块,这里在卷积层后不使用非线性,保持计算复杂度为O(2k)O(2k)。

模型的整体架构如下(下图F2.A): 

模型使用ResNet作为特征提取层(后面实验有介绍),使用FCN的结构作为分割架构。不同尺度的特征是从不同大小的feature map上提取的,对于不同层级的feature map使用GCN提取全局信息,同时高层次的feature map通过上采样来补充语义信息,最终融合得到预测图。这里提出了一个残差结构(residual structure)的BR模块(上图F2.C)学习边界信息。

4.1 网络设计两个原则:

定位角度:使用全卷积保持定位信息,不使用全连接和全局池化结构,因为这两种结构会丢失掉一些位置信息;定位角度缺失了分类的旋转、尺度缩减的不变性,文章提到了有效接受域VRF,当输入的尺度改变时,有效接受域随之改变了,但是GCN保持了有效接受域足够大能包围目标物体,如下图:
在这里插入图片描述
分类角度:大尺寸的卷积核,这里用对称的独立卷积核组成大size的卷积核,减小了大量的参数(kxk -> kx1+1xk),并且没有非线性操作。    
在这里插入图片描述
还要注意这里文章有段原话是the kernel size of the convolutional structure should be as large as possible.卷积核size尽可能的大,为什么呢?我认为是因为从定位角度出发取消了全连接结构,但又要维持分类性能即需要全连接的特性,所以用一个尽可能大的卷积size来取缔全连接结构。试想其实一个与feature map的宽高相同的kernel size进行卷积操作其实就是全连接计算。

BR模块
另外设计BR模块使边界处的定位能力大大提升。这里是一个残差结构,进行边缘的refinement。


5 Experiment

论文在PASCAL VOC 2012和Cityscapes上做了评估。

将输入放缩到512×512,这样最终的feature map大小为16×16,论文比较了四种结构,示意图如下:

         
A:GCN结构,使用参数k控制核大小,论文使用了不同k(3到15,使用奇数保持对齐),论证了论文思想。在k=15是接收野大概为16×16,达到了“全局卷积”,在实验结果上来看,性能随着内核大小k增加而增加,从而论证了GCN的设计思想。 

                  

B:单纯的1×1卷积,提供一个baseline

C:考虑到模型性能提升可能是因为参数增加,这里设计一个k×k的卷积核做对比,从结果来看,GCN结构比大卷积核效果好,可以看到随着k增加,大卷积核效果反倒下降了,这其中的原因可能是因为过拟合,在训练过程中,因为参数多,网络难以收敛,实际原因还有待研究 

                  

D:对于大卷积核,可以使用小卷积核堆叠达到类似的接收野,为了等效比较,在堆叠小卷积时没用使用非线性(在VGG那些网络中使用非线性了,但是计算量也上去了),结果是GCN好一点。 
                       
同时还比较了堆叠小卷积核数量的影响,随着卷积核数目减少性能也减少了,结果还是GCN好一点: 

                     
其他实验:为了进一步分析GCN是如何影响分割结果的,即论证GCN是通过引入密集连接来提高分类结果,通过BR来细化边缘分割,论文将评分分为两部分:

  • boundary region:像素点接近分割边缘的部分,取distance<7
  • internal region: 除了boundary region剩余的像素

实验结果如下(k=15k=15): 
                 
可以看到GCN有效的提高了Internal的评分,BR提高了Boundary的评分.

5.1 预训练模型

考虑到大卷积核的优点,很自然的把GCN的思想应用到ResNet152上,论文提出了一个ResNet-GCN结构,如下图:

为了尽可能同条件比较,将Resnet-GCN精心选择kk达到和原Resnet相似的计算量和参数量,先在ImageNet2015上预训练,再在PASCAL VOC 2012微调,考虑到Resnet152计算成本太高,这里选择Resnet50来比较,模型结构如下: 

         
实验结果如下:

                      

可以看到,在ImageNet上Resnet-GCN的结果稍差,但是在semantic segmentation上表现好了很多,可以有信心的得出GCN有助于提高分割性能。

5.2 PASCAL VOC 2012

在PASCAL VOC 2012数据集上,

先使用MS COCO数据集预训练,训练分为三个阶段:

  • Stage-1: 将COCO,BSD,标准的PASCAL VOC 2012混合成一个109,892数据集训练
  • Stage-2: 使用BSD,PASCAL VOC 2012预训练调整模型
  • Stage-3: 只使用PASCAL VOC 2012

输入图片在Stage-1会填充到640×640,在Stage2-3会填充到512×512,实验结果如下:

               

GCN+BR效果较好,同时后添加CRF会进一步提升.

提交到PASCAL VOC 2012获得了state-of-the-art:

                               

5.3 Cityscapes

Cityscapes的图片大小固定为1024×20481024×2048,这对于模型太大了,故先随机将图片裁剪成800×800800×800来训练,同时将GCN的kk从15提升到25,最后的特征图大小为25×2525×25。训练一共分为2个阶段:

  • Stage-1 : 混合标注粗糙和精细的图片,一共22973张,一起训练
  • Stage-2 : 只对训练集上图片做微调

结果如下: 

                  
在测试阶段,将图片切分为4个1024×10241024×1024,融合预测分数.提交得到了state-of-the-art成绩:

                    


6 Conclution

给出分析结果:大核有助于提高分类结果,全卷积可以保持分割信息,使用BR可以细化分割结果。后面的实验给出了验证,实验效果还可以。 
 

复现结果:。。。

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值