全卷积神经网络(FCN)论文笔记

Fully Convolutional Networks for Semantic Segmentation

Abstract

卷积网络是一种功能强大的视觉模型,可以产生特征的层次结构。我们证明了卷积网络本身,经过端到端训练的像素到像素,在语义分割方面超过了最先进的水平。我们的关键洞察是构建“完全卷积”网络,该网络接收任意大小的输入,并通过有效的推理和学习产生相应大小的输出。我们定义并详细描述了完全卷积网络的空间,解释了它们在空间密集型预测任务中的应用,并与先前的模型建立了联系。我们将当代分类网络(AlexNet[19]、VGG网络[31]和GoogLeNet[32])调整为完全卷积网络,并通过微调[4]将其学习到的表示转移到分割任务中。然后,我们定义了一种新的体系结构,它将来自深层、粗糙层的语义信息与来自浅层、精细层的外观信息相结合,以产生准确而详细的分割。我们的完全卷积网络实现了PASCAL VOC(2012年mean IU为62.2%,相对提高20%)、NYUDv2和SIFT流的最先进分割,而对典型图像的推断只需不到五分之一秒。

1. Introduction

卷积网络正在推动识别技术的进步。ConvNet不仅改进了整体图像分类[19,31,32],而且在结构化输出的局部任务上也取得了进展。其中包括包围盒目标检测[29,12,17]、部分和关键点预测[39,24]以及局部对应[24,9]方面的进展。

从粗略推断到精细推断的下一步自然是在每个像素处进行预测。以前的方法使用convnet进行语义分割[27,2,8,28,16,14,11],其中每个像素都用其封闭对象或区域的类别进行标记,但这项工作解决了这些缺点。

我们证明了一个完全卷积网络(FCN),经过训练的端到端,像素到像素的语义分割超过了没有进一步机器的最新技术。据我们所知,这是第一个对FCN进行端到端训练的工作(1)用于像素预测(2)来自有监督的预训练。现有网络的完全卷积版本预测来自任意大小输入的密集输出。学习和推理都是通过密集的前馈计算和反向传播来实现的。在网络中,上采样层通过子采样池在网络中实现像素级预测和学习。

这种方法是有效的,无论是渐进的还是绝对的,并且排除了其他工作中的复杂性。分块训练很常见[27,2,8,28,11],但缺乏完全卷积训练的效率。我们的方法不使用预处理和后处理复杂度,包括超像素[8,16]、建议[16,14]或随机场或局部分类器的后期细化[8,16]。我们的模型将最近在分类[19,31,32]方面取得的成功转化为密集预测,将分类网络重新解释为完全卷积的,并根据其学习的表示进行微调。相比之下,之前的工作在没有监督的预训练的情况下应用了小型网络[8,28,27]。

语义切分面临语义和位置之间的内在张力:全局信息决定是什么,而局部信息决定在哪里。深度功能层次结构在ocal-to-global pyramid中联合编码位置和语义。在第4.2节中,我们定义了一种新的“跳过”架构,将深层、粗糙的语义信息和浅层、精细的外观信息结合起来(见图3)。

在下一节中,我们将回顾深度分类网络、FCN的相关工作,以及最近使用CONVNET进行语义分割的方法。以下部分解释FCN设计和密集预测权衡,介绍我们的网络内上采样和多层组合架构,并描述我们的实验框架。最后,我们展示了PASCAL VOC 2011-2、NYUDv2和SIFT Flow的最新结果。

2. Related work

我们的方法借鉴了深度网络在图像分类[19,31,32]和迁移学习[4,38]方面的最新成功。迁移首先在各种视觉识别任务[4,38]上进行了演示,然后在检测上进行了演示,并在混合命题分类模型[12,16,14]中在实例和语义分割上进行了演示。现在,我们重新构建并优化分类网络,以直接、密集地预测语义分割。我们绘制了FCN的空间图,并将以前的模型(包括历史模型和近期模型)置于该框架中。

Fully convolutional networks

