语义分割

图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。

  • 一般的语义分割架构可以被认为是一个编码器-解码器网络。编码器通常是一个预训练的分类网络,像 VGG、ResNet,然后是一个解码器网络。这些架构不同的地方主要在于解码器网络。解码器的任务是将编码器学习到的可判别特征(较低分辨率)从语义上投影到像素空间(较高分辨率),以获得密集分类。
  • 不同于分类任务中网络的最终结果(对图像分类的概率)是唯一重要的事,语义分割不仅需要在像素级有判别能力,还需要有能将编码器在不同阶段学到的可判别特征投影到像素空间的机制。不同的架构采用不同的机制(跳跃连接、金字塔池化等)作为解码机制的一部分。

Fully Convolution Networks (FCNs) 全卷积网络

2015 Fully Convolutional Networks for Semantic Segmentation

在传统的分类 CNN 中,池化操作用来增加视野,同时减少特征图的分辨率。这对于分类任务来说非常有用,因为分类的最终目标是找到某个特定类的存在,而对象的空间位置无关紧要。因此,在每个卷积块之后引入池化操作,以使后续块能够从已池化的特征中提取更多抽象、突出类的特征。

但是池化和带步长的卷积对语义分割是不利的,因为这些操作造成了空间信息的丢失。语义分割的大多数架构在解码器中使用了不同的机制,目的都在于恢复在编码器中降低分辨率时丢失的信息。如下图所示,FCN-8s 融合了不同粗糙度(conv3、conv4和fc7)的特征,利用编码器不同阶段不同分辨率的空间信息来细化分割结果。

第一个卷积层捕捉低层次的几何信息,因为这完全依赖数据集,可以注意到梯度调整了第一层的权重以使模型适应数据集。VGG 中更深层的卷积层有非常小的梯度流,因为这里捕获的高层次的语义概念足够用于分割。

将当前分类网络(AlexNet, VGG net 和 GoogLeNet)修改为全卷积网络,通过对分割任务进行微调,将它们学习的表征转移到网络中。然后定义一种新的架构,它将深的、粗糙的网络层的语义信息和浅的、精细的网络层的表层信息结合起来,来生成精确和详细的分割。

特点

  • 特征是由编码器中的不同阶段合并而成的,它们在语义信息的粗糙程度上有所不同。
  • 低分辨率语义特征图的上采样使用经双线性插值滤波器初始化的反卷积操作完成。
  • 从 VGG16、Alexnet 等分类器网络进行知识迁移来实现语义细分。

将全连接层转换成卷积层,使得分类网络可以输出一个类的热图。
如上图所示,像 VGG16 分类网络的全连接层(fc6,fc7)被转换为全卷积层。它生成了一个低分辨率的类的热图,然后使用经双线性插值初始化的反卷积,并在上采样的每一个阶段通过融合(简单地相加) VGG16 中的低层(conv4和conv3)的更加粗糙但是分辨率更高的特征图进一步细化特征。

语义分割架构的另一个重要方面是,对特征图使用反卷积,将低分辨率分割图上采样至输入图像分辨率,或者花费大量计算成本,使用空洞卷积在编码器上部分避免分辨率下降。即使在现代 GPUs 上,空洞卷积的计算成本也很高

SegNet

2015 SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

SegNet 的新颖之处在于解码器对其较低分辨率的输入特征图进行上采样的方式。具体地说,解码器使用了在相应编码器的最大池化步骤中计算的池化索引来执行非线性上采样。

特点

  • SegNet 在解码器中使用反池化对特征图进行上采样,并在分割中保持高频细节的完整性。
  • 编码器不使用全连接层(和 FCN 一样进行卷积),因此是拥有较少参数的轻量级网络。

如下图所示,编码器中的每一个最大池化层的索引都被存储起来,用于之后在解码器中使用那些存储的索引来对相应的特征图进行反池化操作。虽然这有助于保持高频信息的完整性,但当对低分辨率的特征图进行反池化时,它也会忽略邻近的信息。

U-Net

2015 U-Net: Convolutional Networks for Biomedical Image Segmentation

