Fully Convolutional Networks for Semantic Segmentation论文翻译

Fully Convolutional Networks for Semantic Segmentation
用于语义分割的全卷积神经网络
卷积网络:
1)地位:目前语义分割中最先进的技术。
2)传统方法:使用像素周围的一个图像块作为CNN的输入用于训练和预测
3)优点:平移不变性,基本组件(卷积层、池化层和激活函数)作用于局部输入区域,并且只依赖于相对的空间坐标
4)缺点:存储开销很大;计算效率低下;限制了感受野的大小
全卷积网络:
1)思路:我们的核心观点是建立“全卷积”网络,它可以接受任意尺寸的输入,经过有效的推理和学习后,产生相应尺寸的输出
2)目的:使用深度学习解决图像分割问题
3)方法:
1.使用图像分类模型(如AlexNet VGGNet等pre-trained model)做迁移学习,从整个图像输入和整个图像金标准来简单而有效地学习。
2.使用反卷积结构做dense prediction
3.使用skip layer提高精度和鲁棒性。将深的粗的语义的信息和浅的精细的外观信息结合起来(参见图3)。
4)优点:
1.利用现有的Classification model进行finetuning
2.semantic:global information解决目标是什么的问题;location:local information解决目标在哪的问题
3.没有pre-或者post- process
4.任意的input size,输出相应size的output(而全连接层输入大小需要固定)不要求图片集中所有图片都是同样尺寸,只需在最后upsampling时按原图被subsampling的比例缩放回来,最后都会输出一张与原图大小一致的dense prediction map
5)存在问题:
1.本文是深度学习解决图像分割问题的开山之作,提出了一种新的思路,但 年代久远,效果一般
2.对细节不敏感,没有充分考虑像素之间的关系,缺乏空间一致性。
6)实验:
PASCAL VOC 2012测试集:平均IU为62.2%

摘要

卷积网络在特征分层领域是非常强大的视觉模型。我们证明了经过端到端、像素到像素训练的卷积网络,是目前语义分割中最先进的技术。我们的核心观点是建立“全卷积”网络,它可以接受任意尺寸的输入,经过有效的推理和学习后,产生相应尺寸的输出。我们定义并详细描述了全卷积网络的空间结构,解释了FCN在空间密集型预测任务(预测每个像素所属的类别)中的应用,并给出FCN与之前其他模型之间的联系。我们把当前的分类网络(AlexNet [19] ,the VGG net [31] , and GoogLeNet [32] )调整为完全卷积网络,之后通过迁移学习的方法进行微调,以此来完成所需要的分割任务。然后,我们定义了一种新的体系结构,它结合了语义信息(来自深的、粗糙层)和表征信息(来浅的、精细层的),从而产生精确而详细的分割。我们的全卷积网络是在PASCAL VOC(2012年平均IU为62.2%,提高了20%)、NYUDv2和SIFT Flow中的最先进的分割,而对于一个典型图像,推理时间不到五分之一秒。

1. 引言

