一. 图像语义分割

传统的图像分割方法主要包括以下几种:

1)基于边缘检测

2)基于阈值分割

比如直方图,颜色,灰度等

3)水平集方法

这里我们要说的是语义分割,什么是语义分割呢?先来看张图:

将目标按照其分类进行像素级的区分,比如区分上图的 摩托车 和 骑手,这就是语义分割,语义分割赋予了场景理解更进一步的手段。

我们直接跳过传统的语义分割方法,比如 N-Cut,图割法等,直接进入深度学习。

二. FCN 的引入

CNN 在图像分割中应用,起源于2015年的这篇影响深远的文章:

Fully Convolutional Networks for Semantic Segmentation 【点击下载

这里提到的就是全卷积网络,那么这个全卷积是如何理解 和 Work 的呢?来看一个对比:

上图红色部分 对应CNN分类网络的最后三层,也就是 FC 全连接,通过 Softmax 得到一个1000维的向量(基于Imagenet的图像分类),表示1000个不同的分类对应的概率,“tabby cat” 作为概率最高的结果。

下图蓝色部分将 分类网络对应的最后三层全连接 替换成了 卷积。整个网络全部通过卷积连接,so called 全卷积。这么做的目的是什么呢?

● 通过像素分类来定义语义分割

全卷积网络的输出是一张分割图,如何输出这张分割图呢? 通过卷积,图像的分辨率逐渐降低,这里需要 引入一个概念,就是上采样,即将低分辨率的图像放大到和原始图像同分辨率上,这是一个关键点。比如经过5次卷积(pooling)后,图像的分辨率依次缩小了2,4,8,16,32倍。对于最后一层的输出图像,需要进行32倍的上采样,得到原图大小一样的图像。

这个上采样是通过 反卷积(DeConvolution)实现的。来直观看一下反卷积的过程:

加上反卷积过程,整个的网络可以描述成:

由于前面采样部分过大,有时候会导致后面进行反卷积得到的结果分辨率比较低,导致一些细节丢失,解决的一个办法是 将 第 3|4|5 层反卷积结果叠加,结果我们就不贴了,肯定是上采样倍数越小,结果越好,来看叠加示意图(这种方式应该不陌生):

三. FCN 的改进

虽然 FCN引领了CNN基于语义分割的方向,但仍有很多地方需要改进,比如上采样导致的像素分割不精细,效率也不够快等等,我们相信一定有办法让其 更高效、更精细。这里提到的一个 方法就是结合 CRF。

CRF 全称是 Conditional Random Field,中文叫 “条件随机场”,首先来理解什么是随机场,一堆随机的样本就可以理解为是随机场,假设这些样本之间有关联关系,就成立条件随机场,CRF 最早在深度学习的 NLP 领域有比较多的应用,可以理解为语境的上下文关系,可以参考下面这篇文章:

Introduction to Conditional Random Fields

第一个改进 来自于 UCLA 的 Liang-Chieh Chen,在像素分类后叠加了一个 Fully Connected Conditional Random Fields(全连接的条件随机场)。

论文地址:Semantic image segmentation with deep convolutional nets and fully connected crfs

通过上图示意可以看到,Fully Connected CRF 在前面 FCN 输出的基础上,以全连接的形式,实现了后处理过程,使得像素分割更加细致,具体请参考论文。

接下来的改进有 通过 RNN + CRF 的idea:

参考论文:Conditional random fields as recurrent neural networks

根据实验对比效果来看,相当不错(注:DeepLab 就是上面的 Full connected CRF方法):

针对FCN的改进会在近两年一直持续,作者最关注的还是,Mask-RCNN,将目标检测与分割一起work的方法,接下来在下一篇文章介绍!

“桃李不言,下自成蹊”,FCN 当真是属于这个级别的贡献,引领了在这条道路上的每一次Follow。

四. 实例分割(Instance Segment)

实例分割 与 语义分割的区别是要区分出每个目标(不仅仅是像素),相当于 检测+分割,通过一张图来直观理解一下:

关于 实例分割 的一篇典型论文 MaskRCNN,可以参考【Mask RCNN】,代码实现可以参考【浅入浅出TensorFlow 8 - 行人分割

相关论文:

Instace-sensitive Fully Convolutional Networks.ECCV 2016【2016.3月上传到arxiv

R-FCN:Object Detection via Region-based Fully Convolutional Networks.NIPS 2016【2016.7月上传到arxiv】

Fully Convolutional Instance-aware Semantic Segmentation.xxxx 2017【2016年11月上传到arxiv,MSCOCO2016的第一名】

