论文详解-Fully Convolutional Networks for Semantic Segmentation

摘要

卷积网络是强大的视觉模型,可以产生特征层次结构。我们展示了卷积网络本身,经过端到端,像素到像素的训练,在语义分割方面改进了之前的最佳结果。我们的关键见解是建立“完全卷积”网络,该网络可以接受任意大小的输入,并通过有效的推理和学习产生相应大小的输出。我们定义和详细描述了全卷积网络的空间,解释了它们在空间密集预测任务中的应用,并绘制了与先前模型的连接。我们将当代分类网络(AlexNet, VGG网络和GoogLeNet)改编为全卷积网络,并通过微调将其学习到的表示转移到分割任务中。然后,我们定义了一个跳过架构,该架构结合了来自深层粗糙层的语义信息和来自浅层精细层的外观信息,以产生准确而详细的分割。我们的全卷积网络实现了PASCAL VOC、NYUDv2、SIFT Flow和PASCAL- context的改进分割(相对于2012年的67.2%平均IU提高了30%),而对典型图像的推理只需要十分之一秒。

语义分割,卷积网络,深度学习,迁移学习

空间密集预测是指对输入图像中的每个像素进行预测或分类的过程。在语义分割任务中,空间密集预测意味着对图像中的每个像素进行分类,以便将图像分割成具有语义信息的区域。全卷积网络(FCN)通过实现空间密集预测,能够有效地处理语义分割等任务,因为它们可以接受任意大小的输入并产生相应大小的输出,从而实现了端到端的像素级预测。

引言 

  • Convnets不仅在整幅图像分类方面不断进步,而且在具有结构化输出的局部任务上也取得了进展。这些进步包括边界盒目标检测,部分和关键点预测,以及局部对应。
  • 以前的语义分割方法通常是将每个像素标记为其所在对象或区域的类别,但这种方法存在一些缺陷,而本文介绍的方法可以解决这些缺陷。

这里的缺陷指的是:以前的方法可能会忽略全局信息或局部信息,或者需要使用复杂的后处理技术来提高分割的准确性。而本文介绍的全卷积网络方法可以同时考虑全局和局部信息,并且可以直接从图像中学习到像素级别的预测,从而避免了后处理的需要。 

  •  语义分割面临语义和位置之间固有的紧张关系:全局信息解决什么问题,而局部信息解决哪里问题。如何将这个范围从位置导航到语义?局部决策如何尊重全局结构?目前还不清楚用于图像分类的深度网络是否能产生足够精确的像素识别表示
  • 我们将预训练的网络转换为完全卷积形式,并使用利用完整特征谱的跳过架构对其进行增强。跳跃结构融合了特征层次,将深度的、粗糙的语义信息和浅的、精细的外观信息结合在一起(参见第4.3节和图3)。因此,深度特征层次在一个非线性的局部到全局金字塔中编码位置和语义。
  • 对PASCAL-Context数据集进行的实验结果表明,将对象分割和场景解析合并为统一的像素级预测任务是可行的。在这个任务中,每个像素都被标记为属于哪个对象或场景类别,从而生成与输入图像相同大小的分割图像。

2.相关工作 

  • 我们的方法借鉴了深度网络最近在图像分类[1],[2],[3]和迁移学习[18],[19]方面的成功。迁移首先在各种视觉识别任务中得到证明[18],[19],然后在混合提议分类器模型的检测和实例和语义分割中得到证明[5],[14],[15]。我们现在重新构建和微调分类网络,以直接、密集地预测语义分割。我们绘制了fcn的空间图,并将历史和最近的先前模型联系起来。

 混合提议-分类器模型(hybrid proposal-classifier models)是一种结合了目标提议和分类器的模型。在这种模型中,首先使用目标检测或提议生成算法(如R-CNN)生成候选目标提议,然后将这些提议输入到分类器中进行分类。这种方法结合了目标检测和分类的优点,能够在图像中识别和定位不同的目标。在语义分割任务中,这种模型可以用于生成候选的目标区域,然后对这些区域进行像素级别的分类,从而实现语义分割的任务。

  • 将卷积网络扩展到任意大小输入的想法最早出现在Matan等人[20],他们扩展了经典的LeNet[21]来识别数字串。由于他们的网络被限制为一维输入字符串,Matan等人使用Viterbi decoding来获得它们的输出。Wolf和Platt[22]将convnet输出扩展为邮政地址块四个角的检测分数的二维地图。这两种历史作品都完全卷积地进行推理和学习以进行检测。Ning等[10]定义了一种用于C. elegans组织粗多类分割的convnet。并使用完全卷积推断(fully convolutional inference)进行实现。

Viterbi decoding是一种动态规划算法,通常用于在隐马尔可夫模型(HMM)或其他具有状态转移概率和观测概率的模型中找到最可能的状态序列。在语音识别、自然语言处理和通信系统等领域经常会用到Viterbi解码算法。 该算法通过计算每个时刻的最可能状态路径,从而找到整体上最可能的状态序列。它利用动态规划的思想,通过递推地计算局部最优解来得到全局最优解。Viterbi解码算法对于处理具有大量状态和状态转移的问题非常有效,因为它能够在多个可能的状态序列中高效地找到最可能的序列。 在图像处理或语音识别中,Viterbi解码算法可以用于识别最可能的图像标记序列或语音信号序列,从而实现诸如词性标注、语音识别等任务。 

Wolf和Platt在他们的工作中使用卷积神经网络(convnet)将输出扩展为用于检测邮政地址块四个角的二维地图。这意味着他们使用卷积神经网络来生成用于定位邮政地址块四个角的检测分数的二维地图。这种方法可以帮助识别邮政地址块的位置和边界,从而在自动化邮件处理等应用中发挥作用。Wolf和Platt的工作可能涉及使用卷积神经网络进行目标检测和定位,以便有效地识别和定位邮政地址块。