卷积网络正在推动识别领域的进步。卷积网络不但改进了全图分类[19,31,32],而且在结构化输出的局部任务上也取得了进展。这些进展包括边框对象检测[29,12,17],部分和关键点预测[39,24],和局部通信[24,9]。
从粗推理到细推理的下一步自然是对每个像素进行预测。之前的方法使用了卷积神经网络来进行语义分割[27,2,8,28,16,14,11],其中每个像素都用其封闭对象或区域的类来标记,但是这种方法有其不足之处。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第1张图片
我们证明了一个全卷积网络(FCN),经过端到端,像素到像素的语义分割训练,在没有进一步调整机制的情况下超过了目前的水平。据我们所知,这是首个对FCNs进行端到端(1)像素预测训练和(2)监督预训练的工作。现有网络的全卷积版本可以预测任意大小输入的密集输出。学习和推理都是同时对整张图像进行密集前馈计算和反向传播来完成的。网络内的上采样层使得在带有下采样池的网络中进行像素级的预测和学习成为可能。
这种方法是有效的,渐进的和绝对的,并排除了在其他工作中复杂的需要。patchwise训练很常见[27,2,8,28,11],但是缺乏全卷积训练的效率。我们的方法没有利用复杂的预处理和后处理(包括超像素[8,16]、建议框[16,14])或随机字段/局部分类器的后期细化[8,16]。我们的模型将最近在分类方面的优势[19,31,32]运用到为密集型预测,方法是将分类网络重新解释为完全卷积的,并对它们学习到的表征表示进行微调。相比之下,以往的工作都是在没有监督的预训练下应用小型卷积神经网络[8,28,27]。
语义分割面临着语义和位置的内在张力问题:全局信息解决“是什么”,而局部信息解决“在哪里”。深层特征层次结构在局部-全局金字塔中联合编码位置和语义。我们在4.2节中定义了一种新的跳跃结构,将深的粗的语义的信息和浅的精细的外观信息结合起来(参见图3)。
在下一节中,我们将回顾关于深度分类网络、FCNs和使用卷积神经网络进行语义分割的最新方法的相关工作。以下部分将解释FCN设计和密集预测权衡,介绍我们的网络内上采样和多层组合架构,并描述我们的实验框架。最后,我们演示了PASCAL VOC 2011-2、NYUDv2和SIFT Flow的最新结果。

2. 相关工作

我们的方法借鉴了近年来深网在图像分类[19,31,32]和迁移学习[4,38]方面的成功经验。迁移首先在各种视觉识别任务上得到验证[4,38],然后在检测上得到验证,并在混合建议分类器模型中的实例和语义分割上得到验证[12,16,14]。我们现在重新搭建和微调分类网络,以直接、密集地预测语义分割。在这个框架中,我们绘制了FCNs的空间图,并定位了之前的模型,包括之前的和最近的。
全卷积网络: 据我们所知,将卷积网络扩展到任意大小的输入的想法最早出现在Matan等人的[25]中,他们扩展了经典的LeNet[21]来识别数字串。由于他们的网络仅限于一维输入字符串,Matan等人使用Viterbi解码来获得他们的输出。Wolf和Platt[37]将卷积输出扩展到postal address blocks的四个角的检测分数的二维映射。这两种网络都可以推理和学习用于检测的全卷积网络。Ning等人用全卷积推理定义了一个卷积神经网络,用于秀丽隐球菌组织的粗糙多类分割。
在当今的多层网络时代,全卷积计算也得到了广泛的应用。Sermanet et al.[29]的滑动窗口检测,Pinheiro和Collobert[28]的语义分割,Eigen et al.[5]的图像恢复都是完全卷积推理。全卷积训练很少见,但Tompson等人[35]有效地使用它来学习端到端的部分检测器和用于姿态估计的空间模型,尽管他们没有对这种方法进行说明或分析。
或者,He等人[17]放弃了分类网络的非卷积部分,从而制作了一个特征提取器。它们将proposals和空间金字塔池结合起来,产生一个局部化的、固定长度的分类特征。这种混合模型虽然快速有效,但不能端到端的学习。
卷积网络的密集预测: 最近的几项工作已经将卷积神经网络应用于密集预测问题,包括Ning等人的[27]、Farabet等人的[8]、Pinheiro和Collobert[28]的语义分割;Ciresan等人的电子显微镜和Ganin和Lempitsky的混合神经网络/最近邻模型的自然图像的边界预测;Eigen等人的图像恢复和深度估计[5,6]。以往的方法主要缺点:

  • 限制了容量和感受野的小模型
  • 分块训练[27,2,8,28,11]
  • 超像素投影的后处理、随机场正则化、滤波或局部分类[8,2,11]
  • OverFeat[29]提出的对与密集输出采用输入移位和输出交错[28,11]的方法
  • 多尺度金字塔处理
  • 饱和tanh非线性[8,5,28]
  • 集成[2,11]
    我们的方法没有这些缺点,然而我们从FCNs的角度在3.2节中研究了“shift-and-stitch”的密集输出问题 ,在3.4节中研究了基于块训练的问题。我们还讨论了网络内上采样 3.3,其中Eigen等人的全连通预测[6]是一个特例。
    与这些现有的方法不同的是,我们采用并扩展了深度分类体系结构,使用图像分类作为监督预训练,并微调全卷积,从整个图像输入和整个图像金标准来简单而有效地学习。
    Hariharan等人的[16]和Gupta等人的[14]也采用深度分类网络进行语义分割,但是用在混合的提议分类器模型中。这些方法通过采样边界框和/或区域建议来对R-CNN系统[12]进行微调,用于检测、语义分割和实例分割。这两种方法都不是端到端学习的。
    他们分别在PASCAL VOC分段和NYUDv2分割上取得了最先进的结果,因此我们直接将我们的独立端到端FCN与他们在第5节中的语义分割结果进行了比较。
    传统的基于CNN的分割方法:为了对一个像素分类,使用该像素周围的一个图像块作为CNN的输入用于训练和预测。这种方法有几个缺点:一是存储开销很大。例如对每个像素使用的图像块的大小为15x15,然后不断滑动窗口,每次滑动的窗口给CNN进行判别分类,因此则所需的存储空间根据滑动窗口的次数和大小急剧上升。二是计算效率低下。相邻的像素块基本上是重复的,针对每个像素块逐个计算卷积,这种计算也有很大程度上的重复。三是像素块大小的限制了感受野的大小。通常像素块的大小比整幅图像的大小小很多,只能提取一些局部的特征,从而导致分类的性能受到限制。

