原作:Fisher Yu, Princeton University; Vladlen Koltun ,Intel Labs
翻译:一梦轻尘
原文链接:Multi-Scale Context Aggregation by Dilation Convolutions
最先进的语义分割模型是基于卷积网络的适应性,而卷积网络最初是为图像分类而设计的。但是,语义分割等密集预测问题在结构上与图像分类不同。在这项工作中,我们开发了一个新的卷积网络模块,专门设计用于密集预测。所提出的模块采用扩张性卷积方法(空洞卷积)系统地聚合多尺度上下文信息而不丢失分辨率。这种架构基于这样一个事实:膨胀的卷积支持感受野的指数扩张,而不会丢失分辨率或覆盖率。我们证明所提供的上下文模块提高了最先进的语义分割系统的准确性。此外,我们还研究了图像分类网络对密集预测的适应性,并表明简化适应网络可以提高准确性。
计算机视觉中的许多自然问题都是密集预测的实例。目标是为图像中的每个像素计算一个离散或连续的标签。一个突出的例子是语义分割,它要求将每个像素划分为给定的一组类别。语义分割具有挑战性,因为它需要将像素级精度与多尺度上下文推理相结合。
最近,通过使用逆向传播训练的卷积网络获得了语义分割的显著精度提高。Long等(2015)的研究表明,原本用于图像分类的卷积网络架构可以成功地用于密集预测。这些被报道的网络在挑战语义分割基准方面远远超过了先前的技术水平。这就引出了图像分类和密集预测之间的结构差异所引发的新问题。重构网络的哪些方面是真正必要的,哪些方面在密集操作时会降低准确性?专为密集预测设计的专用模块能进一步提高准确性吗?
现代图像分类网络通过连续的池化和下采样层集成了多尺度上下文信息,降低了分辨率,直到获得全局预测。相反,密集的预测需要多尺度上下文推理和全分辨率输出。最近的工作研究了两种处理多尺度推理和全分辨率密集预测冲突需求的方法。一种方法涉及重复的上卷积,目的是在从下采样层进行全局透视时恢复丢失的分辨率。这就产生了一个问题,即严格的中间下采样是否真的有必要。另一种方法是提供多个重新扫描的图像作为网络输入,并结合对这些多输入的预测。同样,目前还不清楚是否真的有必要对重新扫描的输入图像进行单独分析。
在这项工作中,我们开发了一个卷积网络模块,可以聚合多尺度的上下文信息,而不会丢失分辨率或分析重新缩放的图像。 该模块可以任何分辨率插入现有架构。 与从图像分类中延续的金字塔形结构不同,所呈现的上下文模块专门用于密集预测。 它是一个由卷积层组成的矩形棱镜,没有池化或子采样。 该模块基于扩张的卷积,其支持感受野的指数扩展而不损失分辨率或覆盖范围。
作为这项工作的一部分,我们还重新研究了基于语义分割的图像分类网络的性能。越来越复杂的系统,包括结构化预测、多列体系结构、多训练数据集和其他扩展,可能会无意中掩盖核心预测模块的性能。因此,我们研究了深度图像分类网络在受控设置中的主要适应性,并去除阻碍密集预测性能的退化成分。结果是一个初始预测模块,比先前的适应性更简单、更准确。
通过对Pascal VOC 2012数据集的控制实验,使用简化的预测模块对所给出的上下文网络进行评价。实验表明,将上下文模块插入现有的语义分割体系结构中能够可靠地提高其准确性。
定义:F:Z^2→R是一个离散函数,定义→R是一个离散滤波器,大小为,离散卷积算子∗可以被定义为:
我们现在推广这个算子。让l是一个扩张的因素,让∗l被定义为:
我们将使用∗l代表空洞卷积或l-dilated卷积。熟悉的离散卷积∗只是1-dilated卷积。
膨胀卷积算子过去被称为“膨胀滤波器的卷积”。它在小波分解算法中起着关键作用。我们用“膨胀卷积”来代替“与膨胀滤波器卷积”来解释没有构造或表示“膨胀过滤器”。卷积运算符本身被修改为以不同的方式使用过滤参数。膨胀的卷积算子可以用不同的膨胀因子在不同的范围内应用相同的滤波器。我们的定义反映了膨胀卷积算子的正确实现,它不需要构造膨胀滤波器。
在最近关于语义分割的卷积网络的工作中,Long等人分析过滤器膨胀,但选择不使用它。 陈等人使用扩张来简化Long等人的架构。相比之下,我们开发了一种新的卷积网络架构,该架构系统地使用扩散卷积进行多尺度上下文聚合。
我们的体系结构的动机是,扩张的卷积支持指数扩展的感受野,而不会丢失分辨率或覆盖范围。设F0,F1,...,Fn-1:Z^2→R为离散函数,设k0,k1,...,kn-2:Ω1→R是离散的3×3滤波器。考虑应用指数增加膨胀的滤波器:
将中元素p的感受野定义为F 0中修改(p)值的元素集。 令中p的感受野的大小为这些元素的数量。 很容易看出中每个元素的感受野的大小是。感受野是指数增大的平方。这在图1中说明。
图1:系统扩张支持感受野的指数扩张而不会损失分辨率或覆盖范围。(a)F 1由F 0通过1扩张卷积产生; F 1中的每个元素具有3×3的感受野。(b)F 2由F 1通过2扩张卷积产生; F 2中的每个元素具有7×7的感受野。(c)F 3由F 2通过4扩张卷积产生; F 3中的每个元素具有15×15的感受野。与每个层相关联的参数数量是相同的。感受野呈指数增长,而参数数量呈线性增长。
上下文模块旨在通过聚合多尺度上下文信息来提高密集预测体系结构的性能。该模块将C要素图作为输入,并生成C要素图作为输出。 输入和输出具有相同的形式,因此模块可以插入现有的密集预测体系结构中。
我们从描述上下文模块的基本形式开始。在这个基本形式中,每个层都有C通道。每个层的表示都是相同的,可以直接获得每个类的密集预测,虽然特征映射不是标准化的,并且在模块内部没有定义损失。直觉上,该模块可以通过将特征映射传递给公开上下文信息的多个层来提高其准确性。
基本上下文模块有7个层,应用3×3卷积和不同的膨胀因子。扩张是1 1 12 4 8 16和 1。每个卷积操作在所有层:严格地说,这些都是3×3×C运算与扩张的两个维度。每一个卷积后面都有一个点截断最大值(·,0)。最后一层执行1×1×C卷积和产生输出模块。表1总结了该体系结构。注意,前端模块提供的输入上下文网络在我们的实验中产生的特征图谱分辨率为64×64。因此,在第六层之后,我们停止了感受野的指数扩张。
我们最初训练上下文模块的尝试并没有提高预测精度。实验表明,标准的初始化过程并不支持模块的训练。卷积网络通常使用随机分布的样本进行初始化(Glorot & Bengio, 2010;Krizhevsky et al .,2012;Simonyan &Zisserman,2015)。然而,我们发现随机初始化方案对上下文模块无效。我们发现一个具有清晰语义的替代初始化更有效:
其中a为输入featuremap的索引,b为输出map的索引。这是身份初始化的一种形式,最近被提倡用于周期性网络(Le et al., 2015)。这个初始化设置了所有的过滤器,以便每个层都可以直接将输入传递给下一个。一个自然的问题是,这种初始化可能会使网络处于一种模式,在这种模式中,反向传播不能显著改善简单地传递信息的默认行为。然而,实验表明事实并非如此。反向传播可以可靠地获取网络提供的上下文信息,从而提高处理后的地图的准确性。
表1:上下文网络架构。网络通过聚合上下文信息来处理C特征映射,并在不丢失分辨率的情况下逐步增加规模。
这就完成了基本上下文网络的表示。我们的实验表明,即使是这个基本模块也可以在定量和定性上提高稠密预测的精度。尤其引人注目的网络参数:≈64 c两个参数。
我们还培训了一个更大的上下文网络,在更深层使用更多的特征映射。表1总结了大型网络中的地图数量。我们概括了初始化方案,以解释不同层中feature map的数量差异。让c i和c i+1是两个连续层的featuremap的数量。假设C同时除以C i和C i+1。初始化是
这里ε∼N(0,)和σ< 我们实现并培训了一个前端预测模块,该模块以彩色图像作为输入,生成C = 21 feature maps作为输出。前端模块遵循Longet al.(2015)和Chen etal.(2015a)的工作,但单独实施。我们采用vgg16网络(Simonyan & Zisserman, 2015)进行了密集预测,并删除了最后两个池化层和跨越层。具体地说,每个池化层和跨越层都被删除,所有后续层的卷积都被每一个衰减的池化层的2倍放大。因此,最终层中的卷积(在两个被分割的池化层之后)被放大了4倍。这允许使用原始分类网络的参数进行初始化,但会产生高分辨率的输出。前端模块需要填充图像作为输入,并生成特征图谱分辨率64×64。我们使用反射填充:缓冲区域通过反射每个边缘的图像来填充。 我们的前端模块是通过去除对密集预测起反作用的分类网络的残余来获得的。最重要的是,我们完全删除了最后两个池化层和跨越层,而Long等人保留了它们,Chen等人用扩展替换了跨越层,但保留了池化层。我们发现通过删除池化层简化网络使其更加准确。我们还删除了中间特性映射的填充。在原始的分类网络中使用了中间填充,但在稠密时既不需要也不合理。 该简化的预测模块经过Pascal VOC 2012训练集训练,由Hariharan等(2011)所创建的注释扩充。我们没有使用来自VOC-2012验证集的图像进行训练,因此只使用了Hariharan等人(2011)的注释的一个子集。训练是由随机梯度下降法(SGD)mini-batch 大小为14,学习速率,动量0.9。该网络经过60K次迭代训练。 现在我们将前端模块的精度与Long et al.(2015)的FCN-8s设计和Chen et al. (2015a)的DeepLab网络进行比较。对于FCN-8s和DeepLab,我们评估了原始作者在vocs -2012年训练的公共模型。图2显示了来自voc2012数据集的不同模型对图像的分割。vocs -2012测试集上模型的精度如表2所示。 我们的前端预测模块比之前的模型更简单、更准确。具体来说,我们的简化模型在测试集上比FCN-8s和DeepLab网络都要高出5个百分点。有趣的是,我们简化的前端模块在测试集上超过了一个百分点(67.6% vs. 66.4%),而没有使用CRF,在测试集上的领先优势超过一个百分点(67.6% vs. 66.4%)。 图2:基于vgg-16分类网络的不同修改所产生的语义分割。从左到右:(a)输入图像,(b)通过fcn - 8s(Long等人,2015年)的预测,(c)DeepLab(Chen等人,2015a)的预测,(d)通过简化的前端模块,(e)基本真值的预测。 表2:我们的前端预测模块比之前的模型更简单、更准确。此表报告vocs -2012测试集的准确性。 我们的实现基于Caffe库(Jia etal., 2014)。我们对膨胀卷积的实现现在是stanfardCaffe发行版的一部分。 为了与最近的高性能系统进行公平的比较,我们训练了一个前端模块,它的结构与第4节中描述的相同,但是训练了来自Microsoft COCO数据集的其他图像(Linet al., 2014)。我们使用了Microsoft COCO中的所有图像,其中至少有一个来自vocs -2012类别的对象。来自其他类别的带注释的对象被视为背景。 训练分为两个阶段。在第一阶段,我们一起学习了vocs -2012和MicrosoftCOCO image。训练由SGD执行,min-batch14和动量0.9。进行学习速率为的100 k次迭代和学习速率为的40 k次后续迭代。在第二阶段,我们只对vocs -2012图像进行了微调。微调了50 k次迭代,学习速率为。来自VOC-2012验证集的图像不用于训练。 本程序训练的前端模块在vocs -2012验证集中达到69.8%的平均IoU,在测试集中达到71.3%的平均IoU。请注意,这种精度仅通过前端实现,没有上下文模块或结构化预测。我们再次将这种高精确度部分归因于去除最初用于图像分类而不是密集预测的多余成分。 上下文聚合的受控评估。我们现在进行控制实验,以评估第3节中介绍的上下文网络的效果。我们首先将两个上下文模块(基本的和大型的)插入前端。由于上下文网络的接受域是67 67,所以我们用宽度为33的缓冲区来填充输入特性图。在我们的实验中,零填充和反射填充产生了相似的结果。上下文模块接受来自前端的特性映射作为输入,并在训练期间提供此输入。在我们的实验中,上下文模块和前端模块的联合训练没有取得显著的改进。学习速率设置为。训练按照第3节的描述进行了初始化。 表3显示了将上下文模块添加到三个不同的体系结构中进行语义分割的效果。第一个体系结构(顶部)是第4部分中描述的前端。它执行语义分割而不进行结构化预测,类似于Long et al.(2015)的原始工作。第二个体系结构(表3,中间)使用密集的CRF进行结构化预测,类似于Chen等人的系统(2015a)。我们使用Krahenbuhl& Koltun(2011)的实现,在验证集上通过网格搜索训练CRF参数。第三个架构(表3,底部)使用CRF- rnn进行结构化预测(Zhenget al.,2015)。我们利用Zheng等(2015)的实施,对CRF-RNN进行各条件的训练。 实验结果表明,上下文模块提高了三种配置的准确性。基本上下文模块增加了每个配置的准确性。大上下文模块增加了更大的精确度。实验表明,上下文模块和结构化预测是协同的:无论后续的结构化预测是否进行,上下文模块都提高了准确性。定性结果如图3所示。 对测试集进行评估。我们现在对测试集进行评估,将我们的结果提交给Pascal VOC 2012评估服务器。结果见表4。我们在这些实验中使用大上下文模块。正如结果所示,上下文模块在前端的准确性上有了显著提高。单是上下文模块,没有后续的结构化预测,其性能就超过了DeepLab-CRF-COCO-LargeFOV (Chen et al., 2015a)。具有密集CRF的上下文模块使用Krahenbuhl & Koltun(2011)的原始实现,其性能与最近的CRF- rnn (Zheng et al., 2015)相当。与CRF-RNN结合的上下文模块进一步提高了CRF-RNN的性能。 我们已经研究了卷积网络结构的密集预测。由于模型必须产生高分辨率的输出,我们认为高分辨率的操作在整个网络中是可行和可取的。我们的研究表明,扩张的卷积运算符特别适合于密集的预测,因为它能够在不丢失分辨率或覆盖的情况下扩展接收域。我们使用了扩展的卷积来设计一种新的网络结构,这种结构可以在现有的语义分割系统中可靠地提高准确性。作为这项工作的一部分,我们还展示了通过去除用于图像分类的残留成分,可以提高现有的卷积网络在语义分割中的准确性。 我们认为,所提出的工作是朝着不受图像分类前体约束的密集预测的专用体系结构迈出的一步。随着新的数据来源的出现,未来的体系结构可能会被训练成密集的端到端,从而消除了对图像分类数据集进行预处理的需要。这可能使体系结构简化和统一。具体来说,端到端密集训练可以使完全密集的体系结构(类似于所提供的上下文网络)在整个过程中以全分辨率运行,接受原始图像作为输入,并以全分辨率生成密集的标签分配作为输出。最新的语义分割系统为未来的发展留下了巨大的空间。我们最精确的配置的失败案例如图4所示。我们将发布我们的代码和经过训练的模型来支持这一领域的进展。 图3:不同模型产生的语义分割。从左到右:(a)输入图像,(b)前端模块预测,(c)大上下文网络插入前端预测,(d)前端预测+上下文模块+ CRF-RNN, (e)背景实值。 表3:对上下文模块对三种不同架构进行语义分割的准确性的控制评价。在vocs -2012验证系统上进行的实验没有使用验证图像进行训练。顶部:在没有结构化预测的语义分割前端添加上下文模块(Longetal.,2015)。基本上下文模块增加了准确性,大模块增加了更大的优势。中间:当插入前端+密集CRF配置时,上下文模块增加了准确性(Chen et al.,2015a)。底部:当插入前端+CRF-RNN配置时,上下文模块增加了准确性(Zheng et al.,2015)。 表4:voca -2012测试集评价。‘DeepLab+++’代表DeepLab- crf - coco - largefov,‘DeepLab- msc ++’代表DeepLab-mscf - crf - largefov - co - crossjoint (Chen et al.,2015a)。“CRF-RNN”是郑等人(2015)的系统。“Context”是指插入到前端的大型上下文模块。上下文网络提供了非常高的精度,我们在不执行结构化预测的情况下执行了DeepLab++架构。结合上下文网络与CRF-RNN结构预测模块,提高了CRF-RNN系统的准确性。 图4:vocs -2012验证集的失败案例。我们训练的最精确的架构(Context + CRF-RNN)在这些图像上的表现很差。 (PS:小弟第一次翻译深度学习论文,如有错误,恳请不吝赐教) 4前端
5实验
6.结论