第七章:FCN——Fully Convolutional Networks for Semantic Segmentation

news/2024/7/2 23:21:28

0.摘要

        卷积神经网络是强大的视觉模型,能够产生特征的层级结构。我们展示了通过端到端、像素到像素的训练的卷积神经网络在语义分割方面超越了现有技术的最新成果。我们的关键发现是构建“全卷积”网络,它可以接受任意大小的输入并生成相应大小的输出,具有高效的推理和学习能力。我们定义并详细解释了全卷积网络的空间,解释了它们在空间密集预测任务中的应用,并与之前的模型进行了联系。我们将现代分类网络(AlexNet [19]、VGG net [31]和GoogLeNet [32])转化为全卷积网络,并通过微调 [4]将它们学到的表示迁移到分割任务中。然后,我们定义了一种新型的架构,将深层、粗糙层的语义信息与浅层、细节层的外观信息相结合,以产生准确而详细的分割结果。我们的全卷积网络在PASCAL VOC(2012年平均IU相对改进了20%,达到62.2%)、NYUDv2和SIFT Flow方面实现了最先进的分割效果,而推理时间仅需不到五分之一秒。

1.引言

        卷积网络正在推动识别领域的进展。卷积网络不仅在整个图像分类方面取得进步[19,31,32],还在具有结构化输出的局部任务上取得了进展。这些包括边界框物体检测的进展[29,12,17],部位和关键点预测[39,24],以及局部对应[24,9]。从粗糙到精细推理的自然下一步是在每个像素上做出预测。以往的方法已经使用卷积网络进行语义分割[27,2,8,28,16,14,11],其中每个像素被标记为其包围对象或区域的类别,但存在一些问题,本研究正是解决了这些问题。

        我们展示了一种全卷积网络(FCN),通过端到端的像素到像素的训练,在语义分割方面超越了现有技术,而无需进一步的机器学习方法。据我们所知,这是第一篇关于通过端到端的训练来进行像素级预测,并且从有监督的预训练开始的工作。现有网络的全卷积版本可以从任意大小的输入中预测出密集的输出。学习和推理都通过密集的前馈计算和反向传播在整个图像上进行。网络内的上采样层使得像素级别的预测和学习可以在具有子采样池化的网络中进行。这种方法在渐进和绝对效率上都是高效的,并且避免了其他方法中的复杂性。补丁式的训练是常见的[27,2,8,28,11],但缺乏全卷积训练的效率。我们的方法不使用预处理和后处理的复杂性,包括超像素[8,16]、建议[16,14]或通过随机场或局部分类器进行的后期细化[8,16]。我们的模型通过重新解释分类网络为全卷积网络,并从它们学到的表示中进行微调,将分类方面的最新成功应用于密集预测。相比之下,以前的工作采用了没有经过有监督预训练的小型卷积网络[8,28,27]。

        语义分割面临着语义和位置之间的内在张力:全局信息解决了“是什么”,而局部信息解决了“在哪里”。深度特征层次结构共同编码了位置和语义信息,形成了一个从局部到全局的金字塔。我们在第4.2节中定义了一种新颖的“跳跃”架构,将深层、粗糙的语义信息和浅层、细节的外观信息结合起来(见图3)。在下一节中,我们回顾了深度分类网络、FCN和最近使用卷积网络进行语义分割的方法。接下来的几节中,我们将解释FCN的设计和密集预测的权衡,介绍我们的架构中的网络内上采样和多层组合,并描述我们的实验框架。最后,我们展示了在PASCAL VOC 2011-2、NYUDv2和SIFT Flow上的最先进结果。

 图1. 完全卷积网络可以高效地学习对于像素级任务(如语义分割)进行密集预测。

