使用 CNN 处理图像问题已经是常规操作,但此类方法会造成局部位置信息的损失。如何解决这个问题呢?来自中科院自动化所和北京中医药大学的研究者另辟蹊径,提出用图卷积网络解决语义分割问题。

选自arXiv,作者:Yi Lu等,机器之心编译,参与:魔王、杜伟。

论文链接:https://arxiv.org/pdf/2001.00335.pdf

使用深度学习执行语义分割在图像像素分类方面取得了巨大进步。但是,深度学习提取高级特征时往往忽略了局部位置信息(local location information),而这对于图像语义分割而言非常重要。

为了避免上述问题,来自中科院自动化所、北京中医药大学的研究者们提出一个执行图像语义分割任务的图模型 Graph-FCN,该模型由全卷积网络(FCN)进行初始化

首先,通过卷积网络将图像网格数据扩展至图结构数据,这样就把语义分割问题转换成了图节点分类问题;然后,使用图卷积网络解决图节点分类问题。

研究者称,这是首次将图卷积网络用于图像语义分割的尝试。该方法在 VOC 数据集上获得了有竞争力的 mIOU 性能,相比原始 FCN 模型有 1.34% 的性能提升。

Graph-FCN 架构图。

语义分割问题的难点

语义分割是计算机视觉领域中的重要课题,其复杂程度超过分类和检测任务。这项密集预测任务需要预测每个像素的类别,也就是说它需要从高级语义信息和局部位置信息中学习目标轮廓、目标位置和目标类别

基于深度学习的语义分割方法,具体而言即卷积神经网络(CNN),为该领域带来了一系列巨大进展。提取高级特征的强大泛化能力使得图像分类和检测任务取得了非常好的性能,但伴随泛化而来的局部位置信息损失则为密集预测任务增加了难度。具备较大感受野的高级语义信息对应卷积神经网络中的小型特征图,这类图会造成像素级局部位置信息的损失。

多种基于深度学习的方法对该问题带来了改进,如全卷积网络 [16]、Segent [1]、Deeplab 方法 [2,3,4]。这些工作使用全连接层、空洞卷积和金字塔结构,来减少提取高级特征过程中的位置信息损失。

中科院等提出语义分割难题新解法

首先,研究者为图像语义分割问题构建图节点模型。图模型方法广泛应用于分割问题,这类方法将像素视作节点,将节点之间的差异度(dissimilarity)视作边(edge)。最优的分割即对图执行最大割(maximum cut)。

结合了概率论和图论的概率图模型方法(如马尔可夫随机场和条件随机场)被用于细化语义分割结果。这些方法将检测到的目标建模为图节点,通过提取目标之间的关系来改进检测准确率。相比于深度卷积模型把输入数据表示为网格结构,图模型具备更灵活的跳跃连接(skip connection),因此它可以探索图中节点之间的关系

受限于计算量,研究者使用 FCN 初始化该图模型。该图模型基于小尺寸图像构建,其节点标注由 FCN 进行初始化,边的权重则由高斯核函数进行初始化。

图 1:FCN 结构示意图。本研究使用 FCN-16s 作为基础模型对节点标注进行初始化。

然后使用图卷积网络(GCN)解决这个图模型。GCN 是处理图结构数据的当前最优模型之一。基于节点的 GCN 利用消息传播(message propagation)来交换相邻节点之间的信息。这一过程可以在图的较大相邻范围内提取特征,其作用类似于卷积网络中的卷积层和池化层。由于该过程中不会有节点消失,因此基于节点的 GCN 扩展了感受野,并避免了局部位置信息出现损失

这篇论文提出了新型模型 Graph-FCN 来解决语义分割问题。研究者使用深度卷积网络建模图,并首次用 GCN 方法解决图像语义分割任务。Graph-FCN 可以扩大感受野,同时避免局部位置信息出现损失。实验表明,Graph-FCN 的性能优于 FCN。

Graph-FCN 方法详解

GCN 旨在解决图结构数据集上的学习问题。图结构数据可看作是三元组 G(N, E, U),其中 N 表示图的节点集合,即 |N| ∗ S 矩阵(|N| 表示图节点数量,S 表示节点标注向量的维度)。E 是图的边集合。U 对应图特征,由于本研究涉及任务与 U 无关,因此本研究不讨论 U。

与欧几里德空间中的数据表示不同,矩阵 N 和边 E 并非独特表示。矩阵 N 与 E 对应,它们都按照节点的顺序排列。研究者使用监督学习方式训练模型。节点 n_j 表示图 j 中的节点集,t_j 表示节点集 n_j 的标注集。因此用于语义分割任务的图模型可公式化为:

研究者将交叉熵函数作为该模型的损失函数。T_r 表示训练集。

节点

在本研究提出的新模型中,节点标注由 FCN-16s 进行初始化。通过端到端训练后,FCN-16s 得到步幅为 16 和 32 的特征图,如下图 2 所示。对步幅为 16 的特征图执行因子为 2 的上采样可以获得与步幅为 32 的特征图一样的大小。(节点 j 的)标注 x_j 由这两个特征向量以及特征图中每个节点位置的级联进行初始化。该标注包含在局部感受野上提取到的特征。在训练过程中,研究者通过对原始标注图像执行池化操作来得到节点标签。

图 2:节点标注初始化过程。节点标注由 FCN-16s 中两个层的级联进行初始化。

在图模型中,边和邻接矩阵相关。假设每个节点和其最邻近的 l 个节点相连,这意味着节点标注可以通过图神经网络中的边进行迁移。下图 3 中的示例描述了图神经网络中的感受野。假设 l 为 4,那么从相关距离的影响来看,我们需要用高斯核函数获得权重邻接矩阵 A。

