Abstract
(1)卷积网络是生成多层次特征的强有力的视觉模型。我们证明卷积网络通过训练端到端,像素到像素,超过了语义分割当中最先进的技术。我们的主要目的是构建接受任意尺寸的输入并且通过有效的推理和预测的’全卷积‘网络。我们定义和详细的描述了全卷积网络的结构,解释了它在空间范围内的密集预测任务的应用,并且描绘了和先前模型的联系。我们改编现在的分类网络(AlexNet [19] ,the VGG net [31] , and GoogLeNet [32])为全卷积网络并且转移他们的学习性能到语义分割任务上。然后我们定义了一个将来自深层的,粗糙的语义信息和浅层的,精细的形状信息结合起来的新的架构来产生精确和详细的语义分割。我们的全卷积网络对于一张典型图片的预测时间不超过0.2秒,在PASCAL VOC,NYUDv2,和SIFT Flow 数据集上成为了最出色的分割方式(在2012年相对平均IU,62.2%提高了20%)。
1. 介绍
(1)卷积神经网络正在推动识别领域的发展。卷积网络不仅推动了全图分类 [19, 31, 32]的进去,而且在结构化输出的本地任务上取得了进展。包括目标检测边界框 [29, 12, 17] 、部分和关键点预测 [39,24]和局部一致(local correspondence) [24, 9]。
(2)从粗糙到精细的下一步自然是对每一个像素进行预测。早前的方法[27,2,8,28,16,14,11],通过将每一个像素标记为它封闭对象或区域的类别,已经将卷积神经网络用于语义分割,但是有很多缺点,我们的这项工作解决了这些缺点。
(3)我们证明全卷积网络训练端到端,像素到像素在语义分割任务上已经超越了的最先进的没有更进一步的技术。据我们所知。这是第一次用全卷积网络端到端训练像素级别预测和监督预训练的工作。全卷积让现有的网络从任意大小的输入来进行密集预测(dense prediction)。学习和推理通过密集前向计算和反向传播每次都在都整张图片上执行。网络内的上采样层让像素级预测成为可能,同时它们也可以在网络内通过下采样池化进行学习。
(4)这种方法非常高效,无论是渐进地还是完全地,并且解决了在其他方法当中的并发需求。Patchwise训练经常被使用来解决并发需求[27, 2, 8, 28, 11],但是它缺少了全卷积网络的高效性。我们的方法不是像超像素 [8,16],proposals[16,14]或者对通过随机域事后细化或者局部分类[8, 16]使用预处理和后处理的复杂性。我们的模型通过重新重新解释分类网络为全卷积网络和对他们的学习性能进行微调将最近的在分类领域的成功 [19, 31, 32],移植到密集预测任务上。与此相反,先前的工作都是在没有监督预训练的情况下应用小卷积网络[8, 28, 27]。
(5)语义分割在语义信息和位置信息上面临着一个与生俱来的问题:全局信息决定的是什么,局部信息决定的是在哪儿。深的层次连带地将位置和语义编码在一个局部到全局的金字塔里面。我们在4.2节(看图三)定义了一个新的‘跳跃’架构来合并深层的粗糙的语义信息和浅显精细的形状信息。
(6)在下一节,我们对深层分类网络,FCNs和最近的使用了卷积网络的语义分割方法进行了回顾。再下一节解释了FCN的设计和密集预测任务的折衷,介绍了我们的拥有网络内上采样和多层次结合的架构,并且描述了我们的实验框架。最后,我们展示了在PASCAL VOC 2011-2, NYUDv2, 和SIFT Flow数据集上最新的结果。
2. 相关工作
(1)我们的方法是基于最近在图像分类上取得成功的深度网络,并且进行了转移学习。转移学习首先在各种视觉识别任务上被证明,然后是检测任务,以及融合建议框分类的实例和语义分割模型上。我们现在重新构建和微调分类网络为直接,密集的语义分割网络。我们构建了FCNs的结构,并且将先前的模型,不仅是历史上的,还是最近的,都把他们放在了这个框架里面。
(2)全卷积网络据我们所知,第一次将卷积网络扩展到任意输入的是Matan等人[25],他们将经典的LeNet[21]网络扩展到识别字符串的位数。因为他们的网络限制在一维的输入字符串里面,Matan等人使用了译码器解码来获得他们的输出。Wolf和Platt[37]将卷积网络的输出扩展到检测邮政地址块的四角的得分的二维图。这些先前的工作都做的是推理和学习全卷积网络用于检测。Ning等人[27]用全卷积推理定义了一个用于秀丽线虫的粗糙的多分类分割卷积网络。
(3)全卷积计算也被用在现在的一些多层次网络结构当中。Sermanet等人的滑动窗口检测[29],Pinheiro和Collobert的语义分割[28],以及Eigen等人的图像修复[5]都做了全卷积推理。全卷积训练很少,但是被Yompson等人[35]用来学习端到端局部检测和姿态评估的空间模型非常有效,虽然他们没有详细的阐述或者对这个方法进行分析。
(4)此外,He等人[17]在做特征提取的时候丢弃了分类网络当中的非卷积部分。他们结合了建议框和空间金字塔池化来生成局部的,固定长度的特征用于分类。虽然这种方法很快速而且高效,但是这种混合模型不能用于训练端到端的网络。
(5)用卷积网络进行密集预测最近的几项工作已经将卷积网络应用在密集预测任务上,包括Ning等人[27],Farabet[8]等人,和Pinheiro和Collobert[28]的语义分割;Ciresan等人[2]等人的电子显微镜边界检测和Ganin和Lempitsky[11]通过混合神经网络和最近邻模型来处理自然图像;以及Eigen等人[5,6]所做的图像修复和深度估计。这些方法的相同点包括:
- 限制容量和接受域的小模型;
- 基于块区域的训练[27,2,8,28,11];
- 经过超像素投影,随机场正则化,滤波或者局部分类的后处理[8,2,11];
- 如OverFeat[29]介绍的一样,对于密集输出[28,11]有输入移位和输出交错;
- 多尺度金字塔处理[8,28,11];
- 饱和双曲线正切和非线性;
- 集成;
虽然我们的方法没有这些机制。但是我们对FCNs前景的块区域训练(3.4节)和“移位和缝合”密集输出(3.2节)进行了研究。特别的是,我们也对Eigen等人[6]的全卷积预测中的网络内上采样进行了讨论(3.3节)。
(6)和这些已经存在的方法不同,我们改编和扩展了深度分类架构,并使用图像分类作为监督预训练,以及微调全卷积网络简单高效的从整张图片的输入和整张图片的真实输出进行学习。
(7)Hariharan等人[16]和Gupta等人[14]同样地也改编了深度卷积网络来进行语义分割,但是也在混合建议框分类器模型的时候这么做了。这些方法通过采样边界框和区域建议框对R-CNN[12]进行了微调用于检测,语义分割和实例分割;这两种方法都不能学习端到端的模型。
(8)他们分别在PASCAL VOC和NYUDv2实现了最好的分割效果,所以在第5节中我们直接将我们的独立的、端到端的FCN和他们的语义分割结果进行比较。
3.全卷积网络
(1)在卷积网络当中每一层的数据都是一个尺寸为hxwxd的三维数据,其中h和w是空间维度,d是特征或者通道维度。第一层是像素尺寸hxw,颜色通道数为d的图像。高层次当中的位置信息和图像当中的位置信息相对应时被称作接收域。
(2)卷积网络是以平移不变性作为基础的。其基本组成部分(卷积,池化,激活函数)作用在局部输入域,并且仅仅依赖相对空间坐标。在特定的层次将位于(i,j)的数据向量记作Xij,并且将下一层的对应位置记作Yij,这些Yij输出的计算函数为:
其中k是卷积核尺寸,s是步长或者下采样因子,并且Fks决定了层次类型:一个卷积的矩阵乘法或者均值池化层,一个用于空间最大化的最大池化层,或者是一个激励函数的元素级非线性层,亦或者是其他层的种类。
(3)当卷积核尺寸和步长遵从转换规则,这个函数形式被表述为如下形式:
当一个网络只有常规深层次计算常规非线性函数这样的形式来计算非线性滤波的层次的时候,我们称它为深度滤波或者全卷积网络。一个全卷积网络自然的可以接收任意尺度的输入并且产生相应的空间维度的输出(可能重采样)。
(4)一个FCN定义看一个任务组成了一个实值损失函数。如果损失函数是最后一层的空间维度上的一个求和,
它的梯度将会是它的每个空间部分的梯度总和。所以使用最后一层的所有接受域最为一个最小的batch,在l层上的随机梯度下降计算将和*l’*上的随机梯度下降结果一样。
(5)当这些接收域重叠很明显的时候,层次之间的前向计算和反向传播计算在整张图片上机会更加高效,而不是块和块之间。
(6)我们下一步将解释如何将分类网络转换为全卷积网络来生成粗糙的分布。我们需要将这些粗糙的输出返回到像素上,来达到像素级的预测。为了达到像素级的预测,3.2节描述了一个将OverFeat[29]引入进来的小技巧。通过将其重新解释为一种等价的网络修改,我们可以更深入的理解这种小技巧。我们在3.3节引入了反卷积层来进入上采样,来作为一种有效的替代方法。在3.4节我们考虑通过块级别进行训练,并且在4.3节给出我们的整张图片进行训练的方法比用一块一块图像进行训练更加快速且同样有效的证据。
3.1 改编分类器们用于密集预测
(1)传统的识别网络,包括LeNet[21],AlexNet[19]以及他们更加深层次的后继网络,表面上都是接收固定尺寸大小的输入并且生成非空间性的输出。这些网络的全连接层有固定的维度并且抛弃了空间坐标。然而,这些全连接层也可以被看做是拥有覆盖全部输入域的卷积核。这样做可以将他们转换为接收任意尺寸大小输入和生成相应输出的分类图的全卷积网络。这种转换如图二所示。(相比之下,像Le等人[20]的非卷积网络,就缺少了这种能力)
图二. 将全连接层转换为卷积层能使一个分类网络输出一个热图。增加更多的层次和一个空间损失(像图一一样)产生一个用于端到端学习的高效的结构。
(2)此外,虽然生成的地图相当于对于特定输入块的原始网络评估,但计算在这些块的重叠区域上是高度平摊的。例如,当AlexNet花费了1.2ms(在标准的GPU上)推算一个227227的图像的分类得分,全卷积网络只需要花费22ms从一张500500的图像上产生一个10*10的输出网络,比原始的方法快了5倍。
(3)对于密集预测问题像语义分割,这些卷积化模型的空间输出图是一个很自然的选择。由于每个输出单元上的真实值都是可得到的,向前和向后的传播都很简单,而且都利用了卷积固有的计算效率(和极有效的优化)。
(4)这种对应的反向传播时间对于Alexlet在单个图像上的示例时间是2.4ms,而在全卷积的10x10的输出图则是37ms,这导致了类似于前向传播的加速。这种密集的反向传播如图1所示。
(5)当我们将分类网络重新解释为全卷积的时候,对于任意大小的输入,都会参生相应任意大小的输出图,而输出的维度通常会通过采样来减少。分类网的采样要保持过滤器小,并且计算需要合理。这使得全卷积网络版本的这些网络输出更加的粗糙,可以通过一个与输出单元的接收域上的像素步长等同的因素来控制输入尺寸,从而来减小它。
3.2 Shift-and-stitch是过滤稀少
(1)输入移位和输出交错是一个从粗糙输出上产生密集预测,并且不使用插值的小技巧,OverFeat[29]中介绍了这种技巧。如果输出是因为一个f因子进行了下采样,对于属于{0,…,f-1}X{0,…,f-1}的每一个值,平移它输入(通过左移和填补操作)的x像素到左边,y像素到下面。这些(x,y)输入分别通过卷积网络运行,并且输出相互交错,以便预测对应于接收域中心的像素。
(2)仅仅改变卷积网络的这些过滤器和每一层的卷积步长,就可以与这种Shift-and-stitch技巧参生相同的输出。考虑到一个层(卷积或者池化层)中的输入步长s,和后面拥有滤波权重Fij的卷积层(忽略和这路不想管的特征维度)。设置更低层的输入步长到1,并且通过一个影响因子是来上采样它的输出,就像Shift-and-stitch这种方法一样。然而,因为原始的滤波只看得到(现在上采样)输入简化的一部分,所以这种原始的具有上采样输出的滤波进行卷积并不会得到和Shift-and-stitch相同的结果。为了重现这种技巧,通过扩大来稀疏滤波(i,j都以0为开始)。:
重现这种技巧的全网输出需要重复一层一层的使用这种放大的过滤器,直到所有的下采样都被移除。
(3)简单的减少一个网络中的下采样操作是一个这种的选择:滤波器可以看到更细节的信息,但是接收域更小,并且需要花费更长的时间来计算。我们发现Shift-and-stitch是另一种折衷的方法:它的输出更加密集但是并没有减小滤波器的接收域的范围,但是相对于原始的设计,滤波器将会获得不了更加精细范围内的信息。
(4)虽然我们一开始做了一些实验都使用了Shift-and-stitch,但是在我们的模型里面我们并没有使用它。我们发现下一节将要描述的通过上采样进行学习这种方法更加的高效和有效,特别是当这种方法和后面要介绍的跨层融合相结合的时候。
3.3. 上采样是反向的卷积
(1)另一种将粗糙的输出和密集像素连接在一起的方法是插值法。比如简单的双线性插值计算每个Yij来自只依赖输入和输出单元的相对位置的线性图的最近的四个输入。
(2)从某种意义上,使用因子f来进行上采样的操作就是拥有一部分输入步长为1/f的卷积操作。只要f是一个整数,进行上采样的自然的一个方法就是使用输出步长为f的反卷积操作(有时候叫做去卷积)。这样一个操作的实现是不重要的,因为它只是简单的调换了卷积操作的顺推和逆推。所以上采样在网内通过计算像素级的损失的反向传播进行端到端的学习。
(3)需要注意的是,反卷积滤波不需要被设置为固定不变(比如双线性上采样),但是可以被学习。一堆反卷积层和激活函数甚至能学习一种非线性上采样。
(4)在我们的实验当中,我们发现网内的上采样对于学习密集预测是快速且高效的。在4.2节当中,我们最好的分割框架使用了这些层来学习上采样来进行精确的预测。
3.4.块级别的训练是损失采样
(1)在随机优化的过程当中,梯度的计算是由训练的分布所支配的。块级别的训练和全卷积的训练都可以用来产生任意的分布,尽管他们的相对的计算效率依赖于重叠域和minibatch的大小。当每个batch都包含了一张图片(或者一组图片)上损失以下单元里所有的接收域的时候,整张图片进行全卷积训练和块级别进行训练是一样的。这种方法不仅比块级别训练进行均匀取样的方法更加高效,而且它减少了可能的批次数量。然而,在一张图片里进行随机的块采样可能更容易被恢复。梯度计算以外的patchs并不会限制基于其空间位置进行随机取样所产生的损失。
(2)如果保留下来的那些patch依然有很明显的重叠,全卷积计算始终会加速训练。如果梯度在多次反向传播过程当中被累计,那么batchs当中包含的batch可以来源于多张图片。
(3)在块级别的训练过程当中采样可以纠正类别不平衡的问题[27,8,2]和使密集块之间的空间相关性减小[28,16]。
(4)我们将在4.3节当中探索拥有采样操作的训练,并且没有发现它对于密集预测能够产生更快和更好的收敛效果。全图训练才是有作用且高效的。
4.分割框架
(1)我们将ILSVRC分类器转换为FCNs,并且加强他们来进行拥有网内上采样和像素级损失的密集预测。我们通过微调进行分割的训练。另外,我们建立了一个新的跳跃框架来结合粗糙的语义的和局部的表征信息来进行精确的预测。
(2)为了这次调查研究,我们在2011年的PASCAL VOC分割挑战赛当中进行了训练和验证。我们使用逐像素的多项式逻辑损失函数进行训练,然后再在并集上的平均像素交的标准度量值进行验证,其平均像素交的标准度量值包括了所有类别和背景的平均度量值。这个训练当中忽略了那些被标记掩盖的像素(如标记模糊或者困难的像素)。
4.1.从分类器到密集FCN
(1)如第3节所示,我们从卷积已经被证明的分类体系结构开始。我们考虑了赢得ILSVRC12比赛的AlexNet架构[19],以及和同样在ILSVRC14比赛中表现异常出色的VGG网络[31]和GoogLeNet[32]。我们选择了16层的VGG,因为我们发现在这个任务当中,它相当于一个19层的网络。对于GoogLeNet,我们仅仅使用了最后的损失层,并且通过丢弃最后的平均池化层提高了性能。我们通过丢弃最后的分类器层来使得每一个网络无效,并且将所有的全连接层转化为了卷积层。我们附加了一个1*1的、通道数为21的卷积层来预测PASCAL当中所有类别类的在粗糙的输出位置上的得分(包括反向传播),然后向3.3节当中描述的那样,在后面紧跟一个去全卷积层来将粗糙的输出双线性采样到像素密集的输出上。表一将初步的验证结果和每个网络的基础特性进行比较。我们发现最好的结果在以一个固定的学习率上得到(最少175轮训练)。
表一.我们改编并且扩展三个分类器卷积网络用于语义分割。我们比较了PASCAL VOC 2011验证集上的平均交集和推理时间(在NVIDIA
Tesla
K40c上输入500×500的平均20次试验)的性能。我们详细介绍了适应网络的结构,包括密集预测:参数层的数量、输出单元的接受域大小和网络中最粗的步幅。(这些数字给出了在固定学习速率下获得的最佳性能,而不是可能的最佳性能。)
(2)从分类到分割的微调给每个网络提供了合理的预测。即使是最糟糕的模型也能达到最先进的75%的性能。内设分割的VGG网络(FCN-VGG16)在验证集合上的平均IU为56.0,而在[16]测试集中为52.6。。对验证子集进行额外数据的训练可以将表现提高到平均59.4 IU。在4.3节当中会给出其训练的详细情况。
(3)尽管有相似的分类精度,但是我们的GoogLeNet的实现和这个分割结果并不匹配。
4.2. 结合“what”和“where”
(1)看图3,我们定义了一个新的全卷积网络(FCN)用于分割,它结合了特征层次结构的各个层次,并改进了输出的空间精度。
(2)虽然全卷积化的分类器可以像4.1所示的一样被微调用于语义分割,甚至能够在标准度量上得到很高的分数,但是他们的输出却非常让人不满意的粗糙(看图4)。最终预测层的32像素步长限制了上采样输出的细节精度。
图3.我们的DAG网络学会了将粗的、高层的信息和精细的、低层的信息结合起来。使用网格来表示各个层,网格的大小可以显示相对的空间粗糙程度。在这张图里面只展示了池化层和预测层;中间的卷积层(包括我们转换的完全连接层)都被省略了。其中实线(FCN-32s):在4.1节当中所描述的我们的单流网络,在简单的一步之内使用32步长进行上采样将预测返回到像素上。实虚线(FCN-16s):使用16的步长,结合来自最后一层和第四个池化层的预测,使我们的网络能够预测更详细的细节,同时保留高级的语义信息。细虚线(FCN-8s):使用8作为采样步长,加上池化层3层的预测,提供了更加精确的预测。
图4. 通过融合不同层次的信息来细化完全卷积的网络,提高了分割的细节。前三个图像分割显示了我们的32,16和8像素步长网络的输出。
(3)我们通过添加最终的预测层和更低的层的链接,并且使用更加小的步长来解决这个问题。这将一个线拓扑转换为一个DAG,将边缘信息从较低的层跳跃到较高的层(图3)。由于他们看到的更少的像素,更精细的尺度预测应该需要看到更少像素的层,所以从较浅的净输出进行预测是有意义的。精细层和粗糙层的结合让模型能够根据根据全局结构进行局部预测。通过类比Florack等人的[10]的多尺度局部jet类似,我们把我们的这种非线性局部特征层次称作深度jet。
(4)通过一个16像素步长层,我们首先将输出步长减半。我们在第四个池化层顶部增加了一个1x1的卷积层来生成额外的类别预测。我们通过增加了一个2x的上采样层并将两者相加来将这个输出和在conv7(卷积化的fc7)上步长为32计算出来的预测像融合起来(看图3)。我们初始化这个2x上采样为双线性插值,但是允许这些参数可以像3.3节所描述的那样可以被学习。最后,这个步长为16的预测结果会被上采样返回到图像。我们称其为FCN-16s。FCN-16s是端到端的学习,使用最后的粗糙的我们现在称之为的FCN-32s的参数进行初始化。而在第四个池化层上的新参数是从0开始初始化的,来让这个网络从未修改的预测结果开始。并且将该学习率降低100倍。
(5)学习这种跳跃结构可以将验证集合上3.0的平均IU提高到62.4。图四展示了这种在输出上精细结构的提升。我们将这种融合与仅从pool4层学习(这会导致较差的性能)进行了比较,并简单地降低了学习率,而没有添加额外的链接(这会导致微不足道的性能改进,但不会提高输出的质量)。
(6)我们继续采用这种方式将第三个池化层使用一个2x上采样的预测值和前面第四个池化层和conv7的结果进行融合,构建FCN-8s。我们得到了一个小的改进——平均IU提升到了62.7,并发现我们的输出在平滑度和细节上了了一个小的改进。在这一点上,我们的融合已经满足了递减的回报,既与IU度量(强调大规模的正确的正确性)有关,也与改进的可视范围等有关。所以在图四当中,我们没有继续再融合更低的层次。
(7)用其他的方法改进 减小池化层的步长是获得更精确预测的最直接的方法。然而,这样做对于我们基于VGG16的网络会存在很多问题。设置第五个池化层的步长为1,需要我们的卷积化的fc6拥有一个14x14大小的卷积核来保持他们接收域的大小。除了计算开销外,我们在学习这么大的过滤器的时候也遇到了困难。我们尝试用更小的过滤器来重新架构pool5上面的层,但是没有成功地实现类似的性能;一种可能的解释是Image训练的之前层的参数初始化非常重要。
(8)另一种获得更精细预测的方法是使用在3.2节当中描述的shiftand-stitch。在有限的实验当中,我们发现该方法的改进成本比融合的方法要更高。
4.3.实验框架
(1)优化我们使用拥有动量的SGD方法进行训练。我们通过线性搜索,使用20张图像的minibatch,并且分别固定 FCN-AlexNet, FCN-VGG16, 和FCN-GoogLeNet的学习率为10−3, 10−4和10−5。我们使用动量0.9,权重衰减为5或2,并且为偏差加倍了学习速率,尽管我们发现训练对这些参数不敏感(但对学习速率敏感)。我们发现随机初始化既不能提高性能也不能加快收敛速度,我们对类评分卷积层进行了零初始化。Dropout被包含在原始的分类器网络当中。
(2)微调 我们通过网络的反向传播对所有层进行微调。正如表二所比较的那样,仅仅对分类器进行微调只能获得全部微调性能的70%。考虑到学习基本分类网络所需要的时间,从头开始训练是不可行的。(注意,VGG网络是分阶段训练的,而我们是从完整的16层版本初始化的。)对于粗糙的fcn -32版本,单台GPU的微调需要3天时间,而升级到fcn -16和fcn -8版本则每次需要额外再增加一天。
(3)patch采样正如3.4节解释的那样,我们的完整图像进行训练有效地将每幅图像批量处理成一个规则的大的、重叠的小块网格。相比之下,之前的工作是在一个完整的数据集上随机采样patch[27,2,8,28,11],这可能会导致更多的不同的批次,从而加速收敛[22]。我们通过对损失进行空间采样的方式来研究这种权衡,以一定的概率1 - p忽略每一个最终层单元,做出一个独立的选择。为了避免改变有效批大小,我们同时将每批图像的数量增加1/p。请注意,由于卷积的效率,对于对于足够大的p值,这种形式的拒绝采样仍然比patchwise训练快(比如,根据在3.1节当中的数值,p至少要大于0.2)。图5显示了这种抽样形式对收敛的影响。我们发现,与整幅图像训练相比,采样对收敛速率的影响并不显著,但由于每批需要考虑的图像数量更多,因此需要花费更多的时间。因此在我们的其他实验当中我们选择未采样的完整的图像进行训练。
(4)类别平衡全卷积训练可以通过对损失进行加权或采样来平衡类。我们发现类别平衡是不必要的,虽然我们的标签有轻微的不平衡(大约3/4是背景)。
(5)密集预测分类得分层通过网络内的反卷积层上采样到输入维度。最后一层反卷积滤波器固定为双线性插值,中间上采样层初始化为双线性上采样,然后进行学习。shift-and-stitch和它相等价的稀疏滤波都没有被使用。
(6)加强我们尝试通过随机镜像和“抖动”图像来增加训练数据,将它们在每个方向上转换到32个像素(最粗略的预测尺度)。这些方法并没有取得显著的加强。
(7)更多的训练数据我们用于表1的PASCAL VOC 2011分割挑战训练集标记了1112张图像。Hariharan等人[15]已经收集了一个更大的8498张图片的 PASCAL训练图像集的标签,用来训练之前最先进的系统SDS[16]。该训练集提高了FCN-VGG16验证评分3.4分,达到平均59.4 IU。
(8)实现所有模型都在一台NVIDIA Tesla K40c上用Caffe[18]进行了培训和测试。模型和代码将公开发布。
5.结果
(1)我们在语义分割和场景解析上测试了我们的FCN,并且探索性的使用了PASCAL VOC, NYUDv2, 和SIFT Flow.三个数据集。虽然这些任务历史上是由对象和区域来进行区分的,但是我们一致的将其视为像素预测。我们在每个数据集上评估我们的FCN跳跃架构,然后将其扩展到在NYUDv2上的多模型输入和在SIFT Flow数据集上的多任务的语义和几何标签输入。
(2)度量我们在常用的语义分割和场景解析当中提出四种度量,他们在像素的准确率和区域的交集上是不同的(IU)。令n_ij表示类别i被预测为类别j的像素数量,这里有n_cl种不同的类别,并且让
为类别i的像素的总的数量。我们将计算:
(3)PASCAL VOC表3给出了我们的FCN -8s在PASCAL VOC 2011和2012测试集上的性能,并将其与之前最先进的SDS[16]和著名的R-CNN[12]进行了比较。我们在平均IU上相对增加了20%达到最佳结果。推理时间减少了114倍(仅卷积网络,忽略proposals和改进)或286倍(总体)。
表3我们的全卷积网络相对于pascalvoc2011和2012测试集的最新水平提高了20%,并减少了推理时间。
(4)NYUDv2 [30] 是一个使用微软Kinect收集的RGB-D数据集。它有1449张RGB-D图像,由Gupta等人[13]将像素标记合并成40类语义分割任务。我们报告了795幅训练图像和654幅测试图像的标准分割结果。(注:所有模型的选择都是依据PASCAL2011年验证集上的性能)表4给出了我们的模型的几种变体的性能。首先我们在RGB图片上训练我们的未经修改的粗糙模型(FCN-32s)。为了增加深度信息,我们对一个升级到采用四通道RGB-D输入(早期融合)的模型进行训练。这提供了很少的便利,可能是由于将有意义的梯度一直传播下去比较困难。紧随Gupta等人[14]的成功,我们尝试3维的HHA编码深度,只在这个信息上训练网络,当然也在最后一层进行总结,将RGB与HHA的一样来自这两个网络中的预测进行“后期融合”,结果学习了端到端的双流网络。最后,我们将这个后期的融合网络升级为16步版本。
表4.结果NYUDv2。RGBD是RGB与深度通道在输入端的早期融合。HHA为[14]的埋深,为水平视差、地面高度、局部地表法线与推断重力方向的夹角。RGB-HHA是联合训练的晚期融合模型,将RGB和HHA的预测相加。
(5) SIFTFlow是一个包含2,688幅图像的数据集,其中像素标签包含33个语义类别(“桥”、“山”、“太阳”),以及三个几何类别(“水平”、“垂直”和“天空”)。FCN可以自然地学习一个联合表示来同时预测标签的两种类别。我们学习了一个双向版本的拥有语义和几何预测层和损失的FCN-16s。学习的模型在这两个任务上的表现和两个独立训练的模型一样好,而学习和推理基本上和每个独立模型本身一样快。表5中的结果,根据标准分割为2,488个训练图像和200个测试图像进行计算,显示了在这两个任务上的最新性能。
表五.在拥有类别语义(中心)和几何语义(右边)的数据集SIFT Flow上的结果。Tighe[33]是一种非参数传递方法。Tighe1是一个SVM示例,而2是SVM +MRF。Farabet是一个基于类平衡样本(1)或自然频率样本(2)训练的多尺度卷积网络。Pinheiro是一个多尺度的,循环卷积网,表示RCNN3(o3)。几何的度量是像素精度。
6.结论
图6. 全卷积分割网在PASCAL上产生了最先进的性能。左边的列显示了性能最高的网络 fcn
-8s的输出。第二列图则展示了由Hariharan等人[16]的之前最先进的分割系统所产生的分割。注意恢复的精细结构(第一行),分离紧密交互物体的能力(第二行),以及对遮挡物的鲁棒性(第三行)。第四行显示了一个失败的案例:网络将船上的救生衣视为人。
(1)全卷积网络是一类丰富的模型,现代分类卷积网络是其中的一个特例。认识到这一点,将这些分类网络扩展到分割并通过多分辨率的层结合来显著提高先进的技术从而提高这些架构,同时简化和加速了学习和推理。
(2)致谢这项工作部分由DARPA的MSEE和SMISC项目、美国国家科学基金会颁发的iss -1427425、iss -1212798、iss -1116411、以及美国国家科学基金会的GRFP、丰田和伯克利视觉和学习中心支持。我们感谢NVIDIA的GPU捐赠。我们感谢Bharath Hariharan和Saurabh Gupta提供的建议和数据集工具。我们要感谢Sergio Guadarrama,他使用Caffe框架重新架设了GoogLeNet。我们感谢Jitendra Malik的宝贵意见。感谢刘炜指出了我们的SIFT流平均IU计算中存在的问题和频率加权平均IU公式存在的误差。
A.IU的上限
(1)在本文中,即使在粗语义预测的情况下,我们也在平均IU分割度量上取得了良好的性能。为了更好地理解这个度量以及这种方法对它的限制,我们计算在不同尺度下预测性能的近似上界。我们通过对地面真实值图像进行向下采样,然后再对其进行向上采样,以模拟在特定向下采样因子下可获得的最佳结果。下表给出了各种降采样因子在PASCAL 2011 val子集上的平均IU。
(2)完美的像素级别预测很显然在取得最最好效果上不是必须的,而且,相反的,平均IU不是一个好的精细准确度的测量标准。
B.更多的结果
(1)我们进一步评估我们的FCN用于语义分割。
(2)PASCAL-Context[26]提供了PASCALVOC2010的全场景注释。虽然有超过400个不同的类,但我们遵循[26]定义的59个类任务,它选择最频繁的类。分别对训练集和val集进行训练和评估。在表6中,我们和卷积化的特征标记的联合对象进行比较,后者是之前这项任务中最好的方法。FCN-8s得分35.1意味着IU为11%的相对改善。
变更记录
本文的arXiv版本与更正和其他相关材料保持最新。以下简要介绍了变化的历史。
v2 增加附录A给出平均IU的上限,并且增加使用PASCAL数据集的结果的附录B。修正PASCAL验证集的数量(之前有些验证图像被包含在训练集合里面),修正SIFT Flow数据集的度量为平均IU(之前用的不是严格合适的度量),并且修正了平均IU的频率加权公式的一个错误。向模型添加链接并更新时间编号,以反映改进的实现(公开提供)。