2.相关工作

        我们的方法借鉴了深度网络在图像分类[19,31,32]和迁移学习[4,38]方面的最新成功。迁移学习首先在各种视觉识别任务[4,38]上得到了证明,然后在检测以及实例和语义分割方面,在混合建议分类器模型[12,16,14]上也得到了应用。我们现在重新设计和微调分类网络,以实现对语义分割的直接、密集预测。我们对FCN的空间进行了规划,并将之前的模型,包括历史上的和最近的模型,置于这个框架中。

        在我们的知识范围内,首次出现将卷积网络扩展到任意大小输入的想法是在Matan等人的研究中[25],他们将经典的LeNet [21]扩展为识别数字串。由于他们的网络仅限于一维输入字符串,Matan等人使用维特比解码来获得输出结果。Wolf和Platt [37]将卷积网络的输出扩展到邮政地址块四个角的二维检测得分图。这两个历史性的工作都完全基于卷积进行检测的推理和学习。Ning等人[27]定义了一个用于C.elegans组织的粗糙多类别分割的卷积网络,完全基于卷积进行推理。在当前的多层网络时代,完全卷积计算也被广泛应用。Sermanet等人的滑动窗口检测[29],Pinheiro和Collobert的语义分割[28],Eigen等人的图像恢复[5]都使用了完全卷积推理。完全卷积训练并不常见,但Tompson等人 [35]成功地使用完全卷积训练来学习端到端的部件检测器和姿态估计的空间模型,尽管他们并没有详细阐述或分析这种方法。另外,He等人[17]舍弃了分类网络中的非卷积部分,使其成为一个特征提取器。他们结合建议和空间金字塔池化,得到一个定位的、固定长度的特征用于分类。虽然快速有效,但这种混合模型无法进行端到端的学习。

        卷积网络进行密集预测 最近的一些研究将卷积网络应用于密集预测问题,包括Ning等人[27]、Farabet等人[8]和Pinheiro和Collobert[28]的语义分割;Ciresan等人[2]的电子显微镜边界预测;Ganin和Lempitsky[11]的混合神经网络/最近邻模型的自然图像边界预测;以及Eigen等人[5,6]的图像恢复和深度估计。这些方法的共同特点包括: - 限制容量和感受野的小型模型; - 基于补丁的训练[27,2,8,28,11]; - 通过超像素投影、随机场正则化、滤波或局部分类进行后处理[8,2,11]; - 输入偏移和输出交错用于密集输出[28,11],这是由OverFeat[29]引入的; - 多尺度金字塔处理[8,28,11]; - 饱和tanh非线性[8,5,28];以及 - 集成[2,11],而我们的方法不需要这个机制。然而,我们从FCN的角度研究了基于补丁的训练3.4和“平移和拼接”密集输出3.2。我们还讨论了网络内上采样3.3,其中Eigen等人[6]的完全连接预测是一种特殊情况。与这些现有方法不同,我们调整和扩展了深度分类架构,使用图像分类作为监督预训练,并通过完全卷积微调模型,从整个图像输入和整个图像的真值进行简单高效的学习。类似地,Hariharan等人[16]和Gupta等人[14]将深度分类网络调整为语义分割,但是在混合建议-分类器模型中进行。这些方法通过对检测、语义分割和实例分割的边界框和/或区域建议进行采样,对R-CNN系统[12]进行微调。这两种方法都不是端到端学习。它们在PASCAL VOC分割和NYUDv2分割方面取得了最先进的结果,因此我们在第5节直接将我们独立的端到端FCN与它们的语义分割结果进行比较。

3.卷积神经网络

        卷积神经网络中的每一层数据都是一个三维数组,大小为h × w × d,其中h和w是空间维度,d是特征或通道维度。第一层是图像,其像素大小为h × w,有d个颜色通道。较高层中的位置对应于它们与图像中连接的位置,这些位置被称为它们的感受野。卷积神经网络建立在平移不变性的基础上。它们的基本组件(卷积、池化和激活函数)在局部输入区域上操作,并且仅依赖于相对空间坐标。假设在特定层的位置(i,j)处的数据向量为xij,并且在后续层的位置(i,j)处的数据为yij,这些函数通过yij = fks(fxsi + δi,sj + δj)计算输出yij,其中k被称为卷积核大小,s是步幅或下采样因子,fks确定了层的类型:对于卷积或平均池化来说是矩阵乘法,对于最大池化来说是空间最大值,对于激活函数来说是逐元素的非线性函数,其他类型的层类似。

        激活函数等其他类型的层也遵循这种功能形式。在组合下,卷积核大小和步幅遵循变换规则fks ◦gk0s0 =(f ◦g)k0+(k−1)s0;ss0。虽然一般的深度网络计算一般的非线性函数,但只有采用这种形式的层的网络计算的是非线性滤波器,我们称之为深度滤波器或全卷积网络。全卷积网络自然地适用于任意大小的输入,并产生相应(可能经过重新采样)的空间维度的输出。与全卷积网络组合的实值损失函数定义了一个任务。如果损失函数是对最终层的空间维度求和,‘(x;θ)=Pij ‘0(xij;θ),其梯度将是每个空间组件梯度的总和。因此,在整个图像上计算的‘的随机梯度下降将与在‘0上的随机梯度下降相同,将最终层的感受野作为一个小批量。当这些感受野显著重叠时,无论是前向计算还是反向传播,在整个图像上逐层计算要比独立地逐块计算更高效。

        接下来,我们将解释如何将分类网络转换为产生粗糙输出图的全卷积网络。对于像素级预测,我们需要将这些粗糙输出连接回像素。在第3.2节中,我们描述了OverFeat [29]引入的一种用于此目的的技巧。通过重新解释这个技巧作为等效网络修改,我们可以获得洞察力。作为一种高效、有效的选择,我们在第3.3节中引入了反卷积层进行上采样。在第3.4节中,我们考虑通过块采样进行训练,并在第4.3节中提供证据表明我们的整个图像训练速度更快且同样有效。

 图2. 将全连接层转换为卷积层使得分类网络能够输出热图。通过添加层和空间损失(如图1所示),可以构建一个高效的端到端密集学习机制。

