专栏首页粽子的深度学习笔记图像分割之Global Convolutional Network(GCN)

图像分割之Global Convolutional Network(GCN)

论文:Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network

主要工作(创新点):

  • 提出全局卷积网络(Global Convolutional Network,GCN),用以同时提高语义分割中分类和定位的准确度。
  • 提出Boundary Refinement block(BR), 用以提高物体边界的定位。

在早期的网络中,有不少大卷积核。后来因为在相同计算复杂度下,堆叠的小滤波器比大内核更高效,比如一个 5 × 5 5\times5 5×5卷积核使用两个 3 × 3 3\times3 3×3卷积核来代替,所以目前的网络大多使用的是 3 × 3 , 1 × 1 3\times3,1\times1 3×3,1×1卷积核。然而,在语义分割领域,我们需要进行密集的逐像素预测,我们发现当我们必须同时进行分类和定位任务时,大的核(有效的感受野)起着重要的作用。

简介

文章指出了语义分割遇到的两个挑战:对像素进行分类,定位。一个设计良好的分割模型应该同时处理这两个问题。

但是,这两个任务通常是矛盾的:对于分类任务而言,模型需要对各种变换(比如旋转和平移)具有不变性,但是对于定位任务而言,模型又必须对各种变换保持敏感,因为每个像素都需要在正确的位置上进行分类。

像上图B中,很多分割网络是主要是为了定位,这样可能会降低分类性能;图C,文章提出的GCN,兼顾分类和定位。

结构设计要求:

  • 从定位角度出发,模型应该使用全卷积以保持定位性能,不使用全连接和全局池化,因为这些层会丢失定位信息;
  • 从分类的角度看,在网络结构中应采用较大size的内核,使feature maps和逐像素分类器之间紧密连接,增强了处理不同transformations的能力。

模型

GCN

作者观察到一些SOTA(这篇paper之前的)语义分割模型,其设计都是为了更好的定位,这可能会降低分类的效果。分类效果变差可能是由感受野造成的。例子如下图所示,注意有效感受野不等同于感受野,对于传统模型,即使感受野和输入图像一样大,有效感受野也只是覆盖了object鸟(A),当输入调整到更大的尺度(B),有效感受野就不能保留整个object了,(B)中可以看到只覆盖了部分,文章提出的GCN在输入图像尺寸变大的时候依然能覆盖整个object。

基于此,作者开始设计网络,从定位出发要使用全卷积,不使用全连接或者全局池化。从分类出发,卷积核size要尽可能的大。 文章使用了 1 × k + k × 1 1 \times k + k \times 1 1×k+k×1 和 k × 1 + 1 × k k \times 1 + 1 \times k k×1+1×k卷积核组合的方式来替代 k × k k \times k k×k,注意这后面没有接非线性激活函数。这样做主要是为了保证一定感受野的情况下,减少计算量,GCN结构只有 O ( 2 k ) O(\frac{2}{k}) O(k2​)的计算消耗和参数数量。

非对称卷积

GCN block

如下图所示,两条branch,分别是 1 × k + k × 1 1 \times k + k \times 1 1×k+k×1 和 k × 1 + 1 × k k \times 1 + 1 \times k k×1+1×k,比较清楚。

代码如下:

class GCM(nn.Module):
    def __init__(self, in_channels, num_class, k=15):
        super(GCM, self).__init__()

        pad = (k-1) // 2

        self.conv1 = nn.Sequential(nn.Conv2d(in_channels, num_class, kernel_size=(1, k), padding=(0, pad), bias=False),
                                   nn.Conv2d(num_class, num_class, kernel_size=(k, 1), padding=(pad, 0), bias=False))

        self.conv2 = nn.Sequential(nn.Conv2d(in_channels, num_class, kernel_size=(k, 1), padding=(pad, 0), bias=False),
                                   nn.Conv2d(num_class, num_class, kernel_size=(1, k), padding=(0, pad), bias=False))

    def forward(self, x):

        x1 = self.conv1(x)
        x2 = self.conv2(x)

        assert x1.shape == x2.shape

        return x1 + x2

BR block

网络使用了较多的Boundary Refinement结构,这是一种残差连接的结构,具体结构如下图所示,顶部 w × h × 21 w\times h \times 21 w×h×21是粗糙score map,侧边的残差连接可以对boundary进行refine,两者相加达到了Boundary Refine的效果。

代码如下:

class BR(nn.Module):
    def __init__(self, num_class):
        super(BR, self).__init__()

        self.shortcut = nn.Sequential(nn.Conv2d(num_class, num_class, 3, padding=1, bias=False),
                                      nn.ReLU(),
                                      nn.Conv2d(num_class, num_class, 3, padding=1, bias=False))

    def forward(self, x):
        return x + self.shortcut(x)