U-Net 架构包括一个捕获上下文信息的收缩路径和一个拼接的对称扩展路径。

特点

  • U-Net 简单地将编码器的特征图拼接至每个阶段解码器的上采样特征图,从而形成一个梯形结构。
  • 通过跳跃拼接的架构,在每个阶段都允许解码器学习在编码器池化中丢失的相关特征。
  • 上采样采用转置卷积。
  • 推断速度快。

PSPNet

2017 PSPNet: Pyramid Scene Parsing Network

利用基于不同区域的信息集合,通过金字塔池化模块,使用金字塔场景解析网络(PSPNet)来发挥解析上下文信息的能力。
特点

  • PSPNet 通过引入空洞卷积来修改基础的ResNet架构,特征经过最初的池化,在整个编码器网络中以相同的分辨率进行处理(原始图像输入的1/4),直到到达空间池化模块。
  • 在 ResNet 的中间层中引入辅助损失,以优化整体学习。
  • 在修改后的 ResNet 编码器顶部的空间金字塔池化聚合全局信息。

DeepLab v1

2015 Semantic Image Segmentation with deep convolutional nets and fully connected CRFs

DCNN 最后一层的响应不足以精确定位目标边界,Deeplab通过在最后一层网络后结合全连接条件随机场(CRF)来解决该定位问题。 FCN + denseCRF.

特点:

  • 提出空洞卷积(atrous convolution)(又称扩张卷积(dilated convolution))
  • 在最后两个最大池化操作中不降低特征图的分辨率,并在倒数第二个最大池化之后的卷积中使用空洞卷积。
  • 使用 CRF(条件随机场) 作为后处理,恢复边界细节,达到准确定位效果。
  • 附加输入图像和前四个最大池化层的每个输出到一个两层卷积,然后拼接到主网络的最后一层,达到多尺度预测效果。

DeepLab v2

2017 DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

论文中提出了语义分割中的三个挑战:

  • 由于池化和卷积而减少的特征分辨率。
  • 多尺度目标的存在。
  • 由于 DCNN 不变性而减少的定位准确率。

对应解决方法:

  • 减少特征图下采样的次数,但是会增加计算量。
  • 使用图像金字塔、空间金字塔等多尺度方法获取多尺度上下文信息。
  • 使用跳跃连接或者引入条件随机场。

特点

  • 提出了空洞空间金字塔池化(Atrous Spatial Pyramid Pooling),在不同的分支采用不同的空洞率以获得多尺度图像表征。
  • ASPP的作用:由于同一类的物体在图像中可能有不同的比例,ASPP 有助于考虑不同的物体比例,这可以提高准确性。

deeplabv1的升级版,加入了ASPP,其他的和v1类似。

DeepLab v3

2017 Rethinking Atrous Convolution for Semantic Image Segmentation

DeepLab v3 使用 ResNet 作为主干网络。
特点:

  • 为了解决多尺度目标的分割问题,在残差块中使用了多尺度网格方法(MultiGrid),从而引入不同的空洞率。
  • 在空洞空间金字塔池化模块中加入图像级(Image-level)特征,并且使用了BatchNormalization 技巧。

DeepLabv3+

