基于深度学习的图像语义分割技术概述之常用方法

深度学习图像分割的常用方法

深度学习在多种高级计算机视觉任务中的成功—特别是监督CNNs(Convolutional Neural Networks,卷积神经网络)在图像分类、物体检测方面的成功—鼓舞着研究人员探索此类网络对于像素级标记,如语义分割方面的能力。此类深度学习技术的突出优点,相比传统方法,,能够针对当前问题自动学习合适的特征表示。传统方法通常使用手动特征,为了使其适应新的数据集,通常需要专家经验和时间对特征进行调整。

文章综述中所比较的基于深度学习的图像分割算法的特性(详情查看原文)。 


  • 当前最成功的图像分割深度学习技术都是基于一个共同的先驱:FCN(Fully Convolutional Network,全卷积神经网络)。CNNs是非常高效的视觉工具,能够学习到层次化的特征。
  • 研究人员将全连接层替换为卷积层来输出一种空间域映射而非类的评分,从而将现存、周知的分类模型,如AlexNet,VGG,GoogleNet和ResNet等,转化为全连接的模型。
  • 这些映射用分数阶卷积(fractionally strided convolutions,又名反卷积)来产生像素级标签输出。
  • 这被认为是图像分割问题的一个里程碑,展示了将CNNs应用于端到端图像分割问题的训练方法、如何高效地学习对任意大小图像进行密集预测(dense predictions)。在各类标准数据集中取得令人瞩目的精确率,被认为是深度学习语义分割的中流砥柱。

FCN的缺点:

  • 空间无关性:不能有效地考虑全局上下文信息;
  • 同类个体间差距:默认情况下不考虑个体之间的差距(不能区分相同类别的不同个体);
  • 实时性:针对高分辨率图像还远未达到实时水平;
  • 非结构化数据:不能完全适应3D点云般非结构数据或模型。

4.1 解码器变形(Decoder variants)

  • 编码:产生低分辨率的图像表示或特征映射的过程,将图像转化为特征;
  • 解码:将低分辨率图像映射到像素级标签的过程,将特征转化为图像标签。

除FCN之外,还有其他方法将分类的神经网络用于语义分割。解码过程通常是这些方法的显著不同。

SegNet是其中一个明显的例子。

  • SegNet由一系列上采样和卷积层组成,最后是一个softmax分类器预测像素级的标签,其输出与输入大小相同。解码阶段每个上采样层与编码阶段的最大池化相对应(上采样与最大池化使用类似的对应规则)。这些层使用编码阶段最大值池化所对应的特征映射,将特征映射为标签。特征图上采样后的结果,与一组训练好的滤波器组进行卷积产生密集特征图。当特征图恢复到原始的分辨率时,之后就通过softmax分类器产生最终的分割结果。
  • 基于FCN的架构使用了可学习的反卷积滤波器来上采样特征图。之后上采样的特征图被加入编码阶段产生的元素级的特征图中。图10显示了两种途径的不同之处。 
    • 在SegNet中,进行最大池化时会记录该最大值所在位置,从而在上采样时,使用相同的位置关系将其映射到较大的特征图中,其余部分用零填充。
    • 在FCN中,反卷积核[a,b,c,d]是学习得到的,其与[x1,x2,…,x16]进行反卷积后加入到[y1,y2,…,y16]。 

4.2 结合上下文知识

语义分割是一个要求多种空间域信息的问题。这也需要局部和全局信息的平衡。

  • 细粒度、局部信息可以获得较好的像素级的精确度。
  • 图像上下文的信息有助于去除局部特征的歧义。
  • 池化层可以是网络获得一定程度的空域无关性、降低计算量、获取全局上下文信息。即使是纯CNNs网络,如果没有池化层,其每个单元的感受野也只能随着层数的递增而线性增加。
  • 使CNNs考虑全局信息的途径有很多:后处理阶段使用CRFs(Conditional Random Fields ,条件随机场)、膨胀卷积、多尺度聚合、在RNNs中加入上下文模型。