整体结构

主要构成,ResNet提取特征,FCN框架,多尺度架构(使用ResNet不同stage的feature map),GCN+BR得到较为精细的边缘,结合反卷积得到最终的结果。

Reference:

[1] 非对称卷积增强CNN特征拟合

https://zhuanlan.zhihu.com/p/38055224

https://zhuanlan.zhihu.com/p/212375354

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 语义分割--Large Kernel Matters

    Large Kernel Matters–Improve Semantic Segmentation by Global Convolutional Netwo...

    用户1148525
  • 语义分割江湖的那些事儿——从旷视说起

    今天的主题是Face++ Detection组近两年持续在做的Semantic Segmentation相关工作,代表性成果主要有:

    马上科普尚尚
  • 图像语义分割综述

    论文:Fully Convolutional Networks for Semantic Segmentation 2015CVPR

    languageX
  • GCN现有变体不完全汇总(在时空数据挖掘中的应用)

    MixHop: Higher-Order Graph Convolutional Architectures via Sparsified Neighborho...

    微风、掠过
  • 8篇CVPR2019论文开源合集(含CNN/目标检测/GAN/超分辨率/行人检测/文本检测等)

    CVPR2019 | 12篇目标检测最新论文(FSAF/GS3D/Libra R-CNN/Stereo R-CNN和GIoU等)

    Amusi
  • GIST:大规模图卷积网络的分布式培训(CS)

    图卷积网络(GCN)是图上机器学习的首选解决方案,但众所周知,就图的大小和模型参数的数量而言,其训练都很难扩展。这些限制与深度学习研究中实验规模的扩大(数据大小...

    用户8380959
  • 语义分割中的深度学习方法全解:从FCN、SegNet到各版本DeepLab

    王小新 编译自 Qure.ai Blog 量子位 出品 | 公众号 QbitAI 图像语义分割就是机器自动从图像中分割出对象区域,并识别其中的内容。 ? 量子位...

    量子位
  • 重磅推荐,计算机视觉开源周报20191003期

    总结了过去一周CV领域的最新开源代码,发现本周出现多份很有价值的高质量、重量级工作,比如致力于使得图卷积网络更深的DeepGCNs、Mask引导的注意力网络大大...

    CV君
  • IJCAI 2021 医药AI必读论文推荐

    AMA-GCN: Adaptive Multi-layer Aggregation Graph Convolutional Network for Diseas...

    DrugAI
  • KDD 2021 | 时空动态图网络用于交通流的预测

    ACM SIGKDD(Conference on Knowledge Discovery and Data Mining, KDD)是世界数据挖掘领域的最高级别...

    VachelHu
  • 图神经网络入门(五)不同类型的图

    在此前介绍的所有工作基本上都围绕无向的、节点自带标签信息的简单图结构展开,而这一部分我们将探讨更多种类的图结构与相关的工作。

    Houye
  • 图嵌入

    通过深度学习技术将图中的节点(或边)映射为向量空间中的点,进而可以对向量空间中的点进行聚类、分类等处理

    DC童生
  • 语义分割+视频分割 开源代码文献集合

    语义分割 Global Deconvolutional Networks BMVC 2016 https://github.com/DrSleep...

    用户1148525
  • 今日 Paper | ACEnet上下文编码网络;卷积网络生物系统;欺诈检测;DialogueGCN等

    论文名称:ACEnet: Anatomical Context-Encoding Network for Neuroanatomy Segmentation

    AI科技评论
  • 一文看尽语义分割中的non-local及其变种

    Non-local或者说self-attention,由于可以较好的刻画全局信息, 在多种任务中都有不错的表现,在语义分割中也是如此,这里我们列举了13篇相关论...

    椒盐蛋白
  • CVPR2019 | 基于图学习卷积网络的半监督学习

    今天给大家介绍的是安徽大学的Bo Jiang 在CVPR2019上发表的文章“Semi-supervised Learning with Graph Learn...

    智能生信
  • 基于图卷积网络的运动结构图像检索(CS CV)

    用于运动结构(SfM)的常规图像检索技术受到有效识别重复模式的局限,无法保证以高精度和高召回率创建足够的匹配对。在本文中,我们提出了一种基于图卷积网络(GCN)...

    gaowanting
  • 2019年Philip S. Yu团队的图神经网络综述

    使用graph来表示对象之间的复杂关系和依赖关系,然而graph数据的复杂已有的机器学习算法很难处理,所以使用深度学习方法来处理。A Comprehensive...

    Earnest lee
  • 用于单目3D人体姿态估计的局部连接网络,克服图卷积网络限制

    本文是被人工智能领域的顶级期刊 IEEE Transactions on Pattern Analysis and Machine Intelligence(T...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券