Ning等人在他们的工作中使用卷积神经网络(convnet)进行C. elegans组织的粗略多类别分割,并使用完全卷积推断(fully convolutional inference)进行实现。这意味着他们使用卷积神经网络来对C. elegans组织进行分割,而不是使用传统的基于像素的分类方法。完全卷积推断是指使用卷积神经网络进行像素级别的分类和分割,而不是使用传统的全连接层。这种方法可以帮助识别和分割C. elegans组织中的不同细胞类型和结构,从而在生物医学研究中发挥作用。Ning等人的工作可能涉及使用卷积神经网络进行生物医学图像分析和分割,以便有效地识别和分割不同的细胞类型和结构。

  •  全卷积计算也被用于当前的多层网络时代。Sermanet等人[4]的滑动窗口检测,Pinheiro和Collobert[13]的语义分割,以及Eigen等人[23]的图像恢复都是完全卷积推理。完全卷积训练很少见,但被thompson等人有效地使用[24]学习端到端的部分检测器和用于姿态估计的空间模型,尽管他们没有对这种方法进行展示或分析。
  • 最近的一些研究将卷积神经网络应用于密集预测问题,包括Ning等人[10]的语义分割,Farabet等人的语义分割[12], Pinheiro and Collobert [13];Ciresan等人[11]对电子显微镜的边界预测,以及Ciresan等人对自然图像的边界预测。Ganin and Lempitsky [16]对于自然图像采用混合卷积/最近邻模型,以及Eigen等[23],[25]的图像恢复和深度估计。这些方法的共同元素包括:

 - 小型模型限制容量和感受野:指使用容量较小的模型,这些模型在处理图像时受到了一定程度的限制,通常具有较小的感受野(receptive fields),即在图像中用于感知信息的局部区域。

- 分块训练:指将图像分成小块进行训练,这种方法通常用于处理大尺寸图像或者为了提高训练效率。

- 通过超像素投影、随机场正则化、滤波或局部分类进行细化:描述了一些用于改进分割结果的技术,例如将超像素投影到图像上、应用随机场正则化、滤波或局部分类等方法。

- “交错”以获得密集输出:指通过交错或交叉的方式来获得密集的输出,通常用于生成像素级别的预测结果。

- 多尺度金字塔处理:描述了使用多尺度金字塔(pyramid)来处理图像,以便在不同尺度上进行分析和预测。

- 饱和tanh非线性:指使用饱和tanh函数作为非线性激活函数的一种方法,这种函数在神经网络中常用于引入非线性。

- 集成:描述了使用集成学习方法,将多个模型的预测结果进行整合以获得更好的性能。 这些方法和技术在图像分割和密集预测领域中被广泛使用,用于改进模型的性能和处理各种复杂的图像分析任务。

  • Hariharan等人[14]和Gupta等人[15]同样采用深度分类网络进行语义分割,但采用的是混合提议-分类器模型。这些方法通过采样边界框和/或区域建议来微调R-CNN系统[5],用于检测、语义分割和实例分割。这两种方法都不是端到端学习的。它们分别在PASCAL VOC和NYUDv2上实现了之前的最佳分割结果,因此我们直接将我们的独立端到端FCN与第5节中的语义分割结果进行比较。 

混合提议分类器模型是一种结合了提议生成和分类器的模型,通常用于目标检测和语义分割等任务。在这种模型中,首先通过提议生成算法(如选择性搜索或区域提议网络)生成候选目标的提议(bounding box或像素级别的区域),然后将这些提议输入到分类器中进行目标分类或分割。 这种模型的典型例子是R-CNN(Region-based Convolutional Neural Network)系列模型,包括R-CNN、Fast R-CNN、Faster R-CNN等。在这些模型中,候选目标的提议首先由提议生成算法生成,然后这些提议被送入卷积神经网络进行特征提取和目标分类。这种结合了提议生成和分类器的模型能够有效地处理目标检测和语义分割任务,同时也为后续的模型优化和改进提供了基础。 总的来说,混合提议分类器模型通过结合提议生成和分类器,能够实现对图像中目标的有效检测和分割,是目标检测和语义分割领域的重要模型之一。

  • 我们融合跨层的特征来定义一个非线性的局部到全局的表示,然后进行端到端调优。
  •  在本文会议版之后[17],FCN扩展到新的任务和数据。任务包括区域建议[31]、轮廓检测[32]、深度回归[33]、光流[34]和弱监督语义分割[35]、[36]、[37]、[38]。
  • 此外,新的研究成果对本文提出的fcn进行了改进,进一步推动了语义分割的发展。DeepLab模型[39]通过扩展卷积和密集CRF推理提高了输出分辨率。联合CRFasRNN[40]模型是CRF的端到端集成,有待进一步改进。ParseNet[41]对融合特征进行规范化,并使用全局池捕获上下文。[42]的“反卷积网络”方法通过使用提议、一系列经过学习的反卷积层和上采样操作来恢复图像的分辨率。U-Net[43]结合了跳跃层和学习反卷积,用于显微镜图像的像素标记。[44]的膨胀结构使得充分利用了扩张卷积以实现像素级精确输出,而无需使用随机场或跳跃连接层。

DeepLab是一种基于卷积神经网络的语义分割模型,由Google Brain团队开发。DeepLab模型通过使用空洞卷积(dilated convolution)和条件随机场(CRF)等技术,能够在保持高分辨率的同时实现高质量的语义分割。 DeepLab模型最初是基于VGG-16网络结构进行开发的,后来又发展出了基于ResNet网络结构的DeepLabv2和DeepLabv3模型。这些模型在PASCAL VOC、Cityscapes、ADE20K等数据集上取得了优秀的分割结果,并在图像分割领域得到了广泛应用。 DeepLab模型的主要特点包括: - 使用空洞卷积:通过在卷积核中引入空洞,可以在保持高分辨率的同时扩大感受野,从而提高分割的准确性。 - 使用多尺度金字塔池化(ASPP):通过在不同尺度上进行池化操作,可以捕捉到不同尺度的上下文信息,从而提高分割的准确性。 - 使用条件随机场(CRF):通过对分割结果进行后处理,可以进一步提高分割的准确性,特别是在处理细节和边缘部分时效果更为明显。 总的来说,DeepLab模型是一种高效、准确的语义分割模型,通过使用空洞卷积和条件随机场等技术,能够在保持高分辨率的同时实现高质量的分割结果。