3. FCN

卷积网络中,每一层的数据都是三维的:h×w×d是空间维度,d是特征/通道的维度。第一层是图片,分辨率为h×w,d是颜色通道数。在较高层次的位置与其路径连接的图像位置对应,这被称为他们的感受野。
卷积神经网络是建立在平移不变性上的。它们的基本组件(卷积层、池化层和激活函数)作用于局部输入区域,并且只依赖于相对的空间坐标。设Xij为特定层中坐标(i,j)处的数据向量,Yij为下一层对应向量,那么X和Y的关系:
在这里插入图片描述
其中,k是卷积核,s是步长或采样因子。fks取决于层类型:用于卷积或平均池化的矩阵乘法,用于最大池化的空间最大值,或用于激活函数的非线性元素,诸如此类其他类型的层。
这种函数形式在复合情况下保持,其卷积核大小和步长服从转换规则(而一般的深度网络计算一般的非线性函数),只有这种形式的层组成的网络才会计算非线性滤波器,我们称之为深度滤波器或全卷积网络。自然地,FCN对任何大小的输入进行操作,并产生相应的(可能重新采样的)空间维度的输出。
由FCN组成的实值损失函数定义了一个任务。如果损失函数是最后一层空间维数的和,l(x;θ)=∑l‘(xij;θ),其梯度将是各个空间组件梯度的和。因此,在整个图像l上计算的随机梯度下降与在l’上计算的随机梯度下降是相同的,将所有最后一层感受野作为一个小批处理。
当这些感受野明显重叠时,前馈计算和反向传播在整个图像上逐层计算比单独逐块计算要块得多。
接下来,我们将解释如何将分类网络转换为生成粗糙输出映射的全卷积网络。对于像素级别的预测,我们需要将这些粗糙输出连接回像素。第3.2节描述了一个超越了overfeat[29]的技巧。通过将其重新解释为等效的网络修改,我们可以深入了解这个技巧。作为一种有效的替代方法,我们在3.3节中介绍了用于上采样的反卷积层。在第3.4节中,我们考虑了使用patchwise采样进行训练,并在第4.3节中证明了我们的整体图像训练是更快,同样有效的。

3.1为密集型预测调整分类器