4.2.1 条件随机场

  • CNN架构的空间变换无关性限制了分割任务中的空间准确性。
  • CRFs能够将低级的图像信息如像素之间的交互,和多类推理系统的输出结合起来即每个像素的标签,结合起来。这种结合对于获取大范围的依赖关系是非常重要的。
  • DeepLab模型利用全连接对级CRF作为一个独立的后处理阶段以增强分割效果。其将每个像素建模为场中的一个节点,对于每对像素,不管有多远都使用一个对级项(密集或全连接因子图)。 
    • 考虑了短程和长程的交互,有助于系统修复细节。
    • 全连接模型较为低效,可以使用概率推理进行替代

4.2.2 膨胀卷积(Dilated Convolutions)

膨胀卷积是克罗内克因子卷积滤波器的一种泛化,可以在不丢失分辨率的情况下指数级增大感受野。

  • 膨胀卷积是使用上采样滤波器的一种方法。膨胀率控制上采样因子,膨胀卷积可以使感受野指数级增长,而滤波器的参数数量线性增长。
  • 膨胀卷积可以对任意分辨率实现密集特征提取。传统卷积是膨胀卷积膨胀率为1情况下的特例。 

  • 膨胀卷积与卷积前先对滤波器做膨胀处理等价,即,根据膨胀率拓展其大小,将空元素用零填充。

  • 通常使用膨胀卷积的网络中,都是增加膨胀率以增大感受野,而不对特征图进行降采样、也没有增加计算量。 

4.2.3 多尺度预测

CNNs中的每个参数都影响着特征图的尺度。滤波器存在只能检测特定尺度特征的危险(假设与角度无关)。参数也可能和当前问题有关,使模型难以泛化到不同的大小。其中一种解决方法就是使用多尺度的网络,生成多个尺度下的预测结构,之后将其结合到一个输出中。

  • 基于VGG-16的多尺度全连接网络模型。该网络有两条路径,一条处理原始大小的图片,其网络较浅。另一条路径则处理二倍大小的图片,其网络结构为全连接的VGG-16和一个卷积层,其处理结果经过上采样与第一条路径的相结合。融合后的输出经过另一系列卷积层产生最终的输出。该网络对尺度变换鲁棒性较强。
  • 另一种途径是使用由4种尺度结合的CNNs的方法。这4个网络具有相同的结构。其中的一个网络用于寻找场景的语义标签。该网络从粗到细粒度的提取特征。 
  • 另一种网络结构是由n个在不同尺度上操作的FCNs组成。从网络中提取到的特征混合在一起(经过必要的上采样和填充),之后经过卷积层产生最终的分割结果。其主要贡献为两个阶段的学习过程。第一阶段,独立地训练各个网络,之后将网络组合到一起,对最后一层进行微调。这种多次度模型允许高效地添加任意数量的训练好的层。

4.2.4 特征混合

另一种向全卷积架构中加入上下文信息的方式是特征混合。

  • 一种方法是将全局特征(从网络前一层中提取的)和从子序列中的局部特征相混合。通用的架构如原始的FCN使用跳跃连接(skip connections)来实现不同层特征图的混合。 
  • 另一种方法是早期混合。全局特征被反池化为局部特征大小,之后混合产生用于下一层的特征。 

4.2.5 递归神经网络

  • CNNs已经被成功地用于多维度的数据,例如图像。依赖手动定义的核,限制了架构对局部内容的理解。RNNs由于其独特的拓扑结构已经被成功地应用到短、长时的序列。这种方法中,通过将像素级和局部信息相结合,RNNs能够成功地建模全局内容、提升语义分割。
  • 不足:图像缺少自然序列架构。
  • ReSeg是基于ReNet的语义分割架构。输入图像经过VGG-16第一层处理,将特征图输入到多个ReNet层中进行微调。最后使用反卷积(transposed convolution)对特征图进行上采样。这种方法中门递归单元的使用能够在内存占用和计算效率上。
  • 长项依赖存在梯度消失的问题。一些衍生模型如LSTM( Long Short-Term 
    Memory ,长短期记忆)网络和GRUs可以避免这个问题。 
个人分类: 图像分割算法
阅读更多

扫码向博主提问

haoji007

非学,无以致疑;非问,无以广识
去开通我的Chat快问
个人分类: 分割
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