【语义分割】FCN论文阅读

文章目录

  • 摘要
  • 一、介绍
  • 二、相关工作
  • 三、全卷积网络
    • 3.1 调整分类器用于密集预测
    • 3.2 Shift-and-stitch是过滤稀疏
    • 3.3 上采样是反卷积
    • 3.4 Patchwise训练是损失采样
  • 四、分割架构
    • 4.1 从分类器到密集FCN
    • 4.2 跳跃连接&网络结构
    • 4.3 实验架构
  • 五、结果
  • 六、结论

摘要

  主要成就: 卷积网络是一种可以产生层次视觉特征的强大的视觉模型,经过端到端,像素到像素训练的卷积神经网络超过了现有语义分割方向最先进的技术。
  本文核心思想: 搭建了一个全卷网络,接受任意大小的输入,并通过有效的推理和学习产生同样尺寸的输出。
  本文方法:
  (1)定义和详细描述了全卷积网络,解释了它们在空间密集(像素级)预测任务中的应用,并与先前的模型建立了联系。将分类网络(AlexNet、VGG-net和GoogLeNet)改编成全卷积网络,并通过微调将学习表示转移到分割任务中。
  (2)设计了一个新的体系结构----跳跃连接,将来自深层、粗层的语义信息与来自浅层、细层的外观信息相结合,相互补偿,产生精确而详细的分割。既跳跃连接能将全局信息和局部信息连接起来,相互补偿。
  结果:
  本文的全卷积网络实现了PASCAL VOC、NYUDv2和SIFT Flow的最先进分割,而图像的推理时间不到五分之一秒。

一、介绍

  卷积网络:
  正在推动识别技术的进步:Convnet不仅改进了图像分类,而且在结构化输出的本地任务上也取得了进展(包括包围盒目标检测、零件和关键点预测和局部对应)。Convnet从粗略到精细推理的下一步自然是在每个像素处进行预测。
  语义信息和外观信息:
  语义信息(全局信息):提取位置是网络的深层;特点是物体的空间信息比较丰富,对应的感受野较大;有助于分割尺寸较大的目标,有利于提高分割的精确度。
  外观信息(局部信息):提取位置是网络的浅层;特点是物体的几何信息比较丰富,对应的感受野较小;有利于分割尺寸较小的目标,有利于提高分割的精确度。
  如下图,上面为局部信息,轮廓分明,下面为全局信息。
      【语义分割】FCN论文阅读_第1张图片
  像素级预测(语义分割):
  语义分割面临语义和位置之间的内在张力:网络越深,局部信息(外观信息)丢失;网络越浅,全局信息(语义信息)很少。全局信息和局部信息存在内部的矛盾。
  (1)以前的方法已经使用convnets进行语义分割:其中每个像素被其封闭对象或区域的类来标标记,但这项工作也存在缺点。
  (2)全卷积网络(FCN)用于语义分割(本文):经过端到端,像素到像素的训练,在没有进一步的机制的情况下超过了最先进的水平。
  感受野介绍:
  高层中的每个位置(每个特征图单元),它们被路径连接到的图像的位置(图像的像素),这些位置(图像的像素)被称为它的感受野。简单来说,在卷积神经网络中,决定某一层输出结果中一个元素,所对应的输入层(输入图像)的区域大小,被称为感受野。
      【语义分割】FCN论文阅读_第2张图片
  通常来说,大感受野的效果要比小感受野的效果更好。通过公式可见,步幅越大,感受野越大。但是过大的步幅会使特征图保留的信息变少。因此在减小步幅的情况下,如何增大感受野或使其保持不变是分割中的一大问题
            在这里插入图片描述
  训练:
  本文是第一个,端到端,像素到像素训练全卷积网络(FCN),1)用于像素预测;2)使用监督预训练,以前的工作是没有经过有监督的预训练的小型网络。本文的模型将在分类方面取得的成功转化为密集预测,将分类网络重新解释为全卷积,根据其学习的表示进行微调。
  全卷积网络可以预测任意大小输入的密集输出,学习和推理都是通过密集的前向计算和反向传播来完成,网络中的上采样层可以在下采样池网络中进行像素预测和学习。
   Patchwise训练,常见但缺乏全卷积训练的效率。我们的方法没有利用预处理和后处理的复杂性(例超像素、提案或通过随机字段或局部分类器进行的事后优化)