3.1 为密集预测调整分类器

        传统的识别网络,包括LeNet [21],AlexNet [19]及其更深的后继网络[31,32],通常接受固定大小的输入并产生非空间输出。这些网络的全连接层具有固定的维度,并丢弃了空间坐标。然而,这些全连接层也可以被视为覆盖其整个输入区域的卷积核。通过这样做,它们被转化为完全卷积网络,可以接受任意大小的输入并输出分类映射。这个转换在图2中有示例。(相反,非卷积网络,例如Le et al. [20]的网络,缺乏这种能力。)此外,虽然生成的映射与在特定输入补丁上评估原始网络的结果等效,但计算在这些补丁的重叠区域上高度分摊。例如,虽然AlexNet需要1.2毫秒(在典型的GPU上)来产生一个227×227图像的分类分数,但完全卷积版本只需要22毫秒,就可以从一个500×500图像产生一个10×10的输出网格,这比朴素方法快了超过5倍。

        这些卷积化模型的空间输出映射使它们成为密集问题(如语义分割)的自然选择。由于每个输出单元都有真实标签可用,因此前向和反向传递都很简单,并且都利用了卷积的固有计算效率(和积极的优化)。以AlexNet为例,相应的反向传递时间为单个图像为2.4毫秒,对于完全卷积的10×10输出映射为37毫秒,结果与前向传递类似的加速。这种密集的反向传播在图1中有示例。虽然将分类网络重新解释为完全卷积可以为任意大小的输入提供输出映射,但输出维度通常会通过子采样进行缩小。分类网络进行子采样以保持滤波器小和计算要求合理。这使得这些网络的完全卷积版本的输出变得粗糙,将其从输入的尺寸减小一个与输出单元接受域的像素跨度相等的因子。

3.2. 移位和拼接是滤波器稀疏化

        输入移位和输出交错是一种技巧,由OverFeat [29]引入,它可以在没有插值的情况下从粗糙的输出中产生密集的预测。如果输出被降采样了f倍,那么输入会通过左侧和顶部填充,向右移动x个像素,向下移动y个像素,对于(f0, f-1) x (f0, f-1)中的每一个值(x, y)进行一次。这些f^2个输入分别通过卷积网络,并且输出被交错,以使得预测对应于它们感受野中心的像素。仅改变卷积网络的滤波器和层跨度可以产生与此移位和拼接技巧相同的输出。考虑一个具有输入跨度s的层(卷积或池化),以及一个后续的卷积层,其滤波权重为fij(这里省略了特征维度,与本文无关)。将较低层的输入跨度设置为1可以将其输出上采样s倍,就像移位和拼接一样。然而,用原始滤波器与上采样输出进行卷积不会产生与这个技巧相同的结果,因为原始滤波器只能看到其(现在上采样的)输入的减少部分。为了复现这个技巧,通过将其扩大为fij0 = f0i/s, j/s if otherwise,对i和j同时除以s(其中i和j从零开始),稀疏化滤波器。复现这个技巧的完整网络输出需要逐层重复这个滤波器扩大的过程,直到所有的子采样都被移除。简单地减少网络中的子采样是一个权衡:滤波器可以看到更精细的信息,但感受野变小,计算时间更长。我们已经进行了关于移位和拼接的初步实验,但没有在我们的模型中使用它。我们发现通过上采样学习,如下一节所述,与后面描述的跳跃层融合相结合,更加有效和高效。

