翻译自qure.ai

  1. 什么是语义分割

    对图片的每个像素都做分类。

    较为重要的语义分割数据集有:VOC2012 以及 MSCOCO 。

  2. 有哪几种方法

    传统机器学习方法:如像素级的决策树分类,参考TextonForest 以及 Random Forest based classifiers 。再有就是深度学习方法。更确切地说,是卷积神经网络。

    深度学习最初流行的分割方法是,打补丁式的分类方法 ( patch classification ) 。逐像素地抽取周围像素对中心像素进行分类。由于当时的卷积网络末端都使用全连接层 ( full connected layers ) ,所以只能使用这种逐像素的分割方法。

    2014年,来自伯克利的 Fully Convolutional Networks(FCN) 卷积网络,去掉了末端的全连接层。随后的语义分割模型基本上都采用了这种结构。除了全连接层,语义分割另一个重要的问题是池化层。池化层能进一步提取抽象特征增加感受域,但是丢弃了像素的位置信息。但是语义分割需要类别标签和原图像对齐,因此需要从新引入像素的位置信息。有两种不同的架构可以解决此像素定位问题。

    第一种是编码-译码架构。编码过程通过池化层逐渐减少位置信息、抽取抽象特征;译码过程逐渐恢复位置信息。一般译码与编码间有直接的连接。该类架构中U-net 是最流行的。

    第二种架构是膨胀卷积 ( dilated convolutions ) ,抛弃了池化层。使用的卷积核如下图。

    条件随机场的后处理 经常用来提高分割的精确度。后处理利用图像的光感强度(可理解为亮度),将周围强度相近的像素分为同一类。能提高 1-2 个百分点。

  3. 文章汇总

    按时间顺序总结八篇paper,看语义分割的结构是如何演变的。分别有FCN 、SegNet 、Dilated Convolutions 、DeepLab (v1 & v2) 、RefineNet 、PSPNet 、Large Kernel Matters 、DeepLab v3 。

    FCN 2014年

    主要的贡献:

    • 为语义分割引入了 端到端 的卷积网络,并流行开来
    • 重新利用 ImageNet 的预训练网络用于语义分割
    • 使用 反卷积层 进行上采样
    • 引入跳跃连接来改善上采样粗糙的像素定位

    说明:

    比较重要的发现是,分类网络中的全连接层可以看作对输入的全域卷积操作,这种转换能使计算更为高效,并且能重新利用 ImageNet 的预训练网络。经过多层卷积及池化操作后,需要进行上采样,FCN 使用反卷积(可学习)取代简单的线性插值算法进行上采样。

SegNet 2015年

编码-译码架构

主要贡献:

  • 将池化层结果应用到译码过程。引入了更多的编码信息。使用的是pooling indices而不是直接复制特征,只是将编码过程中 pool 的位置记下来,在 uppooling 是使用该信息进行 pooling 。

U-Net 2015
U-Net 有更规整的网络结构,通过将编码器的每层结果拼接到译码器中得到更好的结果。

Dilated Convolutions 2015年

通过膨胀卷积操作聚合多尺度的信息

主要贡献:

  • 使用膨胀卷积
  • 提出 ’context module‘ ,用来聚合多尺度的信息

    说明:

    池化在分类网络中能够扩大感知域,同样降低了分辨率。所以作者提出了膨胀卷积层。


(a) 原始的 3×33×3卷积,1-dilated,感受野为 3×33×3;

(b) 在(a)的基础上进行 3×33×3卷积,2-dilated,感受野为 7×77×7;

(c) 在(b)的基础上进行 3×33×3卷积,4-dilated,感受野为 15×1515×15;

由于padding和卷积的stride=1,卷积前后feature map大小可以保持不变,但每个元素的感受野指数增大。Link

膨胀卷积在 DeepLab 中也被称为暗黑卷积 (atrous convolution) 。此卷积能够极大的扩大感知域同时不减小空间维度。本模型移去了VGG网的最后两层池化层,并且其后续的卷积层都采用膨胀卷积。

