读点论文图像语义分割与深度学习的结合

Posted 羞儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读点论文图像语义分割与深度学习的结合相关的知识,希望对你有一定的参考价值。

图像语义分割与深度学习的结合

Deep Convolutional Neural Networks (DCNNs):

  • 如今已经成为高级视觉研究的主流,提高了计算机视觉性能,广泛应用于图像分割,对象检测,细粒度分类等。

  • 相比于传统的视觉算法(SIFT或HOG),DCNN以其end-to-end(端到端)方式获得了很好的效果。

    • SIFT算法(Scale Invariant Feature Transform):尺度不变特征变换

      • 具有较好的稳定性不变性,能够适应旋转、尺度缩放、亮度的变化,能在一定程度上不受视角变化、仿射变换、噪声的干扰。

      • 区分性好,能够在海量特征数据库中进行快速准确的区分信息进行匹配;

      • 多量性,就算只有单个物体,也能产生大量特征向量

      • 高速性,能够快速的进行特征向量匹配;

      • 可扩展性,能够与其它形式的特征向量进行联合。

      • SIFT算法实现特征匹配主要有以下三个流程:

        1. 提取关键点,极值检测:通过高斯微分函数来识别潜在的具有尺度和旋转不变的兴趣点;
        2. 定位关键点:在每个候选的位置上,通过一个拟合精细模型来确定位置尺度,关键点的选取依据他们的稳定程度;
        3. 确定特征方向:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向,后续的所有操作都是对于关键点的方向、尺度和位置进行变换,从而提供这些特征的不变性;
        4. 特征点描述:进行两两比较找出相互匹配的若干对特征点,建立景物间的对应关系。在每个特征点周围的邻域内,在选定的尺度上测量图像的局部梯度,这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变换。
      • 高斯金字塔的构建:尺度空间在实现时使用高斯金字塔表示,高斯金字塔的构建分为两步

        1. 对图像做高斯平滑;

        2. 对图像做降采样。

      • 图像的金字塔模型是指将原始图像不断降阶采样,得到一系列大小不一的图像,由大到小,从下到上构成的塔状模型。
      • 为了让尺度体现其连续性,高斯金字塔在简单降采样的基础上加上了高斯滤波。
      • 降采样时,高斯金字塔上一组图像的初始图像(底层图像)是由前一组图像的倒数第三张图像隔点采样得到的。
    • 方向梯度直方图(Histogram of Oriented Gradient)

      • 一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征。

      • 局部目标的表象和形状能够被梯度或边缘的方向密度分布很好地描述。其本质为:梯度的统计信息,而梯度主要存在于边缘的地方。

      • HOG特征的提取与计算步骤

        1. *色彩和伽马归一化*
          • 为了减少光照因素的影响,首先需要将整个图像进行规范化(归一化)。
          • 这种压缩处理能够有效地降低图像局部的阴影和光照变化。
        2. 计算图像梯度
          • 计算图像横坐标和纵坐标方向的梯度,并据此计算每个像素位置的梯度方向值;
          • 求导操作不仅能够捕获轮廓,人影和一些纹理信息,还能进一步弱化光照的影响。
        3. *构建方向的直方图*
          • 细胞单元中的每一个像素点都为某个基于方向的直方图通道投票。
          • 每一票都是带有权值的,这个权值是根据该像素点的梯度幅度计算出来。
        4. 将细胞单元组合成大的区间
          • HOG描述符就变成了由各区间所有细胞单元的直方图成分所组成的一个向量。这些区间是互有重叠的,这就意味着:每一个细胞单元的输出都多次作用于最终的描述器。
  • 依赖于DCNN对图像转换的平移不变性,根本是源于重复的池化层和下采样组合

    • 平移不变性增强了对数据分层抽象的能力,但同时可能会阻碍低级视觉任务,在一些任务中语义分割更倾向于精确的定位而不是抽象的空间关系,例如姿态估计、语义分割等
  • 文章提出了DCNN的两个障碍:

    • 信号下采样;
      • 提出atrous(带‘hole’)算法,它可以有效进行DCNN响应的密集计算,扩大感受野,获取更丰富的上下文信息。
        • atrous:空洞卷积(atrous convolutions)又名扩张卷积(dilated convolutions)
        • 卷积核为3、扩张率为2和无边界扩充的二维空洞卷积,一个扩张率为2的3×3卷积核,感受野与5×5的卷积核相同。
        • 在相同的计算条件下,空洞卷积提供了更大的感受野。空洞卷积经常用在实时图像分割中。
    • 空间不敏感性。
      • 提出使用CRF做后处理,代替全连接层,能够捕获到更精细的边缘细节以及适应远距离依赖。
    • 效果:在这个deeplab系统上做实验达到了71.6%的IOU准确度,另外在GPU上运行速度达到了8FPS。
      • IoU(Intersection over Union):一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的任务都可以用IoU来进行测量。
      • 这个标准用于测量真实和预测之间的相关度,相关度越高,该值越高。
  • 基于深度卷积网和全连通CRF的图像语义分割研究方法

    1. 使用空洞算法做密集滑动窗口特征提取

      • 密集的空间分数评估有助于提取密集的CNN特征。

      • 将VGG16的全连接层改为卷积层,再使用采样率rate=2或4的空洞卷积方法对特征图采样,这种方法不仅可以保持完好的滤波器还能扩大感受野,并且不增加计算量和参数。

      • 算法里加入了im2col函数,将多通道的特征图转化成向量块,可以在不引入任何近似值的情况下,用各种采样率高效计算密集CNN特征图。

        • im2col函数:将进行卷积运算的一组图片二维化,而后再与卷积核进行矩阵相乘,代替了卷积运算原来相乘再相加的运算形式,可以大大减少运算所需时间

        • 目标

        • 过程:(图a)按照从左到右、从上到下的过程,将(a)中大小为3*3(因为kernel大小为3*3)的矩阵拉成(图b)中的一列。具体过程如下图所示

          • 图像在内存中的存储是:首先是连续存储第一通道的数据,然后再存储第二通道的数据,最后存储第三通道的数据。
      • 损失函数是计算CNN输出图与原始图像(8倍采样)每个位置像素点交叉熵总和。

        • 交叉熵:用来求目标与预测值之间的差距。
          • 所以当越不可能的事件发生了,我们获取到的信息量就越大。越可能发生的事件发生了,我们获取到的信息量就越小。那么信息量应该和事件发生的概率有关。
          • 信息量的计算可以理解为:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cDtE6e56-1633481723680)(C:\\Users\\23105\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211005193556124.png)]
          • 熵用来表示所有信息量的期望[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IH5qgRuj-1633481723682)(C:\\Users\\23105\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211005193654300.png)]
          • 一条信息的信息量大小和它的不确定性有直接的关系。信息量的度量就等于不确定性的多少
          • 相对熵(KL散度)
            • 直观的理解就是如果用P来描述样本,那么就非常完美。而用Q来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和P一样完美的描述。
            • 如果我们的Q通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,Q等价于P。
          • 交叉熵用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出成本的大小。交叉的字面意思在于:真实分布与非真实分布的交叉。
          • 交叉熵有时候也被称为对数损失函数
    2. 用卷积网络控制接受域的大小加速密集计算

      • 文章设置不同的感受野大小实验,发现由7*7变为4*4之后,训练速度提高,加速密集计算,还尝试了将完全连接层的通道数量从4096减少到1024,这进一步减少了计算时间和内存占用,同时不会影响性能
    3. CRF精准定位

      • 该模型适用于有效的近似概率推断,可看做特征空间里具有高斯核的卷积操作,实现精准定位。
      • CRF:条件随机场(Conditional Random Fields)是给定一组输入序列条件下另一组输出序列的条件概率分布模型.
        • 随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。
        • 马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。
        • **CRF是马尔科夫随机场的特例,**它假设马尔科夫随机场中只有X和Y两种变量,X一般是给定的,而Y一般是在给定X的条件下的输出。
    4. 对尺度预测

      • 就是在网络的输入图像和前四个池化层后面连接一个两层的MLP,MLP第一层是128个33滤波器,第二层是128个11滤波器,然后将MLP的特征图连接到网络最后一层特征图上,一起送入分类层。
  • DeepLab创造性的结合了DCNN和CRF产生一种新的语义分割模型,模型预测更精确同时计算效率更高。