3.3. 上采样是反向跨步卷积

        另一种将粗糙的输出连接到密集像素的方法是插值。例如,简单的双线性插值通过线性映射从最近的四个输入计算每个输出yij,该线性映射仅取决于输入和输出单元之间的相对位置。从某种意义上说,因子为f的上采样是具有输入步幅1/f的卷积。只要f是整数,一种自然的上采样方法是使用输出步幅为f的反向卷积(有时称为反卷积)。这样的操作很容易实现,因为它只是将卷积的前向和反向传播过程颠倒。因此,通过从像素级损失进行反向传播,在网络中进行上采样以进行端到端学习。请注意,这样一层中的反卷积滤波器不需要固定(例如,双线性上采样),而可以进行学习。甚至可以通过一系列的反卷积层和激活函数来学习非线性上采样。在我们的实验中,我们发现网络内部的上采样对于学习密集预测是快速和有效的。我们最好的分割架构使用这些层来学习上采样,以进行精细的预测(请参见第4.2节)。

3.4. 分块训练是损失采样

        在随机优化中,梯度计算受训练分布的驱动。无论是分块训练还是完全卷积训练,都可以产生任何分布,尽管它们的相对计算效率取决于重叠和小批量大小。整个图像完全卷积训练与分块训练相同,其中每个批次包含图像(或图像集合)下的单位的所有接受域。虽然这比均匀采样补丁更高效,但它减少了可能的批次数量。然而,可以通过在图像内部随机选择补丁来简单地恢复。将损失限制为其空间项的随机采样子集(或者等效地在输出和损失之间应用DropConnect掩码[36])会从梯度计算中排除补丁。如果保留的补丁仍然具有显着的重叠,完全卷积计算仍然可以加速训练。如果梯度在多个反向传播中累积,则批次可以包含来自多个图像的补丁。补丁式训练中的采样可以纠正类别不平衡[27,8,2]并减轻密集补丁的空间相关性[28,16]。在完全卷积训练中,可以通过加权损失来实现类别平衡,并且可以使用损失采样来处理空间相关性。我们在第4.3节中探索了采样训练,并发现对于密集预测,它并没有带来更快或更好的收敛性。整个图像训练既有效又高效。

4 分割架构

        我们将ILSVRC分类器转换为FCN,并通过网络内部上采样和像素级损失进行密集预测的增强。我们通过微调来进行分割训练。接下来,我们构建了一种新颖的跳跃架构,将粗糙的语义信息和局部的外观信息相结合,以进一步提高预测结果的精度。对于这项研究,我们在PASCAL VOC 2011分割挑战赛[7]上进行训练和验证。我们使用每个像素的多项式逻辑损失进行训练,并使用平均像素交并比的标准度量进行验证,其中平均值是针对所有类别(包括背景)计算的。训练过程中忽略了在标准答案中被掩盖(视为模糊或困难)的像素。

4.1. 从分类器到密集FCN

        我们首先将经过验证的分类架构进行卷积化,如第3节所述。我们考虑了在ILSVRC12中获胜的AlexNet3架构[19],以及在ILSVRC14中表现出色的VGG网络[31]和GoogLeNet4 [32]。我们选择了VGG 16层网络[5],在这个任务中发现它与19层网络等效。对于GoogLeNet,我们仅使用最后的损失层,并通过丢弃最后的平均池化层来提高性能。我们通过丢弃最后的分类器层来截断每个网络,并将所有全连接层转换为卷积层。我们在每个粗糙输出位置添加了一个通道维度为21的1×1卷积,用于预测每个PASCAL类别(包括背景)的分数,然后是一个反卷积层,用于双线性上采样粗糙输出到像素密集输出,如第3.3节所述。表1比较了初步的验证结果以及每个网络的基本特征。我们报告了在固定学习率(至少175个epoch)下收敛后达到的最佳结果。从分类到分割的微调为每个网络提供了合理的预测结果。即使是最差的模型也达到了与最先进性能的约75%。在验证集上,配备分割的VGG网络(FCN-VGG16)似乎已经达到了最先进的水平,平均IU为56.0,而测试集上为52.6 [16]。使用额外数据进行训练将性能提高到了验证集子集的平均IU为59.4。训练细节在第4.3节中给出。尽管分类准确率相似,我们的GoogLeNet实现并没有达到这个分割结果。