典型的识别网络,包括LeNet[21]、AlexNet[19]及其更深层次的后继网络[31,32],表面上采用固定大小的输入并产生非空间输出。这些网的全连接层具有固定的维度和丢弃的空间坐标。但是,这些全连接层也可以看作是卷积核覆盖整个输入区域的卷积。这样做会将它们投入到全卷积的网络中,这些网络可以接受任意大小的输入并输出分类图。图2说明了这种转变。(相比之下,非卷积网络,如Le等人的[20],则缺乏这种能力)
Fully Convolutional Networks for Semantic Segmentation论文翻译_第2张图片
此外,虽然所得到的映射相当于原始网络对特定输入patch的求值,但计算的结果在这些patch的重叠区域上是高度平摊的。例如,AlexNet以1.2ms/image(227×227)的速度(在一个典型的GPU)算出分类得分,全卷积网络需要22ms从500×500的图像中产生10×10的网格输出,这比1快五倍多。
这些卷积模型的空间输出映射使它们成为诸如语义分割之类的密集型问题的自然选择。由于每个输出单元都有金标准可用,因此前向和后向传递都很简单,并且都利用了卷积固有的计算效率(以及高效的优化)。
以AlexNet为例,相应的反向时间是2.4 ms(对于单个图像),37 ms(对于完全卷积的10×10输出映射),这导致了与前向传递类似的加速。这种密集的反向传播如图1所示.
Fully Convolutional Networks for Semantic Segmentation论文翻译_第3张图片
虽然我们将分类网络重新解释为针对任何大小的输入的全卷积的输出映射,但是输出维度通常通过下采样来减少。分类网络通过下采样保持过滤器小和计算要求合理。这使这些网络的全卷积版本的输出变得粗糙,将其输入的大小减少一个因子,该因子等于输出单元的感受野的像素步长。

3.2 Shift-and-stitch is filter rarefaction

输入移位和输出交错是一种不需要插值就能从粗糙输出中得到密集预测的技巧,这是由overfeat[29]引入的。设原图与FCN所得输出图之间的降采样因子是f,那么对于原图的每个ff的区域(不重叠),“shift the input x pixels to the right and y pixels down for every (x,y) ,0 < x,y < f." 把这个ff区域对应的output作为此时区域中心点像素对应的output,这样就对每个f*f的区域得到了f^2个output,也就是每个像素都能对应一个output,所以成为了dense prediction。
只改变一个卷积神经网络的过滤器和层步长就可以产生与这种shift-and-stitch方法相同的输出。考虑一个具有输入步长s的层(卷积或池化层),然后是一个具有滤波器权值fij的卷积层(省略了特征维数,此处不相关)。其中s是subsampling的滑动步长,这个新filter的滑动步长要设为1,这样的话,subsampling就没有缩小图像尺寸,最后可以得到dense prediction。然而,将原始的滤波和上采样的输出卷积并没有产生和shift-and-stitch相同的结果,因为原始的滤波只看得到(已经上采样)输入的简化的部分。为了重现这种技巧,通过扩大来稀疏滤波,如下:
在这里插入图片描述
f能被i和j整除时(除非i和j都是0)。
重现该技巧的全网输出需要重复一层一层放大这个filter知道所有的下采样被移除。(在练习中,处理上采样输入的下采样版本可能会更高效。)
理解:i和j不能同时被s整除时,卷积核参数为0。
在一个网络中简单地减少下采样是一种折衷:过滤器可以看到更细节的信息,但是接受域会变的更小,计算时间更长。我们已经看到,shift-and-stitch技巧是另一种折衷:输出变得更密集而不减少过滤器的感受野大小,但过滤器无法获得比原始设计更精细的信息。
虽然我们已经通过shift-and-stitch做了初步实验,我们不我们的模型使用它。我们发现通过上采样学习,如下一节所述,是更有效和更块的,特别是当与后面描述的跳跃层融合相结合时。

3.3 Upsampling is backwards strided convolution