Power by : semantic image segmentation with deep convolutional nets and fully connected CRFs

语义分割(Semantic Segmentation)方法

  • 语义分割,就是按图像中物体表达的含义进行抠图。

  • 从宏观上看,语义分割是一项高层次的任务,为实现场景的完整理解铺平了道路。

  • 相比传统的目标识别,语义分割它更强大。语义分割模型不仅可以识别简单的类别,而且还可以进行多目标、多类别、复杂目标以及分割目标

  • 语义分割是从粗推理到精推理的自然步骤:

      1. 原点可以定位在分类,分类包括对整个输入进行预测。
      2. 本地化/检测,它不仅提供类,还提供关于这些类的空间位置的附加信息。
      3. 语义分割通过对每个像素进行密集的预测、推断标签来实现细粒度的推理,从而使每个像素都被标记为其封闭对象矿石区域的类别。
  • 语义分割方法:

    • 一个通用的语义分割体系结构可以被广泛认为是一个编码器网络,然后是一个解码器网络:
      • 编码器通常是一个预先训练的分类网络,如vgg/resnet,然后是一个解码器网络。
      • 解码器的任务是将编码器学习到的识别特征(低分辨率)语义投影到像素空间(高分辨率)上,得到密集的分类。
    1. 基于区域的语义分割

      • 基于区域的方法通常遵循“使用识别的分割”管道,首先从图像中提取自由形式的区域并对其进行描述,然后进行基于区域的分类。
      • R-CNN(具有CNN特征的区域)是基于区域的方法的代表性工作之一。
        • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SISzzl2R-1633481723684)(C:\\Users\\23105\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211005213922427.png)]
        • 对于图像分割任务,R-CNN提取了每个区域的两种特征:全区域特征和前景特征
    2. 全卷积网络语义分割

      • 因为模型网络中所有的层都是卷积层,故称为全卷积网络。

      • FCN 将传统 CNN 中的全连接层转化成卷积层,对应 CNN 网络 FCN 把最后三层全连接层转换成为三层卷积层(4096,4096,1000)。

        • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RasSOuyy-1633481723685)(C:\\Users\\23105\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211006083839343.png)]
        1. 卷积化(Convolutional)
          • 全连接层(6,7,8)都变成卷积层,适应任意尺寸输入,输出低分辨率的分割图片。
        2. 上采样(Upsample)
          • 低分辨率的图像进行上采样,输出同分辨率的分割图片。
        3. 跳跃结构(Skip Layer)
          • 结合上采样和上层卷积池化后数据,修复还原的图像。
      • 主要思想是使经典的CNN以任意大小的图像作为输入。CNN仅接受和生产特定尺寸输入的标签的限制来自完全连接的固定层.

    3. 弱监督语义分割

      • 致力于通过使用带注释的边界框来实现语义分割。
        • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1CaDbVLI-1633481723687)(C:\\Users\\23105\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211005214352816.png)]
  • 图像分割的几个时期:

    • 2000年之前,数字图像处理时我们采用方法基于几类:阈值分割、区域分割、边缘分割、纹理特征、聚类等
    • 2000年到2010年期间, 主要方法有四类:基于图论、聚类、分类以及聚类和分类结合
    • 神经网络模型的崛起和深度学习的发展,当前最成功的图像分割深度学习技术都是基于一个共同的先驱:FCN(Fully Convolutional Network,全卷积神经网络)。
    • 2010年前,CNN 是非常高效的视觉处理工具,因为它能够学习到层次化的特征。研究人员将全连接层替换为卷积层来输出一种空间域映射(反卷积)而非简单输出类别的概率,从而将图像分割问题转换为端对端的图像处理问题。
      • 端对端:解决问题时,输入问题的原始数据,然后模型输出所需结果,中间过程我们不加以考虑
        • 端对端的好处:通过缩减人工预处理和后续处理,尽可能使模型从原始输入到最终输出,给模型更多可以根据数据自动调节的空间,增加模型的整体契合度。
        • 端对端的坏处:通过大量模型的组合,增加了模型复杂度,降低了模型可解释性。

以上是关于读点论文图像语义分割与深度学习的结合的主要内容,如果未能解决你的问题,请参考以下文章

基于深度学习的图像语义分割方法综述

基于深度学习的图像语义分割技术概述之5.1度量标准

基于深度学习的语义分割初探FCN以及pytorch代码实现

《基于深度学习的图像语义分割方法综述》阅读理解

基于深度学习的图像语义分割技术概述之背景与深度网络架构

Keras深度学习实战(18)——语义分割详解