4.2 结合“什么”和“在哪里”

        我们定义了一个新的全卷积网络(FCN)用于分割,它结合了特征层次结构的层,并改进了输出的空间精度。见图3。虽然完全卷积化的分类器可以像4.1节所示的那样微调到分割任务上,并且在标准指标上得分很高,但它们的输出粗糙(见图4)。最终预测层的32像素步长限制了上采样输出中的细节规模。为了解决这个问题,我们添加了连接,将最终预测层与步长更细的较低层结合起来。这将线状拓扑结构转化为有向无环图(DAG),其中的边从较低层跳到较高层(图3)。由于较细的尺度预测看到的像素较少,因此它们应该需要较少的层,所以从较浅的网络输出中生成它们是有意义的。通过结合细层和粗层,模型可以进行局部预测,同时尊重全局结构。类似于Florack等人的多尺度局部jet[10],我们将我们的非线性局部特征层次结构称为深度jet。

        首先,我们通过从16像素步长的层进行预测,将输出步长减半。我们在pool4之上添加一个1×1卷积层,生成额外的类别预测。我们将这个输出与在conv7(卷积化的fc7)上计算的预测融合在一起,步长为32,通过添加一个2×上采样层和两个预测值的和来实现(见图3)。我们将2×上采样初始化为双线性插值,但允许参数根据第3.3节中描述的方式进行学习。最后,将步长为16的预测结果上采样回到图像中。我们将这个网络称为FCN-16s。FCN-16s是端到端学习的,使用粗略网络的参数进行初始化,我们现在称之为FCN-32s。作用在pool4上的新参数被初始化为零,以确保网络以未修改的预测开始。学习率降低了100倍。学习这个跳跃网络将验证集上的性能提高了3.0个平均IU,达到62.4。图4显示了输出的细节结构改进。我们将这种融合与仅从pool4层学习(导致性能不佳)和仅减少学习率而不添加额外连接的情况进行了比较(结果是性能改进微不足道,而且没有改善输出的质量)。

        我们继续这种方式,通过将来自pool3的预测与来自pool4和conv7融合的预测的2×上采样进行融合,构建网络FCN-8s。我们获得了额外的轻微改进,平均IU提高到62.7,并发现输出的平滑性和细节有轻微改善。到这一点,我们的融合改进已经达到了递减的回报,无论是在强调大规模正确性的IU指标上,还是在例如图4中可见的改进方面,因此我们不会继续融合更低层次的网络。

        通过其他方式进行改进 降低池化层的步长是获得更精细预测的最直接的方法。然而,对于基于VGG16的网络来说,这样做是有问题的。将pool5层的步长设置为1要求我们的卷积化的fc6具有14×14的核大小,以保持其感受野大小。除了计算成本之外,我们在学习如此大的滤波器方面遇到了困难。我们尝试用较小的滤波器重新设计pool5上面的层,但未能实现可比性能;一个可能的解释是来自上层的ImageNet训练权重的初始化是重要的。获得更精细预测的另一种方法是使用第3.2节中描述的shift-and-stitch技巧。在有限的实验中,我们发现这种方法的成本和改进的比例比层融合差。

表1.我们将三个分类卷积神经网络进行了适应和扩展,用于分割任务。我们通过在PASCAL VOC 2011验证集上的平均交并比和推理时间(在NVIDIA Tesla K40c上对500×500输入进行20次试验取平均)来比较性能。我们详细描述了适应的网络在密集预测方面的架构:参数层数,输出单元的感受野大小以及网络中最粗糙的步长。(这些数字表示在固定学习率下获得的最佳性能,而不是可能的最佳性能。)

 

图4.通过融合具有不同步长的层的信息,可以改善完全卷积网络的分割细节。前三个图像显示了我们32、16和8像素步长网络(参见图3)的输出。

表2.对PASCAL VOC2011验证集的部分进行了skip FCN的比较。学习是端到端的,除了FCN-32s-fixed,只有最后一层进行微调。请注意,FCN-32s是FCN-VGG16的重命名,以突出步长。

 

4.3 实验框架