FCN图像分割的更多相关文章

  1. 图像分割实验:FCN数据集制作,网络模型定义,网络训练(提供数据集和模型文件,以供参考)

    论文:<Fully Convolutional Networks for Semantic Segmentation> 代码:FCN的Caffe 实现 数据集:PascalVOC 一 数据 ...

  2. 深度学习与CV教程(14) | 图像分割 (FCN,SegNet,U-Net,PSPNet,DeepLab,RefineNet)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  3. 全卷积网络(FCN)与图像分割

    最近在做物体检测,也用到了全卷积网络,来此学习一波. 这篇文章写了很好,有利于入门,在此记录一下: http://blog.csdn.net/taigw/article/details/5140144 ...

  4. 从FCN到DeepLab

    图像语义分割,简单而言就是给定一张图片,对图片上的每一个像素点分类. 图像语义分割,从FCN把深度学习引入这个任务,一个通用的框架事:前端使用FCN全卷积网络输出粗糙的label map,后端使用CR ...

  5. 全卷积网络 FCN 详解

    背景 CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题.神经网络大神Jonathan Long发表了<Fully Convolutional N ...

  6. U-net网络实现医学图像分割以及遥感图像分割源代码

    U-net网络主要思路是源于FCN,采用全卷积网络,对图像进行逐像素分类,能在图像分割领域达到不错的效果. 因其网络结构类似于U型,所以以此命名,可以由其架构清晰的看出,其构成是由左端的卷积压缩层,以 ...

  7. Analysis of FCN

    全卷积网络 FCN 详解   背景 CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题.神经网络大神Jonathan Long发表了<Fully ...

  8. FCN详解

    转载自:https://www.cnblogs.com/gujianhan/p/6030639.html 论文地址:https://arxiv.org/pdf/1411.4038v1.pdf 背景 C ...

  9. FCN 分割网络详解

    博客来源于:https://www.cnblogs.com/gujianhan/p/6030639.html: https://blog.csdn.net/sinat_24143931/article ...

随机推荐

  1. Node.js具体解析

    介绍 JavaScript 高涨的人气带来了非常多变化.以至于现在使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样,现在我们也能够在server上执行 JavaScript ,从前端跨越 ...

  2. 【剑指offer】无聊的1+2+...+n

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/27964027 题目描写叙述: 求1+2+3+...+n,要求不能使用乘除法.for.whi ...

  3. 【JMeter连接SQLServer】採用window鉴权方式连接(原创)

    大家都知道Jmeter能够连接各种数据库.这方面我也不多说了,假设你还不知道怎么连接的话.能够參看我看的另外一篇博文.这边有具体的介绍 http://blog.csdn.net/lzqinfen/ar ...

  4. Bootstrap的js插件之警告框(alert.js)

    data-dismiss="alert"--为关闭button加入该属性能够使其自己主动为警告框赋予关闭功能. .fade .in--为警告框在关闭时加入动画效果. 很多其它细节參 ...

  5. 64bit Centos6.4搭建hadoop-2.5.1

    64bit Centos6.4搭建hadoop-2.5.1 1.分布式环境搭建 採用4台安装Linux环境的机器来构建一个小规模的分布式集群. 当中有一台机器是Master节点,即名称节点,另外三台是 ...

  6. POJ 1679 The Unique MST(推断最小生成树_Kruskal)

    Description Given a connected undirected graph, tell if its minimum spanning tree is unique.  Defini ...

  7. nginx源代码分析--nginx进程间通信

    Linux下的IPC非常多,nginx的进程都是有亲缘关系的进程,对于他们的通信我们选择TCP socket进行通信.   TCP socket 用来做进程通信的优点有,   1.socket是文件描 ...

  8. luogu2441 角色属性树

    题目大意:维护一个可查询.修改的树,查询的是一个节点的:离它距离最近的.组成两个节点Key值的质因数存在交集的.祖先节点:修改是修改一个节点的key值. 如果组成两个Key值的质因数存在交集,则两个数 ...

  9. 国内物联网平台初探(三) ——QQ物联·智能硬件开放平台

    平台定位 将QQ帐号体系.好友关系链.QQ消息通道及音视频服务等核心能力提供给可穿戴设备.智能家居.智能车载.传统硬件等领域的合作伙伴,实现用户与设备.设备与设备.设备与服务之间的联动. 实现用户与设 ...

  10. Spark新愿景:让深度学习变得更加易于使用——见https://github.com/yahoo/TensorFlowOnSpark

    Spark新愿景:让深度学习变得更加易于使用   转自:https://www.jianshu.com/p/07e8200b7cea 前言 Spark成功的实现了当年的承诺,让数据处理变得更容易,现在 ...