全局池化(global pooling)是一种池化操作,通常用于卷积神经网络(CNN)中,用于将整个特征图转换为一个固定长度的向量或标量。与传统的局部池化不同,全局池化操作会考虑整个特征图的信息,而不是局部区域的信息。全局池化操作通常用于将卷积神经网络最后一层的特征图转换为固定长度的特征向量,以便进行分类或其他任务。通过全局池化操作,可以将特征图的空间信息转换为全局的特征表示,从而减少参数数量并提高模型的泛化能力。

3.全卷积网络 

  • convnet中的每一层输出是一个大小为h×w×d的三维数组,其中h和w是空间维度,d是特征或通道维度。第一层是图像,像素大小为h × w,有d个通道。更高层的位置对应于它们在图像中路径连接的位置,这些位置被称为它们的接受野。
  • 卷积神经网络是固有的平移不变量。它们的基本组件(卷积、池化和激活函数)在局部输入区域上操作,并且仅依赖于相对空间坐标。位置(i,j)的数据向量写入xij,在特定层中,在下一层中为yij,这些函数通过计算输出yij

        

k表示卷积核的大小,s表示步长或下采样因子,fks表示卷积核与输入特征图的卷积操作。{xsi+δi, sj+δj}0≤δi,δj<k表示卷积核在输入特征图上的滑动窗口,通过对窗口内的像素值进行加权求和,得到输出特征图yij中对应位置的像素值。 

  •  其中k称为核大小,s是步长或子采样因子,FKS决定层类型:卷积或平均池化的矩阵乘法,最大池化的空间Max,或激活函数的元素非线性,等等其他类型的层

 对于卷积层,fks表示卷积核与输入特征图的卷积操作;对于平均池化层,fks表示对输入特征图进行平均池化操作;对于最大池化层,fks表示对输入特征图进行最大池化操作;对于激活函数层,fks表示对输入特征图进行逐元素的非线性变换,例如ReLU、sigmoid等。 除了这些基本的层类型之外,卷积神经网络还可以包含其他类型的层,例如批归一化层、残差连接层等。这些层类型的选择和组合可以根据具体的任务和数据集进行调整和优化,以提高模型的性能和效果。

  • 这种函数形式在复合下保持不变,核大小和步长服从变换规律 :

 

在卷积神经网络中,卷积操作的核大小和步长是两个重要的超参数,它们决定了卷积操作的感受野和输出特征图的大小。

fks表示核大小为k、步长为s的卷积操作,gk′s′表示核大小为k′、步长为s′的卷积操作,f◦g表示将两个卷积操作组合起来的新的卷积操作,+表示两个卷积操作在输出特征图上的偏移量。 这个公式的意义是,如果我们将两个卷积操作组合起来,那么它们在输出特征图上的感受野就是两个卷积操作的感受野之和,即(f ◦ g)k′ + (k - 1)s′。这个感受野的大小决定了卷积操作能够捕捉到的输入特征图的局部信息的范围。 另外,这个公式还说明了,如果我们改变卷积操作的核大小和步长,那么它们在输出特征图上的偏移量也会相应地改变。这个偏移量的变化会影响输出特征图的大小和形状,从而对后续的网络结构和任务产生影响。

  • 一般的神经网络可以计算任意的非线性函数,因为它包含了各种类型的层,如全连接层、卷积层、池化层和激活函数层等,这些层可以组合成任意复杂的非线性函数。而只包含特定类型层的神经网络,比如只包含卷积层、池化层和激活函数层的网络,可以被看作是在计算一种特定的非线性滤波器,这种网络被称为深度滤波器或全卷积网络。FCN自然地在任何大小的输入上运行,并产生相应(可能重新采样)空间维度的输出。
  • 一个由FCN组成的实值损失函数定义了一个任务。如果损失函数是最后一层空间维度的和,l\left ( x;\theta \right )=\sum _{ij}l'\left ( x_{ij};\theta \right ),其参数梯度将是其每个空间分量的参数梯度的总和。因此,在整个图像上计算的l上的随机梯度下降将与l'上的随机梯度下降相同,将所有的最后一层接受场作为一个minibatch。
  • 当这些接受域明显重叠时,在整个图像上逐层计算前馈计算和反向传播都要比逐块独立计算有效得多。

当接受域之间存在重叠时,整个图像上的前向传播和反向传播计算可以利用重叠部分的信息,从而减少重复计算和提高计算效率。相比之下,如果在独立块上逐块计算,可能会导致重复计算相邻块之间的重叠部分,增加计算负担并降低效率。因此,通过在整个图像上逐层计算前向传播和反向传播,可以更有效地利用重叠信息,提高计算效率并加速网络的训练过程。

逐块独立计算也可能导致一些问题,特别是在处理具有重叠区域的数据时。因为在处理重叠区域时,逐块独立计算会导致重复计算,从而降低计算效率。相比之下,整个图像逐层计算的前向传播和反向传播计算可以更加高效,因为重叠的感受野可以共享计算,减少了重复计算的部分。 

  •  接下来,我们将解释如何将分类网络转换为产生粗输出映射的全卷积网络。对于像素预测,我们需要将这些粗输出连接回像素。第3.2节描述了用于此目的的技巧(例如,通过“快速扫描”[45])。我们从网络修改的角度来解释这个技巧。作为一种高效的替代方案,我们在3.3节中进行上采样,重用卷积的实现。在第3.4节中,我们考虑通过patchwise sampling进行训练,并在第4.4节中给出证据,证明我们的整个图像训练速度更快,同样有效。

图一:全卷积网络可以有效地学习对每像素任务(如语义分割)进行密集预测。

图二: 将完全连接层转换为卷积层使分类网络能够输出空间地图。添加可微分插值层和空间损失(如图1所示)可以生成端到端像素学习的高效机器。