作者还训练了一个模块,输入卷积结果,级联了不同膨胀系数的膨胀卷积层的,输出和输入有一样的尺寸,因此此模块能够提取不同规模特征中的信息,得到更精确的分割结果。

最后预测结果图是原图的八分之一大小,文章使用插值得到最后的分割结果。

DeepLab (v1 & v2) 2014 & 2016

主要贡献:

  • 使用膨胀卷积
  • 提出了暗黑空间金字塔池化 (ASPP),融合了不同尺度的信息。
  • 使用全连接的条件随机场

    说明:

    基本网络和 dilated convolutions 一致。最后的结构化预测 (精细分割) 采用全连接的 CDF。提出了ASPP,但结果不如 FC-CDF 。

RefineNet 2016年

主要贡献:

  • 精心设计的译码模块
  • 所有模块遵循残余连接设计

    说明:

    膨胀卷积有几个缺点,如计算量大、需要大量内存。这篇文章采用编码-译码架构。编码部分是 ResNet-101 模块。译码采用 RefineNet 模块,该模块融合了编码模块的高分辨率特征和前一个 RefineNet 模块的抽象特征。

    每个 RefineNet 模块接收多个不同分辨率特征,并融合。看图。

    PSPNet 2016年

    Pyramid Scene Parsing Network 金字塔场景解析网络

    主要贡献:

  • 提出了金字塔池化模块来聚合图片信息

  • 使用附加的损失函数

    说明:

    金字塔池化模块通过应用大核心池化层来提高感知域。使用膨胀卷积来修改 ResNet 网,并增加了金字塔池化模块。金字塔池化模块对 ResNet 输出的特征进行不同规模的池化操作,并作上采样后,拼接起来,最后得到结果。

    本文提出的网络结构简单来说就是将DeepLab(不完全一样)aspp之前的feature map pooling了四种尺度之后 将5种feature map concat到一起经过卷积最后进行prediction的过程。

    附加的损失函数:看不懂

    Large Kernel Matters 2017

    主要贡献:

  • 提出了使用大卷积核的编码-译码架构

    说明:

    理论上更深的 ResNet 能有很大的感知域,但研究表明实际上提取的信息来自很小的范围,因此使用大核来扩大感知域。但是核越大,计算量越大,因此将 k x k 的卷积近似转换为 1 x k + k x 1 和 k x 1 + 1 x k 卷积的和。本文称为 GCN。

    本文的架构是:使用 ResNet 作为编译器,而 GCN 和反卷积作为译码器。还使用了名为 Boundary Refinement 的残余模块。

    DeepLab v3 2017

    主要贡献:

  • 改进 ASPP

  • 串行部署 ASPP 的模块

    说明:

    和 DeepLab v2 一样,将膨胀卷积应用于 ResNet 中。改进的 ASPP 指的是将不同膨胀率的膨胀卷积结果拼接起来。并使用了 BN 。

    于 Dilated convolutions (2015) 不一样的是,v3 直接对中间的特征图进行膨胀卷积,而不是在最后做。

采集多尺度信息的方法

对比

模型 分数 (VOC2012)
FCN 67.2
SegNet 59.9
Dilated Convolutions 75.3
DeepLab (v1 & v2) 79.7
RefineNet 84.2
PSPNet 85.4
Large Kernel Matters 83.6
DeepLab v3 85.7

转载:https://blog.csdn.net/u013580397/article/details/78508392