二、相关工作

  本文借鉴了图像分类和迁移学习方面取得的成功:
  (1)迁移首先在视觉识别任务上得到证明,然后是检测,之后混合提议分类模型中的实例和语义分割任务。
  (2)重新构建并微调分类网络,以直接语义分割的密集预测。
  全卷积网络:
  (1)使用案例
  Matan等:首先提出了将卷积网络扩展到任意大小的输入,它扩展了经典的LeNet来识别数字串。因为他们的网络仅限于一维输入字符串,他们使用Viterbi解码来获得它们的输出。
  Wolf和Platt等:将卷积网络的输出扩展为二维图,用于邮政地址块四角检测。
  Ning等:利用全卷积推理,定义了一个用于线虫组织粗多类分割的卷积网络。
  全卷积计算在当今的多层网络时代也得到了应用:  Sermanet等的滑动窗口检测,Pinheiro和Collobert的语义分割,Eigen等人的图像恢复,都是用了全卷积推理。
  (2)训练
  全卷积训练是罕见的,但Tompson等有效地使用,用于学习端到端的部件检测器和姿态估计的空间模型,但他们没有对这种方法进行阐述或分析。
  He等人丢弃分类网的非卷积部分,进行特征提取,结合候选区域和空间金字塔池,产生一个局部的、固定长度的特征。虽然快速有效,但无法进行端到端的学习。(SPPNet)
  卷积网络的稠密预测:
  (1)最近的一些研究将convnets应用于稠密预测
  包括Ning等的语义分割,Ciresan等的电子显微镜边界预测。 对于,Ganin和Lempitsky的混合神经网络/最近邻模型用于自然图像边界检测,Eigen等图像恢复和深度估计。这些方法的共同点包括:
  1.限制容量和感受野的小模型;
  2.patchwise训练
  3.通过超像素投影、随机场正则化、滤波或局部分类进行后处理
  4.密集输出:输入移位和输出交错得到(移位缝合密集输出)。OverFeat提出
  5.多尺度金字塔处理
  6.饱和tanh非线性;
  7.集成
  (2)我们的方法
  没有上述机制,但从FCN的角度研究了patchwise训练和“移位缝合”密集输出,还讨论了网络上采样。我们对深度分类体系结构进行了改进和扩展,将图像分类作为有监督的预训练,并进行了全卷积微调,以便从整个图像输入和整个图像的Ground Truths中进行简单有效的学习。
  Hariharan等、 Gupta等人同样,将深层分类网络应用于语义分割,但在混合提议分类模型中这样做。这些方法对R-CNN系统进行微调,通过采样边界框和/或区域建议进行检测、语义分割和实例分割,但不是端到端学习的。

三、全卷积网络

  卷积层:

  (2)细节
  卷积网络建立在平移不变性的基础上,它的基本组件(卷积、池化和激活函数)作用于局部输入区域,并且只依赖于相对的空间坐标。
  假设xij为某一层(i,j)位置处的的数据向量,yij为下一层的数据向量,通过以下计算yij:
              在这里插入图片描述
  其中k是内核大小,s是步长或子采样因子,fks决定层类型:卷积或平均池化的矩阵乘法,用于最大池化的空间最大值,或用于激活函数的元素非线性,等等。
  这种函数形式在组合的情况下维护,内核大小和步幅遵循转换规则
              在这里插入图片描述
  全卷积网络:
  (1)定义:一般的网络计算一般的非线性函数,卷积网络计算非线性滤波器,仅包含卷积(不包含全连接层)的网络称之为深度滤波器或全卷积网络(FCN)。
  (2)细节:
  FCN可以对任何大小的输入进行操作,并产生相应空间维度的输出。
  FCN构成的实值损失函数定义了一个任务。如果损失函数是最后一层空间维数的和在这里插入图片描述,则损失函数的梯度将是其每个空间分量的梯度和。因此在整个图像上计算的L的随机梯度下降将与L’上的随机梯度下降相同,L’上的随机梯度下降将所有最终层的感受野作为一个小批量。当这些感受野明显重叠时,在整个图像上逐层计算而不是单独patch-by-patch计算,前向计算和反向传播更高效。