优化 我们使用带有动量的随机梯度下降(SGD)进行训练。我们使用20个图像的小批量大小,并分别选择了FCN-AlexNet、FCN-VGG16和FCN-GoogLeNet的固定学习率为10^-3、10^-4和5^-5,通过线搜索选择。我们使用动量0.9,权重衰减为5^-4或2^-4,并将偏置的学习率加倍,尽管我们发现训练对这些参数不敏感(但对学习率敏感)。我们将类别评分卷积层初始化为零,并发现随机初始化既不会提供更好的性能,也不会加快收敛速度。在原始分类器网络中使用了Dropout。

微调 我们通过整个网络进行反向传播来微调所有层。仅微调输出分类器相比于表2中的全面微调性能仅达到70%。考虑到学习基础分类网络所需的时间,从头开始训练是不可行的。(请注意,VGG网络是分阶段训练的,而我们是从完整的16层版本进行初始化。)微调粗略的FCN-32s版本需要单个GPU三天时间,升级到FCN-16s和FCN-8s版本各需要大约一天的时间。

补丁采样 如3.4节所解释的,我们的全图像训练将每张图像有效地分成一个规则的网格,其中包含大量重叠的补丁。相比之下,之前的工作在整个数据集上随机采样补丁[27,2,8,28,11],可能导致方差更大的批次,从而加速收敛[22]。我们通过按照之前描述的方式对损失进行空间采样来研究这种权衡,独立地选择以概率1-p忽略每个最终层单元。为了避免改变有效的批次大小,我们同时通过因子1/p增加每批图像的数量。请注意,由于卷积的效率,对于足够大的p值(例如,根据第3.1节的数据,至少对于p>0.2),这种拒绝采样的形式仍然比逐个补丁训练更快。图5显示了这种采样方式对收敛的影响。我们发现,与整个图像训练相比,采样对收敛速度没有显著影响,但需要更多时间,因为需要考虑的图像数量更多。因此,在我们的其他实验中,我们选择了未经采样的整个图像训练方法。

类别平衡 完全卷积训练可以通过加权或采样损失来平衡类别。尽管我们的标签略微不平衡(大约3/4是背景),但我们发现类别平衡是不必要的。

密集预测 分数通过网络中的反卷积层进行上采样,以匹配输入维度。最终层的反卷积滤波器固定为双线性插值,而中间的上采样层则初始化为双线性上采样,然后进行学习。不使用Shift-and-stitch(第3.2节)或等效的滤波器稀疏化方法。

数据增强 我们尝试通过随机镜像和“抖动”图像来增强训练数据,通过在每个方向上将它们平移最多32个像素(最粗糙的预测尺度)。然而,这并没有带来明显的改进。

更多训练数据 我们在表1中使用的PASCAL VOC 2011分割挑战训练集共有1112个图像的标签。Hariharan等人[15]收集了一个更大的数据集,包含8498个PASCAL训练图像的标签,该数据集被用于训练之前的最先进系统SDS [16]。这个训练数据将FCN VGG16的验证分数提高了3.4个点,达到了59.4的平均IU。

实现 所有模型都是在单个NVIDIA Tesla K40c上使用Caffe [18]进行训练和测试的。模型和代码将在发表时以开源形式发布。

图3.我们的DAG网络学习将粗糙的高层信息与细节的低层信息相结合。层以显示相对空间粗糙度的网格形式呈现。仅显示池化和预测层;省略了中间的卷积层(包括我们转换的全连接层)。实线(FCN-32s):我们的单流网络,如第4.1节所述,将步长32的预测结果一步上采样回像素。虚线(FCN-16s):在步长16处,将来自最终层和pool4层的预测结果结合起来,使我们的网络能够预测更精细的细节,同时保留高级语义信息。虚线(FCN-8s):在步长8处,来自pool3的额外预测结果提供进一步的精度。

 图5.对整个图像进行训练与对图像块进行采样具有同样的效果,但通过更有效地利用数据,可以更快地(墙时)收敛。左侧显示了对于固定的预期批量大小,采样对收敛速率的影响,而右侧则绘制了相对墙时的相同效果。