另一种连接粗糙输出和密集像素的方法是插值。例如,简单的双线性插值通过一个线性映射从最近的四个输入中计算每个输出yij,这个线性映射只依赖于输入和输出单元的相对位置。
从某种意义上说,带f因子的上采样就是步长为1/f的卷积。只要f是整数,一种自然的向上采样方法就是输出步长为f的反向卷积(有时称为反卷积)。这样的操作实现起来很简单,因为它只是简单地对卷积的前向和后向遍历进行反转。因此,在网络中进行上采样,通过像素级损失的反向传播进行端到端学习。
注意,在这样一个层的反卷积滤波器不需要固定(例如,双线性上采样),但可以被学习。一堆反卷积层和激活函数甚至可以学习非线性上采样。
在实验中,我们发现网络内上采样对于学习密集预测是快速而有效的。我们最好的分割架构使用这些层来学习上采样(4.2节中),以学习精确预测

3.4 patching训练是一种损失采样

在随机优化中,梯度计算是由训练分布支配的。patchwise 训练和全卷积训练都能被用来产生任意分布,尽管他们相对的计算效率依赖于重叠域和minibatch的大小。当每批包含图像丢失(或图像集合)下面单元的所有接受域时,整图训练和patchwise相等。当这种方式比patches的均匀取样更加高效的同时,它减少了可能的批次数量。然而在一张图片中随机选择patches可能更容易被恢复。限制基于它的空间位置随机取样子集产生的损失(或者可以说应用输出和loss之间的DropConnect mask [39] )排除来自梯度计算的patches。
如果保存下来的patches依然有重要的重叠,全卷积计算依然将加速训练。如果梯度在多反向路径中被积累,batches能包含几张图的patches。
相较于whole image,patch-wise有利于class-balancepatcheswise训练中的采样能纠正分类失调 [30,9,3] 和减轻密集空间相关性的影响,[31,17]。在全卷积训练中,分类平衡也能通过给损失赋权重实现,对损失采样能被用来标识空间相关。
我们研究了4.3节中的伴有采样的训练,没有发现对于dense prediction它有更快或是更好的收敛效果。全图式训练是有效且高效的。
理解:通常做语义分割的方法都是使用Patchwise训练,就是指将一张图片中的重要部分裁剪下来进行训练以避免整张照片直接进行训练所产生的信息冗余,这种方法有助于快速收敛。但是本文章提出直接使用整张图片也许可能使效果更好而Patchwise可能使信息受损(所以此节名为Patchwise training is loss sampling)。这里一个直觉得想法是一整张图像可能是有空间相关性的,那么Patchwise就减少了这种相关性

4. 分割结构

我们将ILSVRC分类器加入到FCNs中,并通过网络内上采样和像素级损失来增强它们的密集预测能力。我们通过微调来进行分割训练。接下来,我们构建了一个新的跳跃结构,它结合了粗糙、语义信息和局部,外观信息来细化预测。这种跨越式的结构可以端到端地学习来改进输出的语义和空间精度。
在这次调查中,我们用PASCAL VOC 2011年分割挑战进行了训练和验证[7]。我们使用逐像素多项式逻辑损失进行训练,并使用平均像素交并比的标准度量进行验证,包括背景在内的所有类的平均值。训练忽略了隐藏在金标准中的像素(模糊的或困难的)。

4.1 从分类器到密集FCN

我们将首先对经过验证的分类体系结构进行卷积,如第3节所示。我们考虑了AlexNet[19]架构(赢得ILSVRC12),以及在ILSVRC14中表现出色的VGG nets[31]和GoogLeNet4[32]。我们选择了VGG-16网络,我们发现它在这个任务中相当于VGG-19的网络。对于GoogLeNet,我们只使用最后的损失层,并通过丢弃最后的平均池化层来提高性能。我们通过丢弃最后的分类器层以失活每个网络,并将所有完全连接的层转换为卷积。我们在每个粗糙输出位置附加一个通道维数21的1×1卷积,以预测每个PASCAL类(包括背景)的得分,然后通过反卷积层将粗糙输出向上采样到像素密度输出,如3.3节所述。表1比较了初步的验证结果以及每个网络的基本特征。我们报告了以固定的学习速率(至少175个epoch)收敛后获得的最佳结果。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第4张图片
从分类到分割的微调为每个网络提供了合理的预测。即使是最差的模型,其性能也达到了最佳模型的75%。用于分割的VGG网络(FCN-VGG16)在验证集上已经达到了56.0的平均IU,而在测试集上是52.6。在val的一个子集上,对额外数据的训练可以将IU性能提高到平均59.4 。训练详情见第4.3节。
尽管分类精度相似,我们的GoogLeNet实现中的分割结果不佳