3.1 调整分类器用于密集预测

  分类网络:
  典型的分类网络(LeNet、AlexNet及其更深层次的后继者),采用固定大小的输入(因为包含固定尺寸的全连接层)并产生非空间输出。这些网络的全连接层有固定的尺寸、丢弃了空间坐标。
  分类网络=》全卷积网络:
  普通分类网络中的全连接层也可以被看作是具有覆盖其整个输入区域内核大小的卷积层,通过这种转换可以将全连接层转换为卷积层,将普通卷积网络转换为全卷积网络,接受任何大小的输入,并输出分类映射。这种转换如图所示:
        【语义分割】FCN论文阅读_第3张图片

  虽然这种转换(FCN)生成的映射相当于原始网络对特定输入patches的评估,但是计算在这些patches的重叠区域中被高度分摊。例虽然AlexNet前向传播需要1.2毫秒(在典型的GPU上)来生成227×227图像的分类分数,但全卷积的版本需要22毫秒才能从500×500图像生成10×10网格的输出,这比现在的方法快5倍多
  卷积模型的空间输出映射使它们成为语义分割等密集问题的自然选择。由于每个输出单元都有可用的Ground Truth,向前和向后传播都很简单,并且都利用了卷积固有的计算效率(和积极的优化)。
  对于AlexNet反向传播时间对于单个图像为2.4 ms,对于全卷积的10×10输出映射为37 ms,从而产生与前向过程类似的加速。这种密集的反向传播如图所示:
        【语义分割】FCN论文阅读_第4张图片
图2全卷积网络可以有效地学习对每像素任务(如语义分割)进行密集预测。
  当将分类网重新解释为全卷积网络时,会产生任何大小输入的输出映射,而输出维数通常因subsampling而降低。分类网络子样本保持滤波器小,计算要求合理。这使这些网络的全卷积版本的输出变粗,将其从输入的大小减小一个因子(因子=输出单元的感受野的像素步长)。

3.2 Shift-and-stitch是过滤稀疏

  Shift-and-stitch:
  输入移位和输出交错(Shift-and-stitch)是由OverFeat引入的一种技巧,它可以无需插值从粗输出中产生密集的预测。
  如果输出以f的因子进行下采样,则输入将右移x像素,下移y像素(左上填充)
              在这里插入图片描述
    这些f2个输入通过convnet,得到的输出是交错排列,使得预测与它们的感受野中心像素相对应。
  改变:
  改变convnet的过滤器和层步幅可以产生与这个shift-and-stitch技巧相同的输出。假设一个层(卷积或池化层)输入步长为s,下一个卷积层的滤波器权重为fij。将下层的输入步幅设置为1,将其输出上采样s倍,就像shift-and-stitch一样。但是,使用原始滤波器卷积+上采样的输出并不会与技巧产生相同的结果,因为原始滤波器只看到其(现在是上采样)输入的减少部分,要重现这个技巧需要将过滤器放大为稀疏过滤器:
              【语义分割】FCN论文阅读_第5张图片
  (i和j从零开始)。要再现这个技巧的全部净输出,就要逐层重复这个滤波器放大层,直到所有的subsampling都被移除。
  简单减少网络中的subsampling是一种平衡:过滤器可以看到更精细的信息,但感受野更小,计算时间更长。Shift-and-stitch是另一种平衡:在不减小滤波器的感受野大小的情况下,使输出更密集,但是过滤器被禁止以比其原始设计更细的比例访问信息。
  我们已经对Shift-and-stitch做了初步的实验,但在模型中并没有使用它(用于将粗输出产生密集预测),我们发现通过上采样进行学习更加有效和高效,尤其是与后面描述的跳跃层融合相结合时。

3.3 上采样是反卷积

  从粗输出产生密集预测:
  方法一:插值。例简单的双线性插值通过线性映射计算来自最近的四个输入的每个输出yij,该线性映射仅取决于输入和输出单元的相对位置。
  方法二:Shift-and-stitch。上节讲述
  方法三:上采样/反卷积。从某种意义上讲,使用因子f进行的上采样等同于输入步长为1/f的卷积。只要f是整数,那么向上采样的自然方式是输出步幅为f的向后卷积(有时称为反卷积)。这种操作实现简单,反卷积只是反转常规卷积的前向和后向传播。(语义分割中)上采样/反卷积中的过滤器不固定,通过在网络内对像素损失进行反向传播来端到端的学习。一堆反卷积层和激活函数甚至可以学习非线性上采样。
  实验证明:网络内的上采样(反卷积)是快速有效的学习密集预测方法。