据我们所知,将convnet扩展到任意大小输入的想法最早出现在Matan等人[25]中,他们将经典的LeNet[21]扩展到识别数字串。由于他们的网络仅限于一维输入字符串,Matan等人使用维特比解码来获得输出。Wolf和Platt[37]将convnet输出扩展为邮政地址块四个角的检测分数的二维地图。这两部历史著作都是以复杂的方式进行推理和学习,以便进行检测。Ning等人[27]定义了一个convnet,用于利用完全卷积推理对线虫组织进行粗多类分割。

全卷积计算在当今的多层网络时代也得到了利用。Sermanet al[29]的滑动窗口检测、Pinheiro和Collobert[28]的语义分割以及Eigen et al[5]的图像恢复都进行了完全卷积推理。完全卷积训练很少见,但Tompson等人[35]有效地使用了它来学习端到端部分检测器和空间模型以进行姿势估计,尽管他们没有对这种方法进行阐述或分析。

或者,H等人[17]丢弃分类网的非进化部分,制作一个特征提取器。它们结合了建议和空间金字塔池,以产生一个局部的、固定长度的分类特征。这种混合模式虽然快速有效,但无法端到端地学习。

Dense prediction with convnets

最近的几项工作将ConvNet应用于密集预测问题,包括Ning等人[27]、Farabet等人[8]和Pinheiro和Collobert[28]的语义分割;Ciresan等人[2]的电子显微镜边界预测,以及Ganin和Lempitsky[11]的混合神经网络/最近邻模型的自然图像边界预测;图像恢复和深度估计由Eigen等人[5,6]完成。这些方法的共同要素包括:

1)、限制容量和感受野的小型模型

2)、patchwise的训练[27,2,8,28,11];

3)通过超像素投影、随机场正则化、滤波或局部分类进行后处理[8,2,11]

4)OverFeat[29]引入的密集输出[28,11]的输入移位和输出交错;

5)饱和tanh非线性[8,5,28];

6)ensembles[2,11],

而我们的方法没有这种机制。然而,我们确实从FCNs的角度研究了分片训练3.4和“shift-and-stitch”密集输出3.2。我们还讨论了网络上采样3.3,其中Eigen等人[6]的全连通预测是一个特例。

与现有的方法不同,我们采用并扩展了深度分类体系结构,将图像分类作为有监督的预训练,并进行完全卷积微调,以简单有效地从整个图像输入和整个图像接地路径中学习。

Hariharan等人【16】和Gupta等人【14】同样将深度分类网应用于语义切分,但在混合提议分类器模型中也是如此。这些方法通过采样边界框和/或区域建议来微调R-CNN系统[12],以进行检测、语义分割和实例分割。这两种方法都不是端到端学习的

它们分别在PASCAL VOC切分和NYUDv2切分上实现了state-of-the-art最先进的结果,因此我们直接将我们的独立端到端FCN与第5节中的语义切分结果进行比较。

3. Fully convolutional networks

convnet中的每一层数据都是一个大小为h×w×d的三维数组,其中h和w是空间维度,d是特征或通道维度。第一层是图像,像素大小为h×w,颜色通道为d。更高层中的位置对应于他们通过路径连接到的图像中的位置,这被称为他们的感受野

convnet建立在翻译不变性的基础上。它们的基本组件(卷积、池和激活函数)在局部输入区域上运行,并且仅依赖于相对空间坐标。将 X i j X_{ij} Xij​写入特定层中位置(i,j)处的数据向量,将 y i j y_{ij} yij​写入下一层,这些函数通过

其中k称为卷积核大小,s表示步长或子采样因子, f k s f_{ks} fks​确定层类型:用于卷积或平均池的矩阵乘法,用于最大池的空间最大值,或用于激活函数的元素非线性,等等,用于其他类型的层。

这种函数形式是在组合下保持的,内核大小和步幅遵循转换规则

深度网络计算一般使用非线性函数,而只有这种形式的层的网计算非线性滤波器,我们称之为深滤波器或完全卷积网络。FCN自然地对任何大小的输入进行操作,并产生相应(可能重新采样)空间维度的输出。