深度学习-语义分割总结相关推荐

  1. 【NLP】博士笔记 | 深入理解深度学习语义分割

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习初学者 引言:最近自动驾驶项目需要学习一些语义分 ...

  2. 笔记 | 深入理解深度学习语义分割

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉联盟 本文内容概述王博Kings最近的语义分割 ...

  3. 博士笔记 | 深入理解深度学习语义分割

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|机器学习初学者 本文内容概述王博Kings最近的语义分割学 ...

  4. 【深度学习】深度学习语义分割理论与实战指南.pdf

    图像分类.目标检测和图像分割是基于深度学习的计算机视觉三大核心任务.三大任务之间明显存在着一种递进的层级关系,图像分类聚焦于整张图像,目标检测定位于图像具体区域,而图像分割则是细化到每一个像素. 基于 ...

  5. 深度学习语义分割理论与实战指南

    本文来自微信公众号[机器学习实验室] 深度学习语义分割理论与实战指南 1 语义分割概述 2 关键技术组件 2.1 编码器与分类网络 2.2 解码器与上采样 2.2.1 双线性插值(Bilinear I ...

  6. 深度学习语义分割理论与实战指南.pdf

    深度学习语义分割理论与实战指南 V1.0 版本已经完成,主要包括语义分割概述.关键技术组件.数据模块.经典分割网络与架构.PyTorch基本实战方法等五个部分. 获取方式: 扫描关注下方公众号回复 语 ...

  7. 第13届R会演讲 | 深度学习语义分割引导.ppt

    2020年,第13届中国 R 会(北京)将于12月19-20日在中国人民大学召开,本次会议由统计之都,中国人民大学统计学院.中国人民大学应用统计科学研究中心主办,得到 R Studio 赞助支持,将以 ...

  8. 这就是神经网络 11:深度学习-语义分割-DFN、BiSeNet、ExFuse

    前言 本篇介绍三篇旷视在2018年的CVPR及ECCV上的文章.旷视做宣传做的很好,出的论文解读文章很赞,省去了我从头开始理解的痛苦,结合论文基本能很快了解全貌. 语义分割任务同时需要 Spatial ...

  9. 深度学习语义分割论文笔记(待完善)

    在深度学习这一块儿,我最开始使用Unet进行了冠状动脉血管的分割 再后来,我尝试改进Unet,改进损失函数,让网络能有不错的效果 再后来,看到了注意力机制,读了attention unet, 于是,我 ...

最新文章

  1. 服务容错保护断路器Hystrix之二:Hystrix工作流程解析
  2. android 保存数据到setting中_文章如何保存在数据库中
  3. 你还在用Python做数据分析么?
  4. linux怎么衡量负载大小,如何查看linux机器的平均负载
  5. FreeBSD下安装postfixl邮件系统
  6. python excel库 linux_用python写一个简单的excel表格获取当时的linux系统信息
  7. VS2010中的快捷键
  8. 直播报名 | 从业务场景入手,吃透音视频技术
  9. android field 类型,Gradle buildConfigField 使用Hashmap ArrayList 等类型
  10. oracle 12g 无监听,Oracle 12.2监听无法启动解决一例
  11. 多线程命名管道通信的设计
  12. gitee及github的区别
  13. matlab 误差椭圆,第十章 误差椭圆.doc
  14. 计算机要重启电脑才能检测出u盘启动,u盘要电脑重启才能用
  15. Asp.net 路由详解
  16. 如何将m4a格式音频转为mp3?
  17. php仿京东幸运大转盘抽奖,原生js vue 抽奖插件 仿京东大转盘抽京豆(原创)...
  18. rk3128 通过自带buildroot打包开发板根文件系统,重做自己的img镜像
  19. 单片机补充案例--两只老虎
  20. OCR在转转游戏的应用

热门文章

  1. 如何组织成功的bug bash--摘录
  2. [模板] 区间mex 区间元素种数
  3. Charles抓包实战详解
  4. 高效查看MySQL帮助文档的方法
  5. 读取jar包资源代码赏析
  6. 在Ubuntu 14.04上设置生产环境可用的Node.js
  7. Spring+hibernate+struts
  8. 9月29日,访问量4200,留个脚印
  9. 一起谈.NET技术,linq2sql:直接执行sql语句
  10. ashx文件和HttpHandler