3.4 Patchwise训练是损失采样

  训练方式:
  (1)全卷积训练:是指用卷积层替换全连接层,以便整个网络仅包含卷积层(和池化层)。
  (2)patchwise训练:既“分批训练”,旨在避免完整图像训练的冗余。在语义分割中通过使用整个图像对图像中的每个像素进行分类,那么将在输入中添加很多冗余。在训练分割网络期间避免这种情况的一种标准方法是向网络输入一批来自训练集的随机补丁(围绕目标对象的小图像区域),而不是整个图像。Patchwise采样可确保输入具有足够的方差,并且是训练数据集的有效表示形式(小批量应与训练集具有相同的分布)。patchwise训练技术有助于更快地收敛并平衡类。在本文中称没有必要使用patchwise训练,如果想平衡类可以加权或对损失进行抽样。从另一种角度来看,完整图像训练逐像素分割任务的问题在于输入图像具有很大的空间相关性,要解决此问题可以从训练集中采样补丁(patchwise 训练),也可以从整个图像中采样损失。这就是为什么patchwise 训练就是损失采样的原因。
  简单来说:patchwise训练是指对每一个感兴趣的像素,以它为中心取一个patch,然后输入网络,输出则为该像素的标签,训练时就将一个个patch组成一个batch作为网络输入。由于patches可能高度重叠,所以需要一些sampling方法对选取一些patches作为训练集,一方面平衡类别,另一方面解决空间相关性等问题。

  patchwise训练中的抽样:
  一幅图片中patches的随机选择可以简单地复现,将损失限制为其空间项的随机采样子集(或等效地在输出和损耗之间应用DropConnect掩码)从梯度计算中排除patches。如果保留的patches仍有明显的重叠,全卷积运算仍将加快训练速度,如果梯度在多个后向传递上累积,则batches可以包括来自多个图像的patches。
  patchwise训练中的抽样可以纠正类不平衡,并减轻密集patches的空间相关性。在全卷积训练中,也可以通过加权损失来实现类平衡,并且可以使用损失采样来处理空间相关性。
  实验发现(4.3节):patchwise训练并没有使密集预测的收敛速度更快或更好,整图全卷积训练是有效的。

四、分割架构

  将分类器使用到FCN中,在网络内补充上采样层(反卷积层)和使用像素损失(每像素多项logistic损失)实现密集预测,通过微调这个改进的网络来训练分割网络。之后构建了一个新的skip架构,它结合了粗略的、语义信息和局部的外观信息来改进预测。

4.1 从分类器到密集FCN

  将分类网络转换为FCN用于语义分割:
  丢弃分类网络中最后的分类器层来截取每个网络,并将所有全连接的层转换为卷积层。之后附加通道尺寸为21的1×1的卷积,以预测每个PASCAL类(包括背景类)的分数,然后是一个反卷积层粗略的将粗输出上采样到像素密集输出,如3.3所述。下表比较了不同分类网络的效果
        【语义分割】FCN论文阅读_第6张图片
  从分类到分割的精细调整,即使是最差的模型也达到了当前最好分割模型的75%的性能。FCN-VGG16达到了最好的结果,尽管GoogLeNet与VGGNet的分类精度相似,但分割结果并不如VGG。

4.2 跳跃连接&网络结构

  原始全卷积网络用于分割任务,效果不好。添加skip结构后的新的全卷积网络用于分割,结合深层语义信息和浅层外观信息,细化了输出的空间精度,达到很好效果。,如图算法结构,和跳跃连接:
【语义分割】FCN论文阅读_第7张图片
  (1)未使用跳跃连接的分割模型:
  FCN-32:
   按照4.1中的全卷积化并微调的分类器,并仅使用最后一层(32倍下采样)的特征,进行分割预测,需要反卷积32倍得到原图大小的预测。
   在标准度量上得分很高,但输出结果不尽人意(如下图,最左),最终预测层的32倍下采样步长限制了最终反卷积预测的输出细节。
     【语义分割】FCN论文阅读_第8张图片
  (2)添加跳跃连接的分割模型:
  添加链接(skip结构)来改进原始分割模型(FCN-32),链接将最终预测层与有着更精细步幅的较低层结合(如下图)。更精细的预测需要更少的层,所以从较浅的净输出进行预测是有意义的。(关键:预测融合和反卷积/上采样)
  FCN-16: 首先,在pool4(下采样16倍)的顶部添加一个1×1的卷积层来产生额外的类预测。在conv7上(下采样32倍)添加2x上采样层并产生另一个预测,将两个预测进行融合(融合后的预测为16倍下采样)。最后,融合后的预测通过16倍反卷积得到原图大小的预测。构建FCN-16
  FCN-8: 继续采用FCN-16方式,将来自pool3(8倍下采样)的预测与pool4和conv7融合的预测的2×上采样进行融合,将融合后的预测进行8倍反卷积得到原图大小的预测。构建网络FCN-8。
  添加skip结构可以提升分割的性能,上图显示了输出更精细的记过。