由FCN组成的实值损失函数定义了一个任务。如果损失函数是最后一层空间维度上的和,$l(x,θ)= {\textstyle \sum_{ij}{}l{‘}(x_{ij};\theta )} ,则其梯度将是其每个空间分量梯度上的和。因此,在 ∗ ∗ 整个图像上计算的“随机梯度下降”将与 ,则其梯度将是其每个空间分量梯度上的和。因此,在**整个图像上计算的“随机梯度下降”将与 ,则其梯度将是其每个空间分量梯度上的和。因此,在∗∗整个图像上计算的“随机梯度下降”将与l^{’}$上的随机梯度下降相同**,将所有最后一层感受野作为一个小批量。

当这些感受野显著重叠时,当在整个图像上逐层计算时,前馈计算和反向传播都要比逐块单独计算时有效得多

接下来,我们将解释如何将分类网络转换为产生粗略输出映射的完全卷积网络。对于像素预测,我们需要将这些粗略输出连接回像素。第3.2节描述了OverFeat【29】为此引入的一个技巧。我们通过将其重新解释为等效的网络修改来深入了解这个技巧。作为一种有效的替代方案,我们在第3.3节中介绍了用于上采样的反卷积层。在第3.4节中,我们考虑了逐段抽样的训练,并在第4.3节给出了我们的整体图像训练更快和同样有效的证据

3.1. Adapting classifiers for dense prediction

典型的识别网络,包括LeNet[21]、AlexNet[19]及其更深层的继承者[31,32],表面上接受固定大小的输入,并产生非空间输出。这些网络的完全连接层具有固定的尺寸,并抛弃了空间坐标。然而,这些完全连接的层也可以被视为内核覆盖整个输入区域的卷积。这样做会将它们投射到完全卷积的网络中,这些网络接受任何大小的输入,并输出分类图。这种转变如图2所示。(相比之下,非进化网络,如Le等人[20]的网络,缺乏这种能力。)

**注:最后一层的全连接层换成了卷积层,在VGG中也有提到这种方法,但是VGG没有使用,参数量相同,但是可以接受大小不固定的输入,(GPA还没开始应用)**计算如下图:

此外,虽然生成的maps相当于对特定输入patches上原始网络的评估,但计算在这些patches的重叠区域上进行了高度摊销。例如,虽然AlexNet(在典型的GPU上)需要1.2毫秒才能生成227×227图像的分类分数,但完全卷积版本需要22毫秒才能从500×500图像生成10×10的输出网格,这比naıve方法快5倍多。 (假设对单个图像输入进行有效的批处理。单个图像的分类分数需要5.4毫秒才能生成,这比完全卷积版本慢近25倍。)

这些卷积模型的空间输出映射使它们成为语义分割等密集问题的自然选择。利用每个单元固有的正向和反向计算效率。