图 3:当 l 为 4 时,双层 GCN 的感受野。这与卷积层不同。

使用 Graph-FCN 进行训练

在 Graph-FCN 中,FCN-16s 实现节点分类和图模型在小型特征图中的初始化。同时,双层 GCN 获取图中节点的分类结果。研究者分别计算这两部分输出的交叉熵损失。和 FCN-16s 模型一样,Graph-FCN 也以端到端模式进行训练。Graph-FCN 网络结构如下图 4 所示:

图 4:Graph-FCN 的结构示意图。该模型有两个输出和两个损失 L1 和 L2。它们共享卷积层提取特征的权重。L1 通过 output1 计算得到,L2 通过 output2 计算得到。通过最小化 L1 和 L2,FCN-16s 的性能得到了提升。

实验

研究者在 VOC2012 数据集上对模型进行测试,实验结果表明 Graph-FCN 的性能优于原始 FCN 模型。

表 1:Graph-FCN 和 FCN-16s 的性能对比情况。
图 5:图像语义分割结果。第二列是 Graph-FCN 的结果,第三列是 FCN-16s 的结果,第四列是 ground truth。

fcn网络训练代码_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...相关推荐

  1. 分割 标注数据_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...

    选自arXiv 作者:Yi Lu等 机器之心编译 参与:魔王.杜伟 使用 CNN 处理图像问题已经是常规操作,但此类方法会造成局部位置信息的损失.如何解决这个问题呢?来自中科院自动化所和北京中医药大学 ...

  2. gcn语义分割_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...

    选自arXiv 作者:Yi Lu等机器之心编译参与:魔王.杜伟 使用 CNN 处理图像问题已经是常规操作,但此类方法会造成局部位置信息的损失.如何解决这个问题呢?来自中科院自动化所和北京中医药大学的研 ...

  3. 另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 本文转载自:机器之心  |   参与:魔王.杜伟 作者:Yi Lu等   使用 C ...

  4. fcn网络训练代码_用FCN做分割

    船长黑板报所有文章和代码的最新版本均在 Captain1986/CaptainBlackboard​github.com 维护,知乎不做维护 您的Star是对我的鼓励 图像分割是计算机视觉中比较常见的 ...

  5. gcn在图像上的应用_使用图卷积网络(GCN)做图像分割

    Title: Graph-FCN for image semantic segmentation 论文网址:https://arxiv.org/pdf/2001.00335.pdf 作者:Yi Lu1 ...

  6. Nature Communications: MOGONET使用图卷积网络集成多组学数据,允许患者分类和生物标志物识别

    Nature Communications: MOGONET使用图卷积网络集成多组学数据,允许患者分类和生物标志物识别 1. 论文简介 Wang T, Shao W, Huang Z, et al. ...

  7. RGCN - Modeling Relational Data with Graph Convolutional Networks 使用图卷积网络对关系数据进行建模 ESWC 2018

    文章目录 1 相关介绍 两个任务 main contributions 2 Neural relational modeling 2.1 符号定义 2.2 关系图卷积网络R-GCN 2.3 Regul ...

  8. fcn网络训练代码_FCN网络训练 菜鸟版

    论文全名:Fully Convolutional Networks for Semantic Segmentation 全卷积神经网络 FCN代码运行详解: 运行平台: Ubuntu 14.04 + ...

  9. python3网络爬虫代码_《Python3网络爬虫开发实战代码》

    <Python3网络爬虫开发实战代码>\appium\.git\COMMIT_EDITMSG, 7 , 2017-08-15 <Python3网络爬虫开发实战代码>\appiu ...

最新文章

  1. Python实现 logistic 回归算法
  2. 《python核心编程》读书笔记--第15章 正则表达式
  3. .net core 使用redis 基于 StackExchange.Redis
  4. 职场上个人的核心技术_职场上,这3种人表面老实,实际却是个“高手”,要远离...
  5. Hive 执行计划之Reduce Output Operator
  6. python 字典查找效率_Python字典查找性能,get-vs-in
  7. Python程序打包exe文件(pyinstaller)
  8. Android一帧一帧的动画
  9. u盘计算机软件,USBoot(U盘启动盘制作工具)
  10. 计算机ppt用快捷键,【搞定PPT】高效重复快捷键F4
  11. 多视几何009:对极几何
  12. 哪一种编程语言适合人工智能
  13. gamemaker学习笔记:跳跃
  14. 3-综合案例:月福首页-多媒体-图片热点-框架
  15. C++ register 关键字
  16. 看服务器时间修改日志,怎样看服务器远程更改时间记录
  17. 语文七年级计算机作文,我从电脑游戏中学到了语文初一作文
  18. C语言 计算签到所得积分
  19. 2021-07-19 暑假集训Day1
  20. pt mysql_pt(Percona Toolkit)工具详解:(二)工具介绍

热门文章

  1. CLR运行时细节 - Method Descriptor
  2. Opserver开源的服务器监控系统(ASP.NET)
  3. Android之给控件添加水纹波效果
  4. linux c之把最简单的字符串数据追加写入文件
  5. linux网络编程之sockaddr_in和in_addr区别
  6. Spring+EhCache缓存实例(详细讲解+源码下载)
  7. Android之二维码扫描的总结
  8. Android之使用PopupWindow使用和总结
  9. 栈和队列之设计一个有getMin(得到最小值)功能的栈
  10. Android之手机摇一摇震动刷新(支持ListView、GridView、WebView)并生成我的二维码