语义分割分割常用网络相关推荐

  1. JSIS3D:具有多任务点向网络和多值条件随机场的3D点云联合语义-实例分割

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题:JSIS3D: Joint Semantic-Instance Segmentation of ...

  2. 图像语义分割:U-Net网络和PSP网络

    图像语义分割:U-Net网络和PSP网络 1. Recap of FCN 回顾FCN分割网络的基本结构 分析FCN网络的优缺点 2. What is U-Net U-Net网络结构 具体操作和实现原理 ...

  3. 计算机视觉-语义分割任务常用指标

    计算机视觉-语义分割任务常用指标 呐,这篇笔记记录了语义分割任务中十分常用的指标(包括PA,MPA,mIOU)的计算方式.整体来看,都是像素数目的比值. 首先我们需要先定义语义分割任务的类别 K + ...

  4. 开源|如何利用Tensorflow实现语义分割全卷积网络(附源码)

    导读:本项目是基于论文<语义分割全卷积网络的Tensorflow实现>的基础上实现的,该实现主要是基于论文作者给的参考代码.该模型应用于麻省理工学院(http://sceneparsing ...

  5. 深度挖掘论文:《Semantic Soft Segmentation》(语义软分割)

    最近花了一段时间研究英语论文Semantic Soft Segmentation,把自己收集的知识点分享下. ###内容目录 ###论文摘要 深度挖掘论文:<Semantic Soft Segm ...

  6. RDSNet:统一目标检测和实例分割的新型网络

    本文对<RDSNet: A New Deep Architecture for Reciprocal Object Detection and Instance Segmentation> ...

  7. SIGGRAPH2018黑科技:开源语义软分割改进图像编辑

    SIGGRAPH2018黑科技:开源语义软分割改进图像编辑 原文:https://mp.weixin.qq.com/s?__biz=MzIwMTE1NjQxMQ==&mid=224748394 ...

  8. 2020CVPR解读之何恺明新作PointRend:将图像分割视作渲染问题,显著提升语义/实例分割性能

    2020CVPR解读之何恺明新作PointRend:将图像分割视作渲染问题,显著提升语义/实例分割性能 论文原文 源码 [导读]Facebook人工智能实验室何恺明团队提出一种高效.高质量的目标和场景 ...

  9. 刷新mac地址命令_常用网络检测命令-必备技术

    现在弱电行业工作,设备基本上普遍是使用网络连接,因此具有一定网络检测命令知识,这时通过使用一些网络的基本命令来检测设备的网络状态.以下,介绍常用网络命令: 1.ping命令 ping 命令式用来测试T ...

  10. 路由表+常用网络命令+SSL的WEB安全访问+常用网络命令使用技巧

    路由表+常用网络命令+SSL的WEB安全访问+常用网络命令使用技巧 一.如何看路由表 ========================================================= ...

最新文章

  1. camera数字降噪(DNR)
  2. linux载入初始化内存盘,Linux初始化系统盘后重新挂载数据盘方法
  3. arraycopy方法的作用_System. arraycopy()入门指南
  4. jstack 脚本 自动日志_用jstack自动化捕抓异常java代码脚本
  5. PHP用gd库给图片添加水印,php用GD库给图片添加水印
  6. Docker容器管理
  7. 2015 多校赛 第三场 1002 (hdu 5317)
  8. 乐观锁与悲观锁的应用场景
  9. 可能确实存在脂肪味觉(隐式味觉)
  10. 【语音识别】基于matlab隐马尔可夫模型(HMM)孤立字语音识别【含Matlab源码 576期】
  11. 影响因子在10的计算机杂志什么水平,国人无人发表的TOP期刊,影响因子翻倍,5分变10分,不收版面费!...
  12. 稀疏编码的经典解法——ISTA算法的推导
  13. javplayer 使用教程_SAI教程SAI绘画软件下载SAI2上色教程
  14. Tomcat: Error starting child 原因以及处理方法
  15. CTO和技术副总裁应该如何分工?谁才是技术领导者?
  16. 双系统不显示系统选择界面
  17. python 发布文章,使用Python自动化发布文章:(一)
  18. 请你谈谈TCP协议与UDP协议的区别
  19. 3DMAX机械建模贴图教程
  20. 2016, IX Samara Regional Intercollegiate Programming Contest I. Deadline

热门文章

  1. [NSSCTF][SCTF 2021]WEB复现
  2. 自定义UDF函数:将汉字转换成拼音
  3. Java基础篇:八大基本数据类型
  4. IDEA中WEB项目结构和Artifacts设置
  5. iOS开发小记:初次接入环信SDK3.0时遇到的问题及解决办法汇总
  6. QLabel类常用方法
  7. linux目录和链接的区别,Linux 下软链接和硬链接的区别
  8. python+opencv直方图均衡化
  9. Git Tortoisegit的基础安装与登录
  10. 解析XML文件(字符串)的两种方法-----SAXReader 与 DocumentHelper