AlexNet示例的相应向后时间对于单个图像为2.4毫秒,对于完全卷积的10×10输出映射为37毫秒,这导致了与前向传递类似的加速。这种密集的反向传播如图1所示。 (最后一个方块的维度是21,是PASC VOC数据中有20个分类,再加背景,一共是21个类别,这里21个feature map中每一个代表一个分类

虽然我们将分类网重新解释为完全卷积,可以为任何大小的输入生成输出映射,但输出维度通常通过子采样来减少。分类网子样本保持过滤器小,计算要求合理。这将使这些网络的完全卷积版本的输出变得粗糙,将其从输入的大小减少一个因子,该因子等于输出单元感受野的像素步长.

3.2. Shift-and-stitch is filter rarefaction

输入移位和输出交错是OverFeat[29]引入的一种技巧,可以从粗输出中产生密集预测,而无需插值。如果输出按f的系数进行下采样,则输入会(通过左上填充)向右移动x像素,向下移动y像素,每移动一次(x,y)∈ {0,…,f− 1} ×{0,…,f− 1}. 这些 f 2 f^2 f2输入分别通过convnet运行,输出是交错的,因此预测对应于其感受野中心的像素。

只需改变convnet的过滤器和层间距,就可以产生与这种移位和缝合技巧相同的输出。考虑一个具有输入步幅的层(卷积或汇集),以及一个具有滤波器权重 f i j f_{ij} fij​的后续卷积层(省略了特征维数,这里不相关)。将较低层的输入步幅设置为1会将其输出增加s倍的采样,就像shift和stitch一样。然而,将原始滤波器与上采样输出进行卷积不会产生与技巧相同的结果,因为原始滤波器只看到其(现在已上采样)输入的减少部分。要复制这个技巧,请将卷积核放大

(i和j为零)。复制技巧的全部净输出包括逐层重复该滤波器放大,直到移除所有子采样

简单地减少网络中的子采样是一种折衷:过滤器可以看到更精细的信息,但接收域更小,计算时间更长。我们已经看到,移位和缝合技巧是另一种折衷:在不减小滤波器的感受野大小的情况下,输出变得更密集,但滤波器被禁止以比其原始设计更精细的规模访问信息

虽然我们已经做了移位和缝合的初步实验,但我们并没有在我们的模型中使用它。我们发现,如下一节所述,通过上采样进行学习更有效,尤其是与下文所述的跳层融合相结合时。

3.3. Upsampling is backwards strided convolution(转置卷积)

将粗输出连接到密集像素的另一种方法是插值。例如,简单双线性插值通过线性映射从最近的四个输入计算每个输出 y i j y_{ij} yij​,该线性映射仅取决于输入和输出单元的相对位置

从某种意义上讲,因子f的上采样是分数输入步长为1/f的卷积。只要f是整数,自然的上采样方式就是输出步长为f的向后卷积(有时称为反卷积)。这种操作实现起来很简单,因为它只是反转卷积的向前和向后过程。

注意,这种层中的反卷积滤波器不需要固定(例如,双线性上采样),但可以学习。一堆反卷积层和激活函数甚至可以学习非线性上采样

在我们的实验中,我们发现网络上的上采样对于学习密集预测是快速有效的。我们的最佳分割架构使用这些层来学习向上采样,以便在第4.2节中进行精确预测。

3.4. Patchwise training is loss sampling

在随机优化中,梯度计算由训练分布驱动。分片训练和完全卷积训练都可以产生任何分布,尽管它们的相对计算效率取决于重叠和小批量大小。全图像完全卷积训练与分片训练完全相同,其中每一批训练由一张图像(或图像集合)丢失下方的所有单位的感受野组成。虽然这比均匀采样patch更有效,但它减少了可能的批次数量。然而,可以简单地恢复图像中随机选择的patch。将损失限制在其空间项的随机抽样子集上(或者,在输出和损失之间等效地应用DropConnect mask[36])会将patches排除在梯度计算之外。

如果保留的patch仍然有明显的重叠,完全卷积计算仍然会加快训练速度。如果在多个反向过程中累积梯度,批次可以包括来自多个图像的patch

分块训练中的采样可以纠正类别不平衡[27,8,2],并缓解密集斑块的空间相关性[28,16]。在完全卷积训练中,类平衡也可以通过加权损失来实现,损失采样可以用来处理空间相关性。

我们在第4.3节中探讨了抽样训练,并没有发现它能更快或更好地收敛于密集预测。整体图像训练是有效和高效的。

4. Segmentation Architecture

VGG结构图

附1、FCN-32S

未融合底层信息

原文中涉及到padding=100,是为了防止小于192x192的图像,在最后进入全连接层时图像会小于7x7,这会报错,但是显示使用中我们不会进行padding操作,因为一般分割的图像会大于192x192,太小的图像没有分割的意义

全连接加前面的卷积可以直接使用VGG16的预训练数据,在后面增加一个1x1卷积,修改维度,在进行一次转置卷积,上采样率为32倍,其中转置卷积的权重参数被冻结(冻结的原因应该是上采样率太大,使用转置卷积效果不好),所以就是双线性插值法还原图像中的点

附2、FCN-16S

融合来自pooling4的底层信息

在FCN-32S的基础上改进,分成两路,一路是原始的FCN-32S,最后一个转置卷积上采样率改成16倍,另一个是将VGG16的Backbone中MaxPooling4(对照VGG结构图),得到14x14大小的feature map,对应h/16 * w/16(h=w=224),使用1x1卷积降维,维度调整到类别数,最后输出和第一路的输出相同(h/16,w/16),两路输出相加在进行转置卷积(上采样率为16倍)

附2、FCN-8S

融合来自Pooling4和Pooling3的底层信息

基于FCN-16S,再次基础上融合了VGG16结构Backbone中的MaxPooling3,其中feature map大小为28x28(h/8,w/8),同样经过1x1卷积降维之后,和FCN-16S转置卷积2倍上采样率之前的输出相加,在进行一次转置卷积上采样率为8倍。注意这里全连接那一路的转置卷积处理上采样率会相应调整,这里是2倍

我们将ILSVRC分类器转换为FCN,并通过网络内上采样和像素丢失对其进行增强,以实现密集预测。我们通过微调来训练分割。接下来,我们构建了一个新的skip架构,它结合了粗糙的、语义的和局部的、外观的信息来细化预测。

在本次调查中,我们对PASCAL VOC 2011细分挑战进行了训练和验证[7]。我们一起训练每像素多项式逻辑损失,并用联合上的平均像素交点的标准度量进行验证,平均值覆盖所有类别,包括背景。训练忽略了在ground truth中被掩盖(模糊或困难)的像素。

4.1. From classifier to dense FCN

我们首先将第3节中所述的经验证的分类体系结构进行卷积。我们考虑AlxNET3架构(19)赢得ILVRC12,以及VGG网[31 ]和GoGoLeNET4(32)在ILVSRC14中做得非常好。我们选择VGG 16层网络5,在这个任务中,我们发现它相当于19层网络。对于GoogLeNet,我们只使用最终的loss层,并通过丢弃最终的平均池层来提高性能。我们通过丢弃最后的分类器层来斩首每个网络,并将所有完全连接的层转换为卷积。我们附加一个通道维数为21的1×1卷积,以预测每个粗略输出位置处每个PASCAL类(包括背景)的分数,然后是一个反卷积层,以双线性向上采样粗略输出到像素密集输出,如第3.3节所述。表1比较了初步验证结果以及每个网络的基本特征。我们报告了在固定学习速率(至少175个阶段)下收敛后获得的最佳结果。

从分类到分割的微调为每个网络提供了合理的预测。即使是最糟糕的模式也取得了成功∼ 75%的最先进表演。分段装备VGG网络(FCN-VGG16)在val上的mean IU为56.0,而在测试[16]上的mean IU为52.6,这似乎是最先进的。在val的子集上,额外数据训练将绩效提高到59.4mean IU。训练详情见第4.3节。

尽管分类精度相似,但我们对GoogLeNet的实现与这个分割结果并不匹配。

4.2. Combining what and where

我们定义了一个新的完全卷积网络(FCN)用于分割,它结合了特征层次的各个层,并细化了输出的空间精度。参见图3。

注:图中的32s、16s和8s是进行N遍的上采样得到同样大小的feature map

虽然完全卷积的分类器可以微调到如4.1所示的分段,甚至在标准度量上得分很高,但它们的输出粗糙得令人不满意(见图4)。最终预测层的32像素步长限制了上采样输出中的细节比例。

我们通过添加链接来解决这个问题,这些链接将最终预测层与步幅更细的较低层结合起来。这将线拓扑转换为DAG,边从较低的层向前跳到较高的层(图3)。由于他们看到的像素更少,更精细的规模预测应该需要更少的层,因此从较浅的净输出进行预测是有意义的。将细层和粗层结合起来,模型可以根据全球结构进行局部预测。通过类比Florack等人[10]的多尺度局部喷流,我们将我们的非线性局部特征层次称为deep jet(深喷流)

我们首先通过预测16像素的步幅层将输出步幅分成两半。我们在pool4上添加了一个1×1卷积层,以生成额外的类预测。我们通过添加2×上采样层并将两个预测相加,将该输出与在第32步的conv7(卷积fc7)上计算的预测进行融合。(见图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-8。我们获得对62.7平均IU进行了轻微的额外改进,并发现输出的平滑度和细节有了轻微的改善。在这一点上,我们的融合改进已经达到了递减的回报,无论是在强调大规模正确性的IU度量方面,还是在图4中可见的改进方面,因此我们不会继续融合更低的层

Refinement by other means

减少合并层的步长是获得更精确预测的最直接的方法。然而,这样做对我们基于VGG16的网络来说是有问题的。将pool5层设置为跨步1需要我们的卷积fc6具有14×14的内核大小,以保持其感受野大小。除了计算成本,我们还很难学习如此大的滤波器。我们试图用更小的过滤器重新构建pool5上面的层,但未能成功实现可比性能;一种可能的解释是,上层ImageNet训练权重的初始化很重要

获得更精确预测的另一种方法是使用第3.2节中描述的移位和缝合技巧。在有限的实验中,我们发现这种方法的成本改进比分层融合要差。

4.3. Experimental framework

Optimization

我们用SGD的动力训练。我们使用20幅图像的小批量,固定学习率为10−3, 10−4、5−5分别用于FCN AlexNet、FCN-VGG16和FCN GoogLeNet,通过行搜索选择。我们使用动量0.9,重量衰减5−4或2−4,并将偏差的学习率提高了一倍,尽管我们发现训练对这些参数不敏感(但对学习率敏感)。我们对类评分卷积层进行零初始化,发现随机初始化既不会产生更好的性能,也不会产生更快的收敛速度。在最初的分类器网络中使用的地方包括辍学。

Fine-tuning

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

Patch Sampling

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

Class Balancing

完全卷积训练可以通过加权或采样损失来平衡课程。虽然我们的标签有点不平衡(大约三分之四是背景),但我们发现没有必要进行类平衡。

Dense Prediction

通过网络内的反褶积层将分数向上采样到输入维度。最后一层反褶积滤波器固定为双线性插值,而中间上采样层初始化为双线性上采样,然后学习。不使用Shift和Stitch(第3.2节)或过滤器稀疏等效物。

Augmentation

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

More Training Data

我们用于表1的PASCAL VOC 2011分割挑战训练集标记了1112张图像。Hariharan等人[15]收集了一组更大的8498帕斯卡训练图像的标签,用于训练之前最先进的系统SDS[16]。该培训数据将FCNVGG16验证分数7提高了3.4分,达到59.4平均IU。

Implementation

所有型号都在一台英伟达特斯拉K40c上使用Caffe[18]进行培训和测试。这些模型和代码将在发布时开源发布。

5. Results

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

Metrics

我们报告了常见语义分割和场景解析评估中的四个指标:

PASCAL VOC

表3给出了我们的FCN-8s在PASCAL VOC 2011和2012测试集上的性能,并将其与之前最先进的SDS[16]和著名的R-CNN[12]进行了比较。我们在平均IU上取得了20%的相对优势。推理时间减少了114×(仅convnet,忽略建议和改进)或286×(总体)。

NYUDv2

使用以下方法收集的RGB-D数据集: Microsoft Kinect,它有1449张RGB-D图像,带有像素标签,Gupta等[13]将其合并为一个40类语义分割任务。我们报告了795张训练图像和654张测试图像的标准分割结果。(注:所有型号选择均在PASCAL 2011 val上进行。)表4给出了我们的型号在几个不同版本中的性能。首先,我们在RGB图像上训练未修改的粗糙模型(FCN-32s)。为了增加深度信息,我们在升级的模型上进行训练,以采用四通道RGB-D输入(早期融合)。这几乎没有什么好处,可能是因为很难在整个模型中传播有意义的梯度。继Gupta等人[14]的成功之后,我们尝试了深度的三维HHA编码,仅基于此信息的训练网络,以及RGB和HHA的“后期融合”,其中来自两个网络的预测在最后一层进行汇总,并最终得到端到端学习的双流网络。最后,我们将这个晚期融合网络升级为16步版本。

SIFT Flow

是一个包含2688幅图像的数据集,其中包含33个语义类别(“桥”、“山”、“太阳”)以及三个几何类别(“水平”、“垂直”和“天空”)的像素标签。FCN自然可以学习同时预测两种类型标签的联合表示。我们学习了FCN-16s的双头版本,带有语义和几何预测层和损失。学习模型在这两项任务上的表现与两个独立训练的模型一样好,而学习和推理的速度基本上与每个独立模型本身一样快。表5中的结果根据标准分为2488张训练图像和200张测试图像,其中10张显示了这两项任务的最新性能。

6. Conclusion

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

附加案例

全卷积神经网络(FCN)论文笔记相关推荐

  1. 【CV语义分割】全卷积神经网络FCN(更新ing)

    学习总结 (1)paper<Fully Convolutional Networks for Semantic Segmentation> (2)论文翻译可以参考:https://www. ...

  2. 全卷积神经网络(FCN)

    目录 卷积化 上采样 跳跃结构 卷积化 上采样 跳跃结构 卷积化 上采样 跳跃结构 论文:Fully Convolutional Networks for Semantic Segmentation( ...

  3. 全卷积神经网络FCN

    卷积神经网络CNN(YannLecun,1998年)通过构建多层的卷积层自动提取图像上的特征,一般来说,排在前边较浅的卷积层采用较小的感知域,可以学习到图像的一些局部的特征(如纹理特征),排在后边较深 ...

  4. Fully Convolutional Networks for Semantic Segmentation ————全卷积网络 FCN论文解读

    Fully Convolutional Networks for Semantic Segmentation 作者: Jonathan Long, Evan Shelhamer, Trevor Dar ...

  5. picpick尺子像素大小精度不够准确_picpick尺子像素大小精度不够准确_【论文解读】像素级分割里程碑算法——FCN全卷积神经网络......

    FCN论文链接:Fully Convolutional Networks for Semantic Segmentation 作者代码(caffe版):https://github.com/shelh ...

  6. 图像分割之FCN全卷积神经网络

    FCN全卷积神经网络 语义分割概念 语义分割就是逐像素的图像中的内容进行分类,属于同一类的像素都要被归为一类,因此语义分割是从像素级别来理解图像的. 注意区分的是:语义分割与实例分割不同,下图为FCN ...

  7. 全卷积神经网络( FCN ):语义分割深度模型先驱

    语义分割 简单地说,分割就是抠图.语义分割,就是按图像中物体表达的含义进行抠图. 现在ps已经集成很多自动分割的功能,相比旧版本软件,新软件提高了美工人员的抠图和美图的效率. 如果我们能在更复杂的环境 ...

  8. 全卷积网络FCN与卷积神经网络CNN的区别

    背景 CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题.神经网络大神Jonathan Long发表了<Fully Convolutional N ...

  9. 卷积神经网络( CNN)与全卷积神经网络(FCN)

    目录 卷积神经网络(CNN) 卷积层 卷积层尺寸的计算原理 标准卷积计算举例 1 x 1 卷积计算举例 全连接层计算举例 附:TensorFlow 中卷积层的简单实现 激励层 池化层 池化层的作用 输 ...

最新文章

  1. .net中下载文件的方法(转)
  2. 在qemu模拟的aarch32上使用kgtp
  3. python 编码问题
  4. idea创建maven web项目需要注意的一些细节
  5. MATLAB读取文件夹及其所有子文件夹内的图像
  6. 通用高性能 Windows Socket 组件 HP-Socket v2.2.1(增加 PULL 模型支持)
  7. 编程语言的通用概念[共同特征]
  8. matlab中boxplot函数的参数设置_Matlab箱形图boxplot函数用法
  9. mysql置疑原因_SQL SERVER2000数据库置疑处理详解
  10. 直播录屏软件哪个好?什么软件可以录屏直播会议?
  11. 记录建行外联平台退款操作
  12. android注册页面开发
  13. 谈谈机器学习(Machine Learning)大牛
  14. Qt 中 Q_OBJECT 宏及 moc_*.cpp文件
  15. COJ 3012 LZJ的问题 (有向图判环)
  16. python-skimage.io,filters,transform
  17. uc7.5java下载,uc浏览器7.5版手机下载-uc浏览器7.5官方版v7.5 安卓版 - 极光下载站...
  18. scratch案例——神奇闹钟
  19. 基于汇编语言实现的贪吃蛇游戏设计
  20. android 心跳包的分析

热门文章

  1. OpenCV图像相似度检测,Python实现
  2. 十二、聚类算法——相似度测量
  3. HTML(超详细)(图+文)
  4. 今日份不一样的早餐!
  5. 欲戴王冠,必承其重!
  6. 对于游戏论坛的需求分析
  7. SmartBrain后端
  8. Java swing入门教程(转载)
  9. Python学习,还在用正则或者bs4做爬虫吗?来试试css选择器吧
  10. win10如何映射服务器文件,如何在Windows 10中映射网络磁盘