3.1 Adapting classifiers for dense prediction

  • 典型的识别网络,包括LeNet [21], AlexNet[1],及其更深层的后续网络[2],[3],表面上采用固定大小的输入,并产生非空间输出。这些网的完全连接层具有固定的尺寸,并且抛弃了空间坐标。然而,完全连接的层也可以被视为卷积,其核覆盖了整个输入区域。这样做就把这些网络变成了完全卷积的网络,可以接受任何大小的输入,并生成空间输出图。此转换如图2所示。

在深度学习中,全连接层是指神经网络中的一种层,其中每个神经元都与前一层的所有神经元相连。全连接层通常用于分类任务,其输出是一个固定大小的向量,而不是一个空间特征图。 然而,全连接层也可以被视为卷积层,其卷积核覆盖整个输入区域。通过这种方式,可以将全连接网络转换为全卷积网络,使其能够接受任意大小的输入,并生成空间输出特征图。这种转换可以通过将全连接层的权重重塑为卷积核的形式来实现,从而将全连接层转换为卷积层。这样,全卷积网络就可以接受任意大小的输入,并生成与输入大小相同的空间输出特征图,从而可以用于像语义分割这样的空间密集预测任务。 

"非空间输出"指的是神经网络在处理数据时生成的输出,其中不涉及空间维度的信息。在深度学习中,输出可以包含空间信息(例如图像的像素位置)和非空间信息(例如类别标签、概率分布等)。举例来说,对于图像分类任务,神经网络的输出通常是一个向量,每个元素对应一个类别的概率。在这种情况下,向量的维度是非空间的,因为它不包含关于图像的空间信息,而是包含了关于类别的信息。

  •  此外,虽然生成的映射相当于对特定输入块的原始网络的评估,但计算在这些块的重叠区域上是高度平摊的。例如,AlexNet需要1.2 ms(在典型的GPU上)来推断227 × 227图像的分类分数,而全卷积网络需要22 ms才能从500 × 500图像中产生10 × 10的输出网格,这比naive approach快5倍以上
  • 这些卷积化模型的空间输出映射使它们成为语义分割等密集问题的自然选择。由于每个输出单元都有真实值,因此向前和向后传递都很简单,并且都利用了卷积固有的计算效率(和积极的优化)。AlexNet示例对应的反向时间为单张图像2.4 ms,全卷积10 × 10输出映射为37 ms,导致类似于正向传递的加速
  • 虽然我们将分类网络重新解释为完全卷积的,可以为任何大小的输入产生输出映射,但输出维度通常通过子采样来减少。分类网的子样本保持滤波器小,计算要求合理。这将使这些网络的完全卷积版本的输出变得粗糙,将其从输入的大小减少一个等于输出单元的接受域的像素步幅的因子。

通过下采样,网络输出的空间维度会减小,这样可以减少计算量,使得网络的计算要求更加合理。 

卷积神经网络的空间输出映射使它们成为解决语义分割等密集问题的自然选择。这意味着网络可以为输入图像的每个像素生成对应的输出,而不仅仅是为整个图像生成一个单一的输出值。这种输出映射包含了对每个像素的真实值,因此在进行前向传播和反向传播时都变得相对简单,并且可以利用卷积操作的计算效率和优化。

输出单元的接受域的像素步幅”是指在FCN中,输出单元格的接受域(receptive field)在像素级别上的步幅。这个步幅决定了输出映射的空间分辨率,即输出映射中相邻单元格之间的距离。通过调整接受域的像素步幅,可以控制输出映射的空间细节程度和尺寸。

3.2 Shift-and-stitch is filter dilation 

  • 密集预测可以通过将输入的移位版本的输出拼接在一起,从粗输出中获得。如果输出被下采样f倍,将输入x像素右移,y像素下移,每(x;Y)使得0≤x;y < f.处理这f ^2个输入中的每一个,并交错输出,以便预测对应于它们的接受域中心的像素。

 可以通过将输入图像的不同位置进行平移,然后将这些平移后的图像的输出结果拼接在一起,从而得到密集的预测结果。这种方法可以从粗糙的输出中获得密集的预测结果,因为在输入图像的不同位置进行平移可以使得网络对输入图像的不同部分进行处理,从而得到更加全面的预测结果。这种方法在全卷积网络中被广泛应用于语义分割等密集预测任务中。