5.结果

        我们在语义分割和场景解析方面对我们的FCN进行了测试,探索了PASCAL VOC、NYUDv2和SIFT Flow数据集。尽管这些任务在历史上区分了对象和区域,但我们将它们都统一视为像素预测。我们对每个数据集都评估了我们的FCN skip架构,并将其扩展为NYUDv2的多模态输入和SIFT Flow的语义和几何标签的多任务预测。

        我们报告了常见的语义分割和场景解析评估中的四个指标,这些指标是像素准确度和区域交并比的变体。设nij是预测为属于类别j的类别i的像素数量,其中有ncl个不同的类别,设ti =Pj nij是类别i的像素总数。我们计算如下指标:

 PASCAL VOC表3展示了我们的FCN-8s在PASCAL VOC 2011和2012的测试集上的性能,并将其与之前的最先进方法SDS [16]和著名的R-CNN [12]进行了比较。我们在平均IU9上相对较好的结果,相对优势达到了20%。推断时间缩短了114倍(仅考虑卷积网络,忽略提议和细化),或者286倍(总体上)。

表3.我们的完全卷积网络在PASCAL VOC 2011和2012的测试集上相对于最先进方法有20%的相对改进,并且减少了推断时间。

         NYUDv2 [30]是使用微软Kinect收集的RGB-D数据集。它包含1449张RGB-D图像,并由Gupta等人将像素级标签合并成了一个包含40个类别的语义分割任务[13]。我们在标准数据集中报告了795个训练图像和654个测试图像的结果(注意:所有模型选择都是在PASCAL 2011验证集上进行的)。表4展示了我们的模型在几种不同方式下的性能。首先,我们训练了未经修改的粗略模型(FCN-32s)在RGB图像上。为了添加深度信息,我们对升级为接收四通道RGB-D输入的模型进行训练(早期融合)。然而这几乎没有什么效益,可能是因为难以将有意义的梯度传播到整个模型。在Gupta等人[14]的成功之后,我们尝试使用深度的三维HHA编码,仅在该信息上训练网络,以及RGB和HHA的“后期融合”,其中两个网络的预测在最后一层进行求和,并且学习得到的两个流网络是端到端的。最后,我们将这个后期融合网络升级为16步长版本。

        SIFT Flow是一个包含2688张图像的数据集,其中包含33个语义类别(如“桥梁”,“山”,“太阳”)的像素标签,以及三个几何类别(“水平”,“垂直”,“天空”)。FCN可以自然地学习一个共同的表示,同时预测这两种类型的标签。我们使用具有语义和几何预测层和损失函数的两头式版本的FCN-16s进行学习。所学习的模型在两个任务上的表现与两个独立训练的模型一样好,而学习和推断的速度基本上与每个独立模型本身一样快。在标准的训练集和测试集划分为2488个训练图像和200个测试图像的情况下,表5显示了这两个任务的最先进表现。

表4.在NYUDv2上的结果。RGBD是RGB和深度通道在输入处进行早期融合。HHA是[14]中的深度嵌入,包括水平视差、离地高度和局部表面法线与推测重力方向的角度。RGB-HHA是联合训练的后期融合模型,将RGB和HHA的预测结果相加。

表5.在SIFT Flow上的结果,包括类别分割(中间)和几何分割(右侧)。Tighe [33]是一种非参数传输方法。Tighe 1是一个示例SVM,而2是SVM + MRF。Farabet是一个在类别平衡样本(1)或自然频率样本(2)上训练的多尺度卷积网络。Pinheiro是一个多尺度、循环卷积网络,被称为RCNN3(◦3)。几何的度量指标是像素准确率。

 

 图6.完全卷积的分割网络在PASCAL上产生了最先进的性能。左列显示了我们性能最好的网络FCN-8s的输出。第二列显示了先前最先进系统(由Hariharan等人[16])产生的分割结果。请注意恢复的细微结构(第一行),分离紧密交互对象的能力(第二行)以及对遮挡物的鲁棒性(第三行)。第四行展示了一个失败案例:网络将船上的救生衣误认为是人。

 6.结论

        全卷积网络是一类丰富的模型,其中现代分类卷积网络是其中的一个特例。认识到这一点,将这些分类网络扩展到分割任务,并通过多分辨率层的组合改进网络架构,可以显著提高最先进的性能,同时简化和加速学习和推断过程。