4.2 结合“what”和“where”

我们定义了一个新的全卷积网络(FCN)用于分割,它结合了特征层次结构的各层,并提高了输出的空间精度。参见图3。
充分卷积分类器可以微调用于分割,如4.1所示,即使是取得高分的标准度量,其输出结果很粗糙(参见图4)。最后预测层中,32像素的步长增加了上采样输出和细节丢失。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第5张图片
我们通过添加连接来解决这个问题,这些连接将最终的预测层与较低的层以及较小的步长结合在一起。
这就把一个线状的拓扑结构变成了一个DAG,它的边缘会从较低的层跳跃到较高的层(图3)。由于它们看到的像素更少,更精细的尺度预测应该需要更少的层,所以从较浅层的输出做出预测是有意义的。将精细层和粗糙层相结合,使模型能够根据全局结构进行局部预测。与Florack等人的多尺度局域射流相似,我们称我们的非线性局域特征层次为deep jet。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第6张图片
我们首先通过预测一个16像素的步幅层来将输出步长减半。我们在pool4上添加了一个1×1卷积层来产生额外的类预测。我们通过添加2个上采样层将这个输出与在stride 32上使用conv7 (卷积层 fc7)计算得到的预测结果融合在一起并将预测相加。(见图3)。我们将2个上采样初始化为双线性插值,但允许按照3.3节所述学习参数。最后,步长16预测被向上采样回图像。我们称之为FCN-16s。FCN-16s是端到端学习的,使用最后一个较粗的网络参数初始化,我们现在称之为FCN-32s。作用于pool4的新参数(1×1卷积)是零初始化的,因此网络将以未修改的预测开始。学习率比FCN-32s降低了100倍。
学习这个跳跃网络可以在验证集上将平均IU提高0.3,达到62.4。图4显示了精细结构输出的改进。我们将这种融合与只从pool4层进行学习(这导致了较差的性能)进行了比较,并在不添加额外链接的情况下简单地降低了学习速率(这导致了不显著的性能改进,但没有提高输出的质量)
我们继续以这种方式融合来自pool3的预测和来自pool4和conv7的预测的2个上采样,构建FCN-8s。我们得到了额外的提升,平均IU变为62.7,并且然后在输出的平滑度和细节上得到一个细微的改进。在这一点上,我们的融合改进已经满足了递减的回报,既包括强调大规模正确性的IU度量,也包括可见的改进,例如图4,因此我们不再继续融合更低的层。
其他细化方法: 降低池化层的步长是获得更精确预测的最直接方法。然而,这样做对于我们基于vgg-16的网络是有问题的。将pool5层stride设置为1需要我们的卷积化fc6的内核大小为14×14,以保持它的感受野的大小。除了它们的计算成本之外,我们在学习这么大的过滤器方面也有困难。我们尝试用更小的过滤器重新架构上面的pool5,但是没有成功地获得类似的性能;一种可能的解释是对于较上层,来自训练好的imagenet的训练权重的初始化很重要。
另一种获得更精确预测的方法是使用3.2节中描述的shift-and-stitch。在有限的实验中,我们发现这种方法的改进成本比层融合更高。

4.3 实验框架

