Abstract
- 卷积网络是强大的可视化模型,可以产生特征层次结构。我们展示了卷积网络本身,训练端到端,像素像素,超过了语义分割的最新技术水平。我们的主要洞察力是构建“完全卷积”网络,该网络接收任意大小的输入并通过有效的推理和学习产生相应大小的输出。我们详细描述了完全卷积网络的空间,解释了它们在空间密集预测任务中的应用,并绘制了与先前模型的连接。我们将当代分类网络(AlexNet [22],VGG网络[34]和GoogLeNet [35])调整为完全卷积网络,并通过微调[5]将其学习的表示转移到分割任务。然后,我们定义了一种跳过架构,该架构将来自深层粗糙层的语义信息与来自浅层的外观信息相结合,以产生准确和详细的分段。我们的完全卷积网络实现了PASCAL VOC的最先进分割(2012年平均IU为20%相对改善为62.2%),NYUDv2和SIFT Flow,而典型图像的推理时间不到一分之一秒。
Introduction
- 卷积网络正在推动识别的进步。 Convnet不仅改善了整体图像分类[22,34,35],而且还在结构化输出的本地任务上取得进展。 这些包括边界框对象检测[32,12,19],部分和关键点预测[42,26]以及局部对应[26,10]的进展。从粗略推理到细微推理的自然下一步是对每个像素进行预测。 先前的方法已经使用了用于语义分割的卷积[30,3,9,31,17,15,11],其中每个像素都用其封闭对象或区域的类来标记,但是具有该工作所解决的缺点。
- 我们表明,完全卷积网络(FCN)训练端到端,像素到像素的语义分割超过了最先进的。 据我们所知,这是首次训练FCN端到端(1)进行像素预测,(2)进行有监督的预训练。 现有网络的完全卷积版本预测来自任意大小输入的密集输出。 学习和推理都是通过密集的前馈计算和反向传播在整个图像时进行的。
- 这种方法无论是渐近还是绝对都是有效的,并且排除了对其他工作中的复杂性的需要。 Patchwise训练很常见[30,3,9,31,11],但缺乏完全卷积训练的效率。 我们的方法不利用预处理和后处理的复杂性,包括超像素[9,17],建议[17,15],或随机字段或本地分类的事后补充[9,17]。 我们的模型通过将分类网络重新解释为完全卷积和从他们学习的表示中进行微调,将最近在分类[22,34,35]中的成功转移到密集预测。 相比之下,以前的作品在没有受过监督的预训练的情况下应用了小型的网络[9,31,30]。
- 语义分割面临语义和位置之间的内在张力:全局信息解决了本地信息在何处解决的问题。 深度要素层次结构在非线性局部到全局金字塔中编码位置和语义。 我们定义了一个跳过架构,以利用这个特征谱,它结合了深度,粗略,语义信息和浅见的细节外观信息。
Related Work
- 我们的方法借鉴了最近成功的深度网络图像分类[22,34,35]和转移学习[5,41]。 首先在各种视觉识别任务[5,41],然后是检测,以及混合提案分类模型[12,17,15]中的实例和语义分割上证明了转移。 我们现在重新设计和调整分类网络,以直接,密集地预测语义分割。 我们绘制了FCN的空间,并在此框架中定位了历史和近期的先前模型。
- 据我们所知,Matan等人首先提出了将一个convnet扩展到任意大小的输入的想法。 [28],它扩展了经典的LeNet [23]以识别数字串。 因为他们的网络仅限于一维输入字符串。Matan等人使用Viterbi解码来获得它们的输出。 Wolf和Platt [40]将信号输出扩展为邮政地址块四个角的二维检测分数图。 这两部历史着作都完全进行了推理和学习,以便进行检测。 Ning等人[30]定义一个convnet用于线虫组织的粗多类分割,并进行完全卷积推理。
- 在当前的多层网络时代,也充分利用了卷积计算。 Sermanet等人的滑动窗口检测。 Pinheiro和Collobert [31]的语义分割,以及Eigen等人的图像恢复,做完全卷积推理。 完全卷积训练很少见,但Tompson等人有效地使用了它。 [38]学习端到端部分探测器和姿态估计的空间模型,尽管他们没有在这个方法上进行解释或分析。
- He等人[19]丢弃分类网的非卷积部分以制作特征提取器。 它们结合了提议和空间金字塔池,以产生一种用于分类的本地化,固定长度的特征。 虽然快速有效,但这种混合模式无法端到端地学习。
- 与现有方法不同,我们采用图像分类作为监督预训练,并通过完全卷积精细调整以完全从整个图像输入和整个图像地面检测中学习,从而适应和扩展深度分类架构。
- Hariharan等人[17] 和Gupta等人[15] 同样适用深层分类网络进行语义分割,但在混合提案 - 分类模型中这样做。 这些方法通过对检测,语义分割和实例分割的边界框和/或区域提议进行采样来调整R-CNN系统[12]。 这两种方法都不是端到端学习的。 他们分别在PASCAL VOC和NYUDv2上实现了最先进的分割结果,因此我们将第5节中的独立端到端FCN与其语义分割结果进行直接比较。
Fully Convolutional Networks
- Convnet中的每个数据层是大小为h×w×d的三维阵列,其中h和w是空间维度,d是特征或信道维度。 第一层是像素大小为h×w的图像,以及d个颜色通道。 较高层中的位置对应于它们路径连接的图像中的位置,这些位置称为它们的接收场。
- Convnet建立在转换不变性的基础之上。 它们的基本组件(卷积,池化和激活函数)在局部输入区域上运行,并且仅依赖于相对空间坐标。 在特定的层中我们将(i,j)处的数据向量表示为
,
表示后边紧跟的一层,该函数的计算公式如下:
- 其中k称为内核大小,s是步幅或子采样因子,
确定层类型:卷积或平均池的矩阵乘法,最大池的空间最大值,或激活函数的元素非线性,等等用于其他类型的图层。
- 这种功能形式在组合下维护,内核大小和步幅遵守转换规则:
- 虽然一般的深网络计算一般的非线性函数,但只有这种形式的层的网络计算非线性滤波器,我们称之为深层滤波器或完全卷积网络。 FCN自然地对任何大小的输入进行操作,并产生相应(可能重新采样的)空间维度的输出。
- 由FCN组成的实值损失函数定义任务。如果损失函数是最终层的空间维度的总和
,它的梯度将是每个空间分量的梯度之和。因此,在整个图像上计算的随机梯度下降将与
上的随机梯度下降相同,将所有最终层接收场视为小批量。当这些接收场显着重叠时,前馈计算和反向传播在整个图像上逐层计算而不是逐个补丁时更加高效。接下来我们将解释如何将分类网转换为完全卷积网,从而生成粗略的输出映射。 对于按像素预测,我们需要将这些粗略输出连接回像素。
- 典型的识别网络,包括LeNet,AlexNet及其更深层次的后继,表面上采用固定大小的输入并产生非空间输出。 这些网的完全连接的层具有固定的尺寸并且丢弃空间坐标。 然而,这些完全连接的层也可以被视为具有覆盖其整个输入区域的内核的卷积。 这样做会将它们转换为完全卷积网络,可以输入任何大小和输出分类图。
- 此外,虽然得到的映射等同于特定输入补丁上的原始网络的评估,但是计算在这些补丁的重叠区域上高度摊销。 例如,虽然AlexNet需要1.2毫秒(在典型的GPU上)来推断227×227图像的分类分数,但完全卷积网需要22毫秒才能从500×500图像产生10×10网格输出。这些卷积模型的空间输出图使它们成为语义分割等密集问题的自然选择。 由于每个输出单元都有地面实况,前向和后向通道都很简单,并且都利用了卷积的固有计算效率(和积极优化)。对于单个图像,AlexNet示例的相应后向时间为2.4 ms 对于完全卷积的10×10输出映射,37ms,导致类似于正向传递的加速。
- 虽然我们将分类网络重新解释为完全卷积产生任何大小的输入的输出映射,但输出维度通常通过二次取样来减少。 分类网络子样本可以保持过滤器的小型化和计算要求的合理性。 这使得这些网络的完全卷积版本的输出变粗,将其从输入的大小减小了等于输出单元的接收场的像素跨度的因子。
- 通过将输入的移位版本的输出拼接在一起,可以从粗略输出获得密集预测。如果输出被f因子下采样,则将输入x像素向右移动,向下移动y像素,对于每一个
。处理这些
输入中的每一个,并交错输出,使预测对应于其接收场中心的像素。
- 虽然进行这种转换只会使成本增加
,但是有一个众所周知的技巧可以有效地产生相同的结果[13,32],小波群体已知这种结果为“一种算法[27]”。 考虑具有输入步幅s的层(卷积或池),以及具有滤波器权重fij的后续卷积层(消除不相关的特征尺寸)。 将下层的输入步幅设置为1可将其输出上采样s倍。 然而,将原始滤波器与上采样输出进行卷积不会产生与移位和缝合相同的结果,因为原始滤波器仅看到其(现在是上采样的)输入的减少部分。 为了重现这个技巧,通过将其放大为稀疏滤波器。
- (i和j从零开始)。 再现该技巧的全净输出包括重复这个过滤器扩大层,直到所有子采样被移除。 (实际上,这可以通过处理上采样输入的子采样版本来有效地完成。)
- 减少网络中的二次取样是一种权衡:过滤器可以看到更精细的信息,但是接收场更小,计算时间更长。 移位和拼接技巧是另一种权衡:输出更密集而不降低滤波器的接收场尺寸,但是过滤器被禁止以比原始设计更精细的尺度访问信息。虽然我们已经用这个技巧做了初步实验,但我们并没有在我们的模型中使用它。 如上所述,我们通过上采样学习更有效和高效,特别是当与稍后描述的跳过层融合相结合时。
- 将粗略输出连接到密集像素的另一种方法是插值。 例如,简单的双线性插值通过线性映射计算来自最近的四个输入的每个输出
,该线性映射仅取决于输入和输出单元的相对位置。在某种意义上,使用因子
的上采样是卷积,其中分数输入步幅为
。 只要
是积分,因此上采样的自然方式是向后卷积(有时称为反卷积),其输出步幅为
。 这样的操作很难实现,因为它简单地反转了卷积的前向和后向通道。 因此,通过来自像素丢失的反向传播,在网络中执行上采样以进行端到端学习。注意,这种层中的去卷积滤波器不需要固定(例如,到双线性上采样),但可以学习。 一堆反卷积层和激活函数甚至可以学习非线性上采样。注意,这种层中的去卷积滤波器不需要固定(例如,到双线性上采样),但可以学习。 一堆反卷积层和激活函数甚至可以学习非线性上采样。
- 在随机优化中,梯度计算由训练分布驱动。 虽然它们的相对计算效率取决于重叠和小批量大小,但可以进行补片式训练和完全卷积训练以产生任何分布。 整个图像完全卷积训练与补片训练相同,其中每个批次包括低于图像(或图像集合)损失的单位的所有接收场。 虽然这比补丁的均匀采样更有效,但它减少了可能的批次数量。 然而,可以简单地恢复图像内的补丁的随机选择。 将损失限制为其空间项的随机采样子集(或者,等效地在输出和损失之间应用DropConnect掩码[39])从梯度计算中排除补丁。如果保留的补丁仍然具有显着的重叠,则完全卷积计算仍将加速训练。 如果在多个后向传递中累积渐变,则批次可以包括来自多个图像的补丁。补片训练中的采样可以纠正类不平衡[30,9,3]并减轻密集斑块的空间相关性[31,17]。 在完全卷积训练中,也可以通过加权损失来实现类平衡,并且可以使用损失采样来解决空间相关性。
Segmentation Architecture
- 我们将ILSVRC分类器转换为FCN,并通过网内上采样和像素丢失来增强它们的密集预测。 我们通过微调来训练分割。 接下来,我们在图层之间添加跳过以融合粗糙,语义和本地的外观信息。 这种跳过架构是端到端学习的,以重新确定输出的语义和空间精度。在本次调查中,我们对PASCAL VOC 2011细分挑战进行了培训和验证[8]。 我们使用每像素多项逻辑损失进行训练,并使用联合上的平均像素交点的标准度量进行验证,其中包括所有类的平均值,包括背景。 训练忽略了在基本事实中被掩盖的像素(模糊或困难)。
我们首先对第3节中经过验证的分类架构进行卷积分析。我们认为AlexNet3架构[22]赢得了ILSVRC12,以及VGG网络[34]和GoogLeNet4 [35],它们在ILSVRC14中表现非常出色。我们选择VGG 16层net5,我们发现这相当于此任务的19层网络。对于GoogLeNet,我们仅使用最终损失层,并通过丢弃最终平均池层来提高性能。我们通过丢弃最终的分类层来斩首每个网络,并将所有完全连接的层转换为卷积。我们附加一个带有通道尺寸21的1×1卷积来预测每个粗略输出位置的每个PASCAL类(包括背景)的分数,然后是反卷积层,以粗略地将粗略输出上采样到像素密集输出。
- 从分类到分段的微调为每个网络提供了合理的预测。 即使是最糟糕的型号也能达到最先进性能的75%。 配备分割的VGG网(FCN-VGG16)在val上已经达到了56.0平均IU的最新水平,而在测试[17]时为52.6。 对额外数据的培训将FCN-VGG16提升至59.4意味着IU和FCN-AlexNet在val7的子集上为48.0意味着IU。 尽管类似的分类准确性,但我们对GoogLeNet的实现与VGG16分割结果不匹配。
- 我们首先通过从16像素步幅层预测将输出步幅分成两半。 我们在pool4的顶部添加1×1卷积层以产生其他类预测。 我们将此输出与在步幅32处在conv7(卷积化fc7)之上计算的预测融合,通过添加2x上采样层并对这两个预测求和(参见图3)。 我们将2x上采样初始化为双线性插值,但允许按照第3.3节中的描述学习参数。 最后,将步幅16预测上采样回到图像。 我们称之为FCN-16网。 FCN-16是端到端学习的,用最后一个较粗的网络参数初始化,我们现在称之为FCN-32。 作用于pool4的新参数初始化为零,因此网络以未经修改的预测开始。 学习率降低了100倍。
- 学习这个跳过网可以将验证集上的性能提高3.0平均IU到62.4。 图4显示了输出结构的改进。 我们将这种融合与仅从pool4层学习进行了比较,这导致了性能不佳,并且在不添加跳过的情况下简单地降低了学习率,这导致在不提高输出质量的情况下提高了性能。
- 我们通过融合pool3的预测和融合pool4和conv7的2x预测,建立网络FCN-8,继续这种方式。 我们获得了62.7平均IU的微小额外改进,并且我们的输出的平滑度和细节略有改善。 在这一点上,我们的融合改进已经满足了收益递减,无论是在强调大规模正确性的IU度量方面,还是在可见的改进的中间点,例如, 在图4中,所以我们不会继续融合更低层。
Conclusion
- 完全卷积网络是一类丰富的模型,其中现代分类网络是一种特殊情况。 认识到这一点,将这些分类网络扩展到分段,并通过多分辨率层组合改进架构,大大提高了现有技术水平,同时简化并加速了学习和推理。