【语义分割】FCN论文阅读_第9张图片
  通过其他方法进行细化:
  (1)减小池层的步长:
  是获得更精确预测的最直接的方法。这样做对于基于VGG16的网络来说是有问题的,将pool5层设置为具有步长1要求卷积fc6的内核大小为14×14才能保持其感受野大小。除了计算开销外,还很难学习这么大的滤波器。尝试用更小的过滤器重新构建pool5上面的层,但是没有成功,一个可能的解释是从上层ImageNet训练的权重初始化是很重要的。
  (2)移位和缝合技巧:
  另一种获得精确预测的方法,在实验中这种方法的改进成本比层融合更差。

4.3 实验架构

  优化:
  使用带动量的SGD;对FCN-AlexNet、FCN-VGG16和FCN-GoogLeNet批量大小为20张图片,分别使用10-3、10-4和5-5的固定学习率;动量0.9,权重衰减5−4或2−4,并将偏差的学习率提高了一倍;发现训练对上述参数不敏感(但对学习速率敏感);对类评分卷积层进行零初始化,发现随机初始化既不能获得更好的性能,也不能更快地收敛。在原始分类器网络中包含了Dropout。
  微调:
  通过反向传播在整个网络中对所有层进行微调。仅对输出分类器进行微调只会产生完全微调性能的70%。
              【语义分割】FCN论文阅读_第10张图片
  Patch sampling :
  如3.4所述,完整图像训练可以有效地将每个图像batches为大型重叠patches的规则网格。
  先前的工作:在整个数据集上随机采样patches,可能导致更高方差的batches,进而可能加速收敛。
  我们的工作:对损失进行空间采样来研究这种权衡,以一些概率1-p忽略每个最终层的单元。为避免更改有效batch大小,同时将每batch图像数量增加1 / p。注意,由于卷积的效率对于足够大的p值,这种形式的拒绝采样仍然比patchwise训练更快。图显示了这种采样形式对收敛的影响,与整图像训练相比,采样对收敛速度没有显着影响,但由于每批需要考虑的图像数量较多,采用的时间要长得多。因此在实验中选择非抽样、全图像训练。
        【语义分割】FCN论文阅读_第11张图片
  类平衡:
  全卷积训练可以通过加权或抽样损失来平衡类。虽然我们的标签有轻度不平衡(大约3/4是背景),但发现类平衡是不必要的。
  密集预测:
  通过网络内的反卷积层将分数上采样到输入维度。最后一层反卷积滤波器固定为双线性插值,中间上采样层初始化为双线性上采样,然后端到端训练学习。不使用移位和缝合技巧或等效的过滤器稀疏。
  数据增强:
  尝试通过随机镜像和在每个方向上将图像平移32个像素(最粗的预测尺度)来“抖动”图像进而增强训练数据,这没有明显的改善。
  更多的训练数据:
  更多训练数据可以提升性能

五、结果

  在语义分割和场景解析上测试FCN,探索了PASCAL VOC、NYUDv2和SIFT Flow。在每个数据集上评估FCN -8,然后将其扩展到NYUDv2的多模式输入和SIFT Flow的语义和几何标签的多任务预测。
  指标:
   四个常见语义分割和场景解析评估的指标,这些指标是像素精度和区域相交度(IU)的变化。设nij为类别为i但是被预测为类别j的像素的个数,其中有ncl个不同的类,ti=P jnij为类别为i的像素总数:
  像素精度:
              在这里插入图片描述
  平均精度:
              在这里插入图片描述
  平均IU:
              在这里插入图片描述
  频率加权IU:
              在这里插入图片描述
  数据集:
  (1)PASCAL VOC:表给出了FCN-8在PASCAL VOC 2011和2012测试集上的性能,并将其与先前最先进的SDS和著名的R-CNN进行比较。达到了很好的结果,推理时间减少114×或286×(总体)。
      【语义分割】FCN论文阅读_第12张图片
  (2)NYUDv2 :使用Microsoft Kinect收集的RGB-D数据集。它有1449个RGB-D图像,像素标签已被Gupta等人合并为有40个类别的语义分割任务。
  (3)SIFT Flow :是2,688个图像的数据集,具有33个语义类别(“桥”,“山”,“太阳”)的像素标签,以及三个几何类别(“水平”,“垂直”和“天空”)。FCN可以自然地学习同时预测两种类型标签的联合表示。

六、结论

  全卷积网络是一类非常丰富的模型,现代分类网络是其中的一个特例。将这些分类网络扩展到分割,并通过多分辨率层组合改进体系结构,极大地提高了最新技术,同时简化和加快了学习和推理。

你可能感兴趣的:(图像分割,计算机视觉)