今天开启新的专栏《图像分割模型》。在这里,我们将共同探索解决分割问题的主流网络结构和设计思想,这是第1篇文章。

今天要说的是占据了图像分割编解码结构大半江山的Fully Convolutional Network(FCN)。

作者 | 孙叔桥

编辑 | 言有三

1 什么是分割

分割,顾名思义,就是把一个完整的东西按照某种方式或规则分成若干个部分。

那么什么是图像分割呢?简单来说,就是把图像中属于同一类别或同一个体的东西划分在一起,并将各个子部分区分开来。像下图这样:

为了训练神经网络,图片中这些像素点会按照某种规则被贴上一个“标签”,比如这个像素点是属于人、天空、草地还是树;更详细一点,可以再给它们第二个标签,声明它们是属于“哪一个人”或“哪一棵树”。

对于只有一个标签的(只区分类别)的任务,我们称之为“语义分割”(semantic segmentation);对于区分相同类别的不同个体的,则称之为实例分割(instance segmentation)。由于实例分割往往只能分辨可数目标,因此,为了同时实现实例分割与不可数类别的语义分割,2018年Alexander Kirillov等人提出了全景分割(panoptic segmentation)的概念。

下图分别展示了(a)原始图像,(b)语义分割,(c)实例分割和(d)全景分割。

2 FCN

目前在图像分割领域比较成功的算法,有很大一部分都来自于同一个先驱:Long等人提出的Fully Convolutional Network(FCN),也就是今天我们要讨论的网络结构。FCN将分类网络转换成用于分割任务的网络结构,并证明了在分割问题上,可以实现端到端的网络训练。基于此,FCN成为了深度学习解决分割问题的奠基石。

目标识别网络(分类网络)尽管表面上来看可以接受任意尺寸的图片作为输入,但是由于网络结构最后全连接层的存在,使其丢失了输入的空间信息,因此,这些网络并没有办法直接用于解决诸如分割等稠密估计的问题。

考虑到这一点,FCN用卷积层和池化层替代了分类网络中的全连接层,从而使得网络结构可以适应像素级的稠密估计任务。如下图所示,这种全卷积网络结构不仅能够支持稠密估计,而且能够实现端到端的训练。

输入:整幅图像。

输出:空间尺寸与输入图像相同,通道数等于全部类别个数。

真值:通道数为1(或2)的分割图像。

(1)全连接层转换成卷积层

如前文所述,将全连接层替换成卷积层的优势之一,是可以使网络用于稠密估计任务,并实现端到端训练。比如下图中,将全连接层替换成卷积层后,可以使得网络输出一个热度图(heatmap),而非单个类别标签。

而这种做法的另外一个优势就是,通过接收整幅图像作为输入,而非以图块的形式处理图片,网络在处理速度上也有了明显提升。

(2)连接不同尺度下的层

分类网络通常会通过设置步长的方式逐渐减小每层的空间尺寸,这种方式可以同时实现计算量的缩小和信息的浓缩。尽管这种操作对于分类任务是很有效的,但是对于分割这样需要稠密估计的任务而言,这种浓缩就未必是好事了。

比如下面这张图就是全局步长32下的分割效果。虽然实现了分割,但是结果很粗糙,看不出来目标的细节。

于是,为了解决这个问题,FCN将不同全局步长下的层之间进行连接。具体网络结构如下图所示。

这样一来,随着细节信息的逐渐加入,分割的结果也越来越好。比如下图从左到右分别对应了全局步长32、全局步长16和全局步长8下的结果。最右侧是真值。

3 实验结果

FCN可以与大部分分类网络有效结合,下表中给出了在PASCAL VOC 2011数据库下,FCN与AlexNet、FCN-VGG16和FCN-GoogLeNet结合的结果。

4 总结与思考

尽管FCN意义重大,在当时来讲效果也相当惊人,但是FCN本身仍然有许多局限。比如:

没有考虑全局信息

无法解决实例分割问题

速度远不能达到实时

不能够应对诸如3D点云等不定型数据

基于此,各路研究大神们提出了针对不同局限的各种方法。下图给出了部分研究成果与FCN的关系。

今天的图像分割模型到此结束,下回再见。

本专栏文章:

第一期:【图像分割模型】从FCN说起

第二期:【图像分割模型】编解码结构SegNet

第三期:【图像分割模型】感受野与分辨率的控制术—空洞卷积

如果想加入我们,后台留言吧

转载文章请后台联系

侵权必究

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI

【图像分割模型】从FCN说起相关推荐

  1. 「图像分割模型」编解码结构SegNet

    https://www.toutiao.com/i6715692120516067847/ 这是专栏<图像分割模型>的第2篇文章.在这个专栏里,我们将共同探索解决分割问题的主流网络结构和设 ...

  2. 【图像分割模型】全景分割是什么?

    这是专栏<图像分割模型>的第12篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文是专栏的最后一篇文章,见识过了分割任务中的大量模型,也了解了语义分割与实例分割,这 ...

  3. 【图像分割模型】实例分割模型—DeepMask

    这是专栏<图像分割模型>的第11篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文介绍了用于实例分割任务的模型结构--DeepMask. 作者 | 孙叔桥 编辑 | ...

  4. 【图像分割模型】BRNN下的RGB-D分割—LSTM-CF

    这是专栏<图像分割模型>的第10篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 深度信息的引入往往会给分割带来更好的结果.之前提到的ENet除了直接变成ReSeg分割 ...

  5. 【图像分割模型】用BRNN做分割—ReSeg

    这是专栏<图像分割模型>的第9篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 尽管许多人都知道RNN在处理上下文上多优于CNN,但如何将RNN用于分割任务还是值得讨论 ...

  6. 【图像分割模型】多分辨率特征融合—RefineNet

    这是专栏<图像分割模型>的第8篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. RefineNet,教你在实现特征融合与残差恒等映射的同时,怎么找回降下来的空间分辨率. ...

  7. 【图像分割模型】全局特征与局部特征的交响曲—ParseNet

    这是专栏<图像分割模型>的第7篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 尽管多尺度融合.空洞卷积都可以增加网络的感受野,但理论感受野与实际感受野仍然存在差异.那 ...

  8. 【图像分割模型】多感受野的金字塔结构—PSPNet

    这是专栏<图像分割模型>的第6篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 在分割问题中,上下文信息与多尺度融合对于提高分割精度是十分有效的,今天我们就来谈谈用于实 ...

  9. 【图像分割模型】以RNN形式做CRF后处理—CRFasRNN

    这是专栏<图像分割模型>的第5篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 条件随机场有点复杂,那能不能用神经网络的方式搞定CRF后处理呢?今天我们一起看一看穿上R ...

最新文章

  1. 车道线检测算法经典编程
  2. 第一课:数据结构的基本概念和术语
  3. 架构师之路 — 数据库设计 — 关系型数据库的约束类型
  4. PowerDesigner逆向生成
  5. 概率编程库Pymc3案例之神经网络(批量训练)
  6. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之10.Web_工程结构
  7. 从搜索到AI,成为“小百度”的搜狗,没有新故事
  8. Linux内存调试工具初探-MEMWATCH
  9. 使用for of循环遍历获取的nodeList,配置babel编译,webpack打包之后在iphone5下报错...
  10. [面试专题]Vue.js 2.0 独立构建和运行时构建的区别
  11. grafana安装配置 influxdb安装配置
  12. Apache搭建http网站服务器问题记录
  13. 移动硬盘测试扩容卡软件,U盘扩容检测教程,优盘容量真实性检测,TF卡移动硬盘SD卡内存卡...
  14. 法语语法学习笔记——代词(1)
  15. matlab二次函数拟合,【长见识】matlab的二次函数拟合
  16. 三只小猪的故事[漫画]
  17. 专家修炼-学习的方法
  18. python关闭浏览器、未过期的session_解决因为关闭浏览器造成session失效的假象
  19. 时间格式处理获取本年份的起止时间
  20. java酒店管理系统_java酒店管理系统(源码+数据库脚本)

热门文章

  1. visio 科学图形包_R可视乎|混合多个图形
  2. chrome自动调节窗口大小插件_高效使用Chrome浏览器,教你10个小技巧!
  3. 按照这步骤来刷题,两个月你亦能成为王者
  4. QT:常用函数详解--常用操作记录(个人笔记)
  5. python mainloop bind_Python3 tkinter基础 Frame bind 捕捉多键同时按
  6. 第八届蓝桥杯决赛 磁砖样式(枚举)
  7. java在程序中加入音频_在任意Java程序中播放音频
  8. hashcode值一样对象一定相同吗_HashMap实现原理分析(面试问题:两个hashcode相同 的对象怎么存入hashmap的)...
  9. python网页爬虫例子_Python 利用Python编写简单网络爬虫实例3
  10. Mac地址怎么做到全球唯一的?