如果输出被下采样了一个因子f,那么对于输入,将其向右平移x个像素,向下平移y个像素,其中x和y的取值范围是0到f之间的整数。对于每一个这样的(x, y)组合,都对输入进行处理,然后将输出交错在一起,以使得预测结果对应于它们感受野中心的像素。换句话说,通过对输入进行平移和处理,可以得到多个输出,然后将这些输出交错在一起,以获得更加密集的预测结果,使得预测结果与它们感受野中心的像素相对应。

  •  虽然这种转换na¨ıvely增加了f^2的成本,但有一个众所周知的技巧可以有效地产生相同的结果[4],[45]。(此技巧也用于小波变换的算法[46],[47],并与信号处理中的Noble恒等式[48]有关

这段话指出了一种称为“shift-and-stitch”的技巧,它可以在不增加计算成本的情况下,实现对输入图像进行平移操作。具体来说,这种技巧通过对输入图像进行平移操作,然后对每个平移后的输入图像进行卷积操作,最后将卷积结果进行插值,得到最终的密集预测结果。虽然这种方法看起来会增加计算成本,但实际上可以通过一种称为“filter dilation”的技巧来实现计算效率的提高。这种技巧可以使得卷积操作的计算量不变,同时实现对输入图像的平移操作,从而得到密集的预测结果。这种技巧在信号处理和小波变换等领域中也有应用。 

  •  考虑一个输入步长为s的层(卷积或池化),以及一个过滤器权重为fij的后续卷积层(省略不相关的特征维度)。将前一层的输入步幅设置为1,对其输出进行s倍的上采样。然而,将原始滤波器与上采样输出进行卷积不会产生与shift-and-stitch相同的结果,因为原始滤波器只看到其(现在上采样)输入的减少部分。为了产生同样的结果,通过成形来扩大(或“稀化”)过滤器

  •  (I和j从零开始)。再现shift-and-stitch的完整网络的输出需要一层一层地重复这个滤波器放大,直到所有的子采样被移除。(在实践中,这可以通过处理上采样输入的下采样版本来有效地完成。)
  • 在网络中简单地减少子采样是一种权衡:过滤器可以看到更精细的信息,但接收域更小,计算时间更长。这种扩张技巧是另一种权衡:在不减少过滤器的接受场大小的情况下,输出更密集,但过滤器被禁止以比原始设计更精细的规模访问信息。

  • 虽然我们已经做了膨胀的初步实验,但我们没有在我们的模型中使用它。我们发现通过上采样学习,如下一节所述,是有效和高效的,特别是当与后面描述的跳跃层融合结合时。有关扩张的更多细节,请参阅[44]的扩张FCN。

对滤波器进行扩大是为了实现从粗糙输出获取密集预测的过程。当网络经过多次卷积和池化操作后,输出的特征图会逐渐减小,导致输出变得更加稀疏。为了保持输出的密集性,需要对滤波器进行扩大,以便在每一层都能够覆盖更广泛的输入数据区域。

通过对滤波器进行扩大,可以确保每个卷积核在卷积操作中能够看到更多的输入数据,从而获取更多的上下文信息和全局特征。这有助于提高网络在处理任务时的感知能力和特征提取能力,同时也有助于生成更加密集的预测结果。

 

3.3 Upsampling is (fractionally strided) convolution 

  • 另一种将粗输出连接到密集像素的方法是插值。例如,简单的双线性插值通过线性映射从最近的四个输入计算每个输出yij,该映射仅依赖于输入和输出单元的相对位置:

  •  式中f为上采样因子,f·g为小数部分。
  • 从某种意义上说,上采样因子为f的上采样操作可以看作是具有1/f的分数输入步幅的卷积操作。只要f是整数,就可以通过反向卷积来实现上采样,即通过颠倒典型的输入步幅卷积的前向和后向传播过程来实现上采样。因此,上采样是通过网络内部进行的,可以通过从像素级损失进行的反向传播来实现端到端的学习。
  • 根据它们在反卷积网络(特别是[19])中的使用,这些(卷积)层有时被称为反卷积层。注意,这种层中的卷积滤波器不需要固定(例如,双线性上采样),而是可以学习的。反卷积层和激活函数的堆栈甚至可以学习非线性上采样。
  • 在我们的实验中,我们发现网络内上采样对于学习密集预测是快速有效的。

3.4 Patchwise training is loss sampling 

  • 随机优化中的梯度计算以及对输入分布的影响。它指出,在随机优化中,梯度计算受训练分布的驱动。无论是分块训练还是完全卷积训练,都可以被设计成产生任意输入分布,尽管它们的相对计算效率取决于重叠和小批量大小。整个图像的完全卷积训练与每个批次包含图像(或图像集合)的所有输出单元的感受野的分块训练是相同的。虽然这比均匀采样的分块更有效,但它减少了可能的批次数量。然而,在图像内随机采样分块可以很容易地恢复。将损失限制为其空间项的随机抽样子集(或者等效地在输出和损失之间应用DropConnect掩码[49])会排除梯度中的分块。

 “等效地在输出和损失之间应用DropConnect掩码”意味着在计算损失时,可以将DropConnect掩码应用于输出和损失之间的连接,以达到与在损失函数中应用掩码相同的效果。DropConnect是一种正则化技术,它通过在训练期间以一定的概率将神经元的连接权重设置为零来减少过拟合。因此,将DropConnect掩码应用于输出和损失之间的连接可以排除一些连接,从而影响梯度的计算,进而影响网络的训练过程。这种方法可以用于控制网络的学习行为,以适应特定的训练分布或优化目标。

  • 如果保留的分块仍然存在显著的重叠,完全卷积计算仍然可以加速训练。如果梯度在多次反向传播中累积,批次可以包括来自多幅图像的分块。如果输入按照输出步幅的值进行了移位,即使输出单元位于固定的、有步幅的网格上,也可以随机选择所有可能的分块。 
  • 分块训练中的采样可以纠正类别不平衡[10],[11],[12],并减轻密集分块的空间相关性[13],[14]。在完全卷积训练中,可以通过加权损失来实现类别平衡,并且可以使用损失采样来解决空间相关性。
  • 我们在第4.4节中探讨了抽样训练,并没有发现它对密集预测产生更快或更好的收敛性。整体图像训练效果好,效率高。

4.分割架构 

  • 我们将ILSVRC分类器投射到fcn中,并通过网络内上采样和像素损失来增强它们进行密集预测。我们通过微调来训练分割。接下来,我们在层之间添加跳跃来融合粗糙的、语义的和局部的外观信息。这种跳过架构是端到端学习的,以改进输出的语义和空间精度。

  • 在这项研究中,我们在PASCAL VOC 2011分割挑战上进行训练和验证[50]。我们使用每个像素的softmax损失进行训练,并使用平均像素相交的标准度量进行验证,其中平均值涵盖所有类,包括背景。训练忽略了在ground truth中被掩盖(如模糊或困难)的像素

table1:本文对三种分类方法进行了改进和扩展。我们通过PASCAL VOC 2011验证集上的平均交并比和推理时间(在NVIDIA Titan X上对500×500输入进行20次试验取平均)来比较性能。我们详细介绍了适应网络的结构,包括密集预测:参数层的数量、输出单元的接受场大小和网络内的最粗步幅。(这些数字给出了在固定学习率下获得的最佳性能,而不是最佳性能。) 

 平均交并比(mean intersection over union)是一种用于评估图像分割性能的指标,它是预测分割结果与真实分割结果之间交集与并集的比值的平均值。推理时间是指模型对于一个输入数据进行前向计算得出输出结果所需的时间。在深度学习中,推理时间通常是评估模型性能的重要指标之一,因为它直接影响模型在实际应用中的实时性能。

4.1 从分类器到密集FCN 

  • 我们从卷积化第3节中已证明的分类体系结构开始。我们考虑了赢得ILSVRC12的AlexNet2架构[1],以及在ILSVRC14中表现异常出色的VGG网络[2]和GoogLeNet3[3]。我们选择了VGG 16层的net4,我们发现在这个任务中,它相当于19层的网络。对于GoogLeNet,我们只使用最终损失层,并通过丢弃最终平均池化层来提高性能。我们通过丢弃最后的分类器层来清除每个网络,并将所有完全连接的层转换为卷积。我们附加了一个通道维度为21的1 × 1卷积,以预测每个PASCAL类(包括背景)在每个粗输出位置的分数,然后是一个(向后)卷积层,将粗输出的双线性上采样到像素输出,如第3.3节所述。表1比较了初步验证结果以及每个网络的基本特征。我们报告了在固定学习率(至少175次)下收敛后获得的最佳结果。

  • 我们对这个比较的训练遵循了分类网络的实践。我们以SGD为动力进行训练。梯度累积超过20张图像。我们为FCN-AlexNet、FCN-VGG16和FCN-GoogLeNet分别设置了10−3、10−4和5−5的固定学习率,通过线性搜索选择。我们使用动量0.9,权重衰减为5−4或2−4,并且偏差的学习率加倍。我们零初始化类别得分层,因为随机初始化既不能带来更好的性能,也不能带来更快的收敛。Dropout包括在原始分类器网络中使用的地方(然而,没有它的训练几乎没有区别)。

  • 从分类到分割的微调可以从每个网络得到合理的预测。即使是最差的模型也达到了之前最佳性能的75%。FCNVGG16似乎已经优于以前的方法,平均IU值为56.0,而测试结果为52.6[14]。虽然VGG和GoogLeNet作为分类器的准确率相似,但我们的FCN-GoogLeNet与FCN-VGG16不匹配。我们选择FCN-VGG16作为我们的基础网络。

table2:基于梯度积累、在线学习和高动量“重”学习的图像到图像优化比较所有方法都在10万张图像的固定序列上进行训练(从8,498个数据集中采样),以控制随机性并均衡梯度计算的数量。损失没有归一化,因此无论批处理和图像尺寸如何,每个像素都具有相同的权重。在PASCAL VOC 2011 segval子集5的训练中获得的分数是最好的。FCN-VGG16的学习是端到端的。

  4.2 Image-to-image learning

  • 图像到图像学习设置包括高效批处理大小和相关输入。这种优化需要注意适当地调优fcn。
  • 我们先从损失说起。我们没有将损失归一化,因此无论批处理和图像尺寸如何,每个像素都具有相同的权重。因此,我们使用很小的学习率,因为损失是在空间上对所有像素求和的。
  • 我们考虑两种批次大小制度。首先,梯度累积在20张图像上。积累减少了所需的记忆,并通过重塑网络来尊重每个输入的不同维度。我们根据经验选择这个批大小是为了得到合理的收敛。以这种方式学习类似于标准分类训练:每个minibatch包含多个图像,并且具有不同的类标签分布。表1中比较的网络以这种方式进行了优化。
  • 然而,批处理并不是进行图像智能学习的唯一方法。在第二个方案中,批处理大小为1用于在线学习。经过适当的调整,在线学习在迭代次数和时钟时间上都达到了更高的精度和更快的收敛速度。此外,我们尝试了一个更高的动量0.99,它以类似于批处理的方式增加了最近梯度的权重。表2给出了累积、在线和高动量或“重”学习的比较(在第6.2节进一步讨论)。

动量(momentum)是一种优化算法,它可以加速模型的收敛速度并减少震荡。动量算法通过在梯度下降中引入一个历史梯度的指数加权平均来实现这一点。在这个过程中,动量参数控制历史梯度的权重,通常取值在0到1之间。因此,更高的动量值指的是在动量算法中使用更大的动量参数,这会使历史梯度的影响更加显著,从而加速模型的收敛速度。 

4.3 Combining what and where 

  • 我们定义了一个新的全卷积分割网络,它结合了特征层次结构的层,并改进了输出的空间精度。参见图3

  • 虽然如4.1节所示,经过微调的完全卷积分类器既能识别也能定位语义分割,但这些网络可以得到改进,直接使用更浅、更局部的特征。尽管这些基本网络在标准指标上得分很高,但它们的输出非常粗糙(见图4)。网络预测的跨步限制了上采样输出中的细节规模

  • 我们通过添加融合层输出的跳跃连接来解决这个问题,特别是在预测中包含更精细的较浅层。这将原本的线性拓扑结构转化为有向无环图(DAG),边从较浅的层跳到较深的层。从较浅的层中做出更多的局部预测是很自然的,因为它们的接受域更小,看到的像素更少。

图3:我们的DAG网络学习将粗糙的、高层的信息与精细的、低层的信息结合起来。池化层和预测层显示为网格,显示相对的空间粗糙度,而中间层显示为竖线。第一行(FCN-32s):我们的单流网络,在4.1节中描述,在一个步骤中将32步预测的样本提升回像素。第二行(fcn -16):结合最后一层和池4层的预测,在第16步,让我们的网络预测更精细的细节,同时保留高级语义信息。第三行(FCN-8s):在步长8处,来自池3的额外预测提供了进一步的精度。

在图中,从上到下分别是FCN-32s、FCN-16s和FCN-8s。这些网络通过上采样操作将预测结果还原到像素级别。FCN-32s是最基本的网络结构,它直接将最后一层的预测结果上采样到像素级别。FCN-16s和FCN-8s则引入了跳跃连接(skips),将浅层的预测结果与深层的预测结果进行融合,以提高预测的精度和细节。

  •  一旦增加了跳跃,网络就会从几个共同学习的端到端数据流中做出并融合预测。
  • 将精细层和粗糙层结合起来,可以让模型做出尊重全局结构的局部预测。这种层和分辨率的交叉是一种习得的、非线性的拉普拉斯金字塔的多尺度表示[26]。与Koenderick和van Doorn[27]的射流类似,我们将我们的特征层次称为深射流。
  • 层融合本质上是一个元素操作。然而,由于重采样和填充,各层元素的对应关系变得复杂。因此,一般来说,要融合的层必须通过缩放和裁剪来对齐。我们通过对低分辨率层进行上采样,使两层达到尺度一致,在网络中这样做,如第3.3节所述。裁剪去除上采样层的任何部分,该部分由于填充而超出了另一层。这导致层的等维精确对齐。裁剪区域的偏移量取决于所有中间层的重采样和填充参数。确定导致精确对应的裁剪可能是复杂的,但它会自动遵循网络定义(我们在Caffe中包含了它的代码)。

  • 在空间上对齐图层后,我们接下来选择一个融合操作。我们通过串联融合特征,并立即通过由1 × 1卷积组成的“分数层”进行分类。我们不是将连接的特征存储在内存中,而是交换连接和随后的分类(因为两者都是线性的)。因此,我们的跳过是这样实现的:首先对每一层进行1 × 1卷积融合评分,执行任何必要的插值和对齐,然后对评分进行求和。我们也考虑了最大融合,但发现由于梯度切换,学习起来很困难。当添加跳过时,分数层参数被零初始化,这样它们就不会干扰现有的其他流的预测。一旦所有的层都融合,最后的预测将被上采样回图像分辨率。

  • 我们定义了一个跳跃架构,将FCN-VGG16扩展为一个三流网络,如图3所示,其步长为8像素。从pool4添加一个跳过,通过从这个步幅16层计分,步幅减半。skip的2x插值层被初始化为双线性插值,但不固定,因此可以按照3.3节的描述进行学习。我们称这种两流网络为fcn -16,同样地,通过增加池3的进一步跳跃来定义fcn -8,以进行步长8的预测。(注意,在步幅8时进行预测并不能显著限制可达到的最大平均IU;参见6.3节。)

  • 我们试验分阶段训练和一次性训练。在分阶段的版本中,我们学习了单流fcn -32,然后升级到两流fcn -16继续学习,最后升级到三流fcn -8完成学习。在每个阶段,网络都是端到端学习的,用早期网络的参数初始化。从fcn -32到fcn -16的学习率下降了100倍,从fcn -16到fcn -8的学习率下降了100倍,我们发现这是继续改进的必要条件。

  • 一次性学习与分阶段学习的效果几乎相同,而训练更快,也不那么乏味。然而,不同的特征尺度使得na¨ıve训练容易出现分歧。为了解决这个问题,我们将每个流按固定常数进行缩放,以获得类似于分阶段学习率调整的网络内效应。这些常数被选择来近似地均衡跨流的平均特征规范。(其他规范化方案应该有类似的效果。)

  • fcn -16的验证分数提高到平均IU 65.0, fcn -8的验证分数略有提高,达到65.5。在这一点上,我们的融合改进已经遇到了递减收益,所以我们不再继续融合更浅的层。

图4:通过融合来自不同步长层的信息来改进全卷积网络,可以改善空间细节。前三幅图像显示了32、16和8像素步幅网的输出(参见图3) 

  • 为了确定跳跃的贡献,我们孤立地比较中间层的得分,这导致性能不佳,或者在不添加跳跃的情况下降低学习率,这在没有改进输出的视觉质量的情况下,得分的提高可以忽略不计。表3中报告了所有的跳过比较。图4显示了输出的逐渐细化的结构。 

 表3:fcn在PASCAL VOC 2011分割子集上的比较。学习是端到端的,批量大小为1,动量大,除了固定的变体,它修复了所有的特征。请注意,FCN-32s是FCN-VGG16,重命名以突出步幅,FCN-poolX是截断的网络,与FCN-32/16/8s具有相同的步幅

4.4 实验框架 

  • 我们通过整个网络的反向传播对所有层进行微调。如表3所示,单独对输出分类器进行微调只产生完整微调性能的73%。在单个GPU上进行阶段微调需要36个小时。一次性学习fcn -8只需要一半的时间就能达到相当的精度。从头开始训练会大大降低准确率
  • PASCAL VOC 2011分割训练集标注了1112张图像。Hariharan等人[52]收集了更大的8,498张PASCAL训练图像集的标签,用于训练之前最好的系统SDS[14]。该训练数据将FCN-32s的验证分数从57.7提高到63.6平均IU,并将FCNAlexNet分数从39.8提高到48.0平均IU
  • 对于将任何大小的图像分割成不相交的类,逐像素的、非标准化的softmax损失是一种自然的选择,所以我们用它来训练我们的网络。softmax操作会在不同类别之间引入竞争,并促进最有信心的预测结果,但这并不清楚是否必要或有帮助。为了进行比较,我们使用sigmoid交叉熵损失进行训练,并发现它可以得到类似的结果,即使它独立地对每个类别的预测结果进行归一化。

图5: 对整个图像进行训练与采样分块一样有效,但通过更有效地使用数据,可以更快地收敛(时钟时间)。左图显示了固定预期批大小时采样对收敛率的影响,而右图则显示了相对时钟时间的影响。

  • 正如第3.4节中所解释的,我们的整个图像训练将每个图像有效地分成一个规则的、重叠的大块patches网格。相比之下,之前的研究随机在整个数据集上采样patches[10],[11],[12],[13],[16],可能导致方差较大的批次,从而加速收敛[53]。我们通过以前所述的方式对损失进行空间采样来研究这种权衡,通过以概率1−p独立选择忽略每个最终层单元。为了避免改变有效的批处理大小,我们同时通过因子1/p增加每批的图像数量。请注意,由于卷积的高效性,对于足够大的p值(例如,根据第3.1节的数据,至少对于p > 0.2),这种形式的拒绝采样仍然比基于patches的训练更快。图5显示了这种采样方式对收敛的影响。我们发现,与整个图像训练相比,采样对于收敛速率没有显著影响,但由于需要考虑每批次更多的图像,却需要更多的时间。因此,在其他实验中,我们选择未经采样的整个图像训练。
  • 完全卷积训练可以通过加权或采样损失来平衡类。虽然我们的标签是轻度不平衡的(大约3=4是背景),我们发现类平衡是不必要的。
  • 密集预测通过网络内的反向卷积层将分数上采样到输入维度。最后一层反卷积权值固定为双线性插值,中间上采样层初始化为双线性插值,然后学习。这种简单的端到端方法既准确又快速。

  • 我们尝试通过随机镜像和“抖动”图像来增强训练数据,在每个方向上将它们翻译到32像素(预测的最粗略尺度)。这没有产生明显的改善。

5.结果 

  •  我们在语义分割和场景解析上测试了FCN,探索了PASCAL VOC、NYUDv2、SIFT Flow和PASCAL- context。虽然这些任务在历史上区分了对象和区域,但我们将两者统一视为像素预测。我们在这些数据集上评估了我们的FCN跳过架构,然后将其扩展到NYUDv2的多模态输入和SIFT流的语义和几何标签的多任务预测。

    所有实验都遵循第4节中确定的网络架构和优化设置。

  • 我们报告了来自常见语义分割和场景解析评估的指标,这些指标是像素精度和区域交叉联合(IU)的变化:

  • 式中nij为预测属于j类的第i类像素数,有ncl个不同的类,ti =\sum j nij为第i类的总像素数。

表4:我们的FCN相对于之前最好的PASCAL VOC 11/12测试结果有30%的提高,并且推理和学习速度更快。

表5:NYUDv2的结果。RGB- d是RGB和深度通道在输入端的早期融合。HHA是[15]的深度嵌入,表示水平视差、离地高度、局部地表法线与推断重力方向的夹角。RGB-HHA是联合训练的后期融合模型,将RGB和HHA预测结果进行了汇总。

表6:SIFT Flow6在语义(中)和几何(右)上的结果。Farabet是在类平衡或固有频率样本上训练的多尺度convnet。Pinheiro是多尺度、循环的convnet RCNN3(◦3)。几何的度量是像素精度。

表7:59类任务的PASCAL-Context结果。CFM是卷积特征掩蔽[60]和VGG网络的分段追踪。O2P是二阶池化方法[61],详见[62]的勘误表

  • PASCAL- context[62]提供了PASCAL VOC 2010的全场景注释。虽然有400多个类,但我们遵循[62]定义的59个类任务,选择最频繁的类。我们分别对训练集和值集进行训练和评估。在表7中,我们将此任务与之前的最佳结果进行比较。FCN-8s评分39.1,平均IU相对改善超过10%。 

图6:全卷积网络提高了PASCAL的性能。:左栏显示了我们最精确的网络FCN-8s的输出。第二张图显示了Hariharan等人之前的最佳方法的输出[14]。注意恢复的精细结构(第一行),分离紧密交互对象的能力(第二行),以及对闭塞器的鲁棒性(第三行)。第五行和第六行显示了失败的案例:该网络将船上的救生衣视为人,并将人的头发与狗混淆。

6.分析

我们研究了全卷积网络的学习和推理。掩蔽实验通过减少只输入前景、只输入背景或只输入形状来研究上下文和形状的作用。定义“空”背景模型检查了学习背景分类器进行语义分割的必要性。我们详细描述了动量和批大小之间的近似,以进一步调整整个图像学习。最后,我们测量给定输出分辨率的任务精度界限,以显示仍有许多需要改进的地方

6.1 关键

考虑到FCN的大接受域大小,很自然地想知道前景和背景像素在预测中的相对重要性。前景外观是否足以进行推断,或者上下文是否会影响输出?反过来说,网络能否仅通过类的形状和上下文来识别类呢?

为了探讨这些问题,我们对标准的PASCAL VOC分割挑战进行了掩码版本的实验。我们对在正常PASCAL上训练的网络输入进行了掩码,并在掩码的PASCAL上学习了新的网络。请参阅表8以获取掩码结果。

表8:前景、背景和形状线索的作用。所有分数都是联合度量的平均交集,不包括背景。架构和优化与FCN-32s(参考)的架构和优化是固定的,只有输入掩码不同。

6.2 Momentum and batch size 

在比较fcn的优化方案时,我们发现具有高动量的“重”在线学习在更少的挂钟时间内训练出更准确的模型(见第4.2节)。在这里,我们详细说明了动量和批量大小之间的关系,这激发了繁重的学习。

图7:在没有其他输入细节的情况下,fcn学会通过形状进行识别。从左到右:常规图像(未被网络看到),地面真值,输出,掩码输入。

通过将梯度累积计算的更新写成非递归和,我们将看到动量和批大小可以近似地交换,这建议了其他训练参数。设gt为小批量SGD在时刻t的动量所采取的步骤 

l(x;θ)为损失,例如x和参数θ, p < 1为动量,k为批大小,η为学习率。把这个递归式展开成几何系数的无穷和,我们有 

 6.3 Upper bounds on IU

即使在空间粗糙的语义预测下,fns在平均IU分割度量上也取得了良好的性能。为了更好地理解这个度量和这种方法的局限性,我们计算了在不同分辨率下预测性能的近似上限。我们通过对地面真实图像进行下采样,然后上采样以模拟具有特定下采样因子的最佳结果来实现这一点。

下表给出了各种下采样因素下PASCAL 2011值子集5的平均IU。

 像素完美的预测显然不是达到远高于最先进水平的平均IU的必要条件,相反,平均IU不是精细尺度精度的良好衡量标准。oracle和最先进的精度之间的差距表明,识别而不是分辨率是这个度量的瓶颈。

7.总结

全卷积网络是一类丰富的模型,可以解决许多像素级的任务。用于语义分割的fns通过传递预训练的分类器权重、融合不同的层表示以及在整个图像上进行端到端学习来显著提高准确率。端到端,像素到像素的操作同时简化并加速了学习和推理。本文的所有代码在Caffe中都是开源的,并且所有模型都可以在Caffe模型动物园中免费获得。进一步的工作已经证明了全卷积网络在各种图像到图像任务中的通用性。

补充:核心实验思想又不懂的可以看这篇文章,精炼易懂,赞!

论文学习-Fully Convolutional Networks for Semantic Segmentation - 知乎

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值