zoukankan      html  css  js  c++  java
  • 语义分割Semantic Segmentation研究综述

    语义分割和实例分割概念

    语义分割:对图像中的每个像素都划分出对应的类别,实现像素级别的分类。

    实例分割:目标是进行像素级别的分类,而且在具体类别的基础上区别不同的实例。

    image

    语义分割(Semantic Segmentation)

    输入:一张原始的RGB图像

    输出:带有各像素类别标签的与输入同分辨率的分割图像

    image

    对预测的分类目标采用one-hot编码,为每个分类类别创建一个输出的channel。
    image

    将分割图相加到原始图像上的效果。

    image

    语义分割的难点

    在经典的网络中,需要经过多层卷积和池化进行提取特征工作,从而找到分类目标,这个过程会使图像尺寸逐渐减小。需要将分类后的特征图还原到原图尺寸。

    通常的做法是编码和解码网络结构。

    卷积核池化操作可以看图像编码的过程,也就是下采样过程

    解码理解为编码的逆运算,对输出的特征图不断上采样,逐渐得到一个与原始图像同分辨率的分割图。

    卷积动图

    image

    最大池化和最大池化的示意图(池化上采样是通过将单个值分配更高的分辨率来达到扩充的目的)

    image

    反卷积(转置卷积)

    image

    Dilated convolution(空洞卷积)

    image

    1. FCN全卷积网络简介

    1.1 关键技术:卷积化(convolutionalization)

    分类所使用的网络通常会在最后连接全连接层,它会将原来二维的矩阵(图片)压缩成一维的,从而丢失了空间信息,最后训练输出一个标量,这就是我们的分类标签。

    语义分割的输出是个分割图,至少是二维的。通常是一个类别为一个通道。

    image

    1.2 关键技术:上采样(Upsampling)

    需要得到一个与原图像size相同的分割图,需要对最后一层进行上采样。

    1.3 关键技术:跳跃结构(Skip Architecture)

    由于直接将全卷积的结果上采样后的结果很粗糙。采用跳跃结构,将不同池化层的结果进行上采样,然后结合这些结果来优化输出。(出发点:由于池化层会丢失信息,将不同池化层结果上采样,从而弥补部分信息)

    image

    2. u-net简介

    u-net作为FCN的改进,通过扩大网络解码器容量来改进了全卷积网络结构,并给编码和解码模块添加了收缩路径(contracting path),从而实现更精准的像素边界定位。

    image

    融合之前要crop到对应的层相同尺寸。(思考:融合操作是不是对应通道的相加,具体需要看论文和代码。有没有更合理的特征融合方法)

    3. v-net简介

    v-net 可以理解为 3D 版本的 u-net ,适用于三维结构的医学影像分割。v-net 能够实现 3D 图像端到端的图像语义分割,加了一些像残差学习一样的trick来进行网络改进,总体结构上与 u-net 差异不大。

    image

  • 相关阅读:
    Java Comparator和Comparabler的区别
    正则表达式全部符号解释
    Java使用reids,以及redis与shiro集成
    jQuery的select相关操作
    javascrit原生实现jquery的append()函数
    spring拦截器 实现应用之性能监控
    Gitlab完美安装【CentOS6.5安装gitlab-6.9.2】
    关于datepicker只显示年、月、日的设置
    spring aop 环绕通知around和其他通知的区别
    springMVC和spring各自扫描自己的注解不要相互混淆
  • 原文地址:https://www.cnblogs.com/wemo/p/10393929.html
Copyright © 2011-2022 走看看