A. IU的上限

        在本文中,即使在粗糙的语义预测下,我们在平均IU分割指标上取得了良好的性能。为了更好地理解这个指标以及与之相关的方法的局限性,我们通过在不同尺度上进行预测,计算出性能的近似上限。我们通过对地面实况图像进行下采样,然后再进行上采样,以模拟在特定下采样因子下可获得的最佳结果。下表给出了在PASCAL 2011验证子集上,不同下采样因子下的平均IU值。

         显然,像素级别的完美预测并不是实现高于最先进水平的平均IU所必需的。相反,平均IU并不是对细粒度准确性的一个好的衡量指标。

B.更多的结果

        我们进一步评估了我们的全卷积网络在语义分割任务上的性能。PASCAL-Context [26]提供了PASCAL VOC 2010的整个场景注释。虽然有400多个不同的类别,但我们遵循[26]定义的59类任务,选择最常见的类别。我们分别在训练集和验证集上进行训练和评估。在表6中,我们将其与卷积特征遮蔽的对象+物体联合变种[3]进行了比较,该方法是该任务的先前最先进方法。FCN-8s的平均IU得分为35.1,相对提高了11%。

更新日志

        该论文的arXiv版本会随着更正和额外相关材料的更新而保持最新。以下是变更的简要历史记录。 v2:添加附录A,提供关于平均IU的上限,并添加附录B,列出PASCAL-Context的结果。修正了PASCAL验证集的数据(先前一些验证图像被包括在训练集中),修正了SIFT Flow的平均IU(使用了不合适严格的度量),以及频率加权平均IU公式中的错误。添加模型链接,并更新计时数据以反映改进的实现(该实现已公开可用)。

 


http://lihuaxi.xjx100.cn/news/1344026.html

相关文章

OSPF和VLAN综合实验

目录 题目 1.IP地址的规划设计 2.搭建拓扑并进行基础IP配置 3.配置虚拟局域网 1)按子网划分要求配置PC1和PC2 检测:输入[SW1]display vlan进行检查 配置路由器R3 检测:用PC1去访问PC2 2)配置拓扑中其余路由器的网关以及回…

RAID6故障导致分区打不开的服务器数据恢复案例

服务器数据恢复环境: 一台infortrend存储,有一组由12块硬盘组建的RAID6,RAID6的所有空间划分给一个LUN并映射到WINDOWS系统上,WINDOWS系统上划分了一个GPT分区。 服务器故障&分析: 存储无法访问,经过检…

MFC扩展库BCGControlBar Pro v33.5新版亮点 - 其他增强功能

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。 BCGControlBar专业版 v33.5已正式发布了,此版本包含了Ribbon(功能区)自定义…

websocket时事通讯和socket.io实时通信库的使用;心跳机制与断线重连

websocket https://zh.javascript.info/websocket WebSocket 是一种网络通信协议&#xff0c;就类似于 HTTP 也是一种通信协议。 为什么需要 WebSocket? 因为 HTTP 协议有一个缺陷&#xff1a;通信只能由客户端发起。 <script>// 创建ws实例&#xff0c;建立连接 …

Day23-正则表达式和BOM

文章目录 正则表达式1 正则表达式(RegExp)概念2 元字符案例1-基础用法案例2-正则模式案例3BOMwindow对象案例-演示window对象的方法内置对象locationhistory定时器和延时器定时器延时器清除定时器案例-时钟案例-倒计时案例-发送验证码正则表达式

使用MQTTX和前端vue进行通讯

需求&#xff1a;根据后端给的接口&#xff0c;前端实现消息订阅和消息加密连接操作&#xff0c;不走后端直接和硬件设备进行操作 1.下载mqttx 官网链接&#xff1a;MQTTX: Your All-in-one MQTT Client Toolbox 根据自己电脑选择不同的操作系统&#xff0c;默认下载后是英文…

【深度学习笔记】训练 / 验证 / 测试集

本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记&#xff0c;视频由网易云课堂与 deeplearning.ai 联合出品&#xff0c;主讲人是吴恩达 Andrew Ng 教授。感兴趣的网友可以观看网易云课堂的视频进行深入学习&#xff0c;视频的链接如下&#xff1a; 神经网络和…

键盘控制鼠标移动

记录一下&#xff0c; windows用autohotkeys ^up::MouseMove,0,-75,0,r ^up::MouseMove,0,-15,0,r ^down::MouseMove,0,75,0,r ^down::MouseMove,0,15,0,r ^left::mousemove,-75,0,0,r ^left::mousemove,-15,0,0,r ^right::mousemove,75,0,0,r ^right::mousemove,15,0,0,r ^s…