优化: 我们通过带动量的SGD训练。对FCN-AlexNet、FCN-VGG16和FCN-GoogLeNet分别使用20张图像的小批量和10(-3)、10(-4)、10(-5)的固定学习率,通过行搜索选择。我们使用0.9的动量,5(-4)或2^(-4)的权重衰减,并将偏差的学习率提高了一倍,尽管我们发现训练对这些参数不敏感(但对学习率敏感)。我们零初始化类得分卷积层,发现随机初始化既不会产生更好的性能,也不会产生更快的收敛。Dropout沿用原来的分类网络的设置。
微调: 我们通过整个网络的反向传播对所有层进行微调。与表2相比,仅对输出分类器进行微调,只获得70%的完全微调性能。考虑到学习基本分类网络所需的时间,从零开始的训练是不可行的。(注意VGG网络是分阶段训练的,而我们是从完整的16层版本初始化的。)对于粗糙的FCN-32s版本,在一个GPU上进行微调需要三天,升级到FCN-16s和FCN-8s版本分别需要大约一天。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第7张图片
块采样: 如3.4节所述,我们的全图像训练有效地将每个图像批量处理成一个规则的网格,其中包含大量重叠的patch。相比之下,之前的工作是在完整的数据集上随机采样patch[27, 2, 8, 28, 11],这可能会导致更高的方差批,这可能会加速[22]的收敛。我们通过按前面描述的方式对损失进行空间采样来研究这种权衡,独立地选择忽略每一个最终的层单元,概率为1-p。为了避免更改有效batch大小,我们同时将每个批的图像数量增加1/p。注意,由于卷积的效率,对于足够大的p值(例如,根据3.1节中的数字,至少对于p > 0:2),这种形式的丢弃采样仍然比patch训练要快。图5显示了这种形式的抽样对收敛性的影响。我们发现,与整幅图像训练相比,采样对收敛速度没有显著的影响,但是由于每批需要考虑的图像数量较多,因此采样所需的时间要长得多。因此,在我们的其他实验中,我们选择未经采样的全图像训练。
左图:从一张图片中采样;右图:从整个训练集采样
Fully Convolutional Networks for Semantic Segmentation论文翻译_第8张图片
类平衡: 全卷积训练可以通过加权或采样损失来平衡类。虽然我们的标签是轻度不平衡的(大约3/4是背景),我们发现类平衡是不必要的。
密集型预测: 分数通过网络内的反卷积层向上采样到输入维度。最后一层反卷积滤波器固定为双线性插值,中间上采样层初始化为双线性上采样,然后学习。不使用shift -and - stitch(第3.2节)或过滤器稀疏等效
增强: 我们尝试通过随机镜像来增加训练数据,并通过在每个方向上将图像转换为32像素(最粗略的预测尺度)来抖动图像。这没有产生明显的改善
更多训练数据: PASCAL VOC 2011分割挑战训练集(表1),标注了1112张图片。Hariharan等人的[15]已经收集了一组更大的8498张带标签的PASCAL训练图像,这是用来训练以前的先进的系统,SDS[16]。这一训练数据将FCNVGG16的验证集得分提高了3.4分,达到59.4分的平均IU
实现: 所有的模型都在Caffe上训练和测试,显卡为单一的NVIDIA Tesla K40c。这些模型和代码将公开发布。

5. 结果

概述:
1.对比3种性能较好的几种CNN:AlexNet, VGG16, GoogLeNet进行实验,选择VGG16(表1)
2.对比FCN-32s-fixed, FCN-32s, FCN-16s, FCN-8s,证明最好的dense prediction组合是8s(表2)
3.FCN-8s和state-of-the-art对比是最优的,R-CNN, SDS. FCN-16s(表3)
4.FCN-16s和现有的一些工作对比,是最优的(表4/5)
5.FCN-32s和FCN-16s在RGB-D和HHA的图像数据集上,优于state-of-the-art(表4)
我们测试了我们的FCN在语义分割和场景解析,探索PASCAL VOC, NYUDv2,和SIFT流。虽然这些任务在历史上区分了对象和区域,但我们都把它们当作像素预测。我们在每个数据集上评估我们的FCN 跳跃架构,然后将其扩展到NYUDv2的多模态输入和SIFT流的语义和几何标签的多任务预测
指标: 我们报告了四个来自常见语义分割和场景解析评估的指标,它们是像素精度和区域交并比的变化。nij代表j类别被预测为i类别的像素数量,ncl代表类别数量,

ti为类别i总像素个数。计算如下:

  • pixel accuracy:正确的像素占总像素的比例
  • mean accuracy:每个类内被正确分类像素数的比例,之后求所有类的平均
  • mean IU:平均真实值和预测值的交并比
  • frequency weight IU:交并比平均到每个像素
    Fully Convolutional Networks for Semantic Segmentation论文翻译_第9张图片
    PASCAL VOC: 表3给出了我们的FCN-8s在2011年和2012年的PASCAL VOC测试集上的性能,并将其与之前最先进的SDS[16]和著名的R-CNN[12]进行了比较。在平均IU测试中,我们以20%的相对优势获得了最好的结果。推理时间减少114(仅包括convnet,忽略建议和细化)或286×(总体)

NYUDv2[30]是使用Microsoft Kinect收集的RGB-D数据集,它有1449张RGB-D图像,还有像素级的标签,古普塔等人将这些标签合并成一个40级的语义分割任务。我们报告了795张训练图像和654张测试图像的标准分割结果。(注:所有的模型选择都是在PASCAL 2011 验证集上进行的)表4给出了我们的模型在几个变量下的性能。首先,我们在RGB图像上训练未修改的粗模型(FCN-32s)。为了增加深度信息,我们在一个升级的模型上进行训练,以采用四通道RGB-D输入(早期融合)。这几乎没有什么好处,可能是由于在整个模型中传播有意义的梯度非常困难。根据Gupta等人[14]的成功经验,我们试着深度的三维HHA编码,训练网络只用这些信息,以及后期的融合RGB和HHA都是总结的预测在最后一层,以及由此产生two-stream是端到端的。最后,我们将这个最新的融合网络升级到16步版本。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第10张图片
SIFT Flow是一个包含2,688张图像的数据集,其中包含33个语义类别(桥、山、太阳)以及3个几何类别(水平、垂直和天空)的像素标签。FCN可以自然地学习一种联合表示,同时预测这两种类型的标签。我们学习了一个双头版本的FCN-16s与语义和几何预测层和损失。学习模型在两个任务上的表现都和两个独立训练的模型一样好,而学习和推理本质上和每个独立模型本身一样快。表5中的结果是按照标准划分为2,488个训练和200个测试图像的计算结果,显示了这两项任务的最优性能。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第11张图片
Fully Convolutional Networks for Semantic Segmentation论文翻译_第12张图片

6. 结论

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

A. Upper Bounds on IU

在本文中,我们在平均IU分割度量上取得了良好的性能,即使是粗糙语义预测。为了更好地理解这个指标和这种方法的局限性,我们计算了在不同尺度下预测性能的近似上界。我们通过对金标准图像进行下采样,然后再对其进行上采样,以模拟在特定下采样因子下可获得的最佳结果。下表给出了各种降采样因子下PASCAL 2011 验证集上的平均IU
Fully Convolutional Networks for Semantic Segmentation论文翻译_第13张图片
Pixel-perfect的预测显然没有必要达到平均IU远高于最先进的水平,相反,平均IU不是一个良好的精细尺度精度的度量

B. More Results

我们进一步评估我们的FCN的语义分割。
PASCAL- context[26]提供了PASCAL VOC 2010的整体场景注释。虽然有400多个不同的类,但我们遵循[26]定义的59个类任务,它们选自最频繁的类。分别对训练集和验证集进行训练和评价。在表6中,我们比较了联合对象+卷积特征掩膜[3]的stuff变化,这是这项任务上的最新技术。FCN-8s的平均IU评分为35.1,相对改善11%。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第14张图片

更新日记

arXiv版本的这篇论文是最新的更正和其他相关材料。下面简要介绍一下这些变化的历史
v2添加附录A,给出平均IU的上限和附录B的PASCAL-Context结果。改正PASCAL验证数数(以前,一些val图像包含在train中),SIFT向量平均值IU(使用了不恰当的严格度量),以及频率加权平均值IU公式中的一个错误。向模型添加链接,并更新时间编号,以反映改进的实现(这是公开提供的)。
Fully Convolutional Networks for Semantic Segmentation论文翻译_第15张图片

你可能感兴趣的:(论文阅读,深度学习,机器学习,神经网络)