Pyramid Scene Parsing Network------2017年CVPR论文翻译解读

Pyramid Scene Parsing Network**

金字塔场景解析网络

Abstract

对于无限制的开放词汇和多样化的场景,场景解析具有挑战性。 在本文中,我们通过金字塔池模块以及拟议的金字塔场景解析网络(PSPNet)通过基于不同区域的上下文聚合来利用全局上下文信息的功能。 我们的全局先验表示可有效地在场景解析任务上产生高质量的结果,而PSPNet为像素级预测提供了一个出色的框架。 所提出的方法可以在各种数据集上实现最新的性能。 它在ImageNet 2016场景解析挑战赛,PASCAL VOC 2012基准测试和Cityscapes基准测试中排名第一。 单个PSPNet在PASCAL VOC 2012上的mIoU准确度达到85.4%,在Cityscapes上的准确度达到80.2%的新记录。

1.Introduction

基于语义分割的场景解析是计算机视觉中的基本主题。 目标是为图像中的每个像素分配一个类别标签。 场景解析可提供对场景的完整理解。 它可以预测每个元素的标签,位置和形状。 对于自动驾驶,机器人感应等潜在应用,该主题引起了广泛兴趣。

场景解析的难度与场景和标签的多样性密切相关。先进的场景解析任务[23]是对LMO数据集上的2688张图像分类33个场景[22]。 最新的PASCAL VOC语义分段和PASCAL上下文数据集[8,29]包括更多具有相似上下文的标签,例如椅子和沙发,马和牛等。新的ADE20K数据集[43]是最具挑战性的数据集,具有较大的 不受限制的开放词汇和更多场景类别。 一些代表性的图像如图1所示。要为这些数据集开发有效的算法,需要克服一些困难。

最新的场景解析框架主要基于全卷积网络(FCN)[26]。**基于深度卷积神经网络(CNN)的方法增强了对动态对象的理解,但考虑到各种场景和不受限制的词汇量仍然面临挑战。**一个示例在图2的第一行中显示,其中船被误认为是汽车。这些错误是由于对象的外观相似。但是,当在场景被描述为河流附近的船屋之前查看有关上下文的图像时,应得出正确的预测。

为了实现准确的场景感知,知识图依赖于场景上下文的先验信息。我们发现当前基于FCN的模型的主要问题是缺乏合适的策略来利用全局场景类别线索。**对于典型的复杂场景理解,以前为了获得全局图像级特征,空间金字塔池[18]被广泛采用,统计数据为整体场景解释提供了良好的描述符。**空间金字塔池网络[12]进一步增强了能力。

与这些方法不同,为了合并适当的全局功能,我们提出了金字塔场景解析网络(PSPNet)。除了用于像素预测的传统膨胀FCN [3,40],我们还将像素级功能扩展到了专门设计的全局金字塔池。本地和全球线索共同使最终预测更加可靠。我们还提出了在损失受到严格监督的情况下的优化策略。我们提供了所有实现细节,这些细节对于本文中的出色表现至关重要,并且使代码和经过训练的模型公开可用1。

我们的方法可在所有可用数据集上实现最先进的性能。它是ImageNet场景解析挑战赛2016的冠军[43],在PASCAL VOC 2012语义分割基准测试中排名第一[8],在城市场景Cityscapes数据上排名第一[6]。他们表明,PSPNet为像素级预测任务提供了一个有前途的方向,在后续工作中甚至可能有益于基于CNN的立体匹配,光流,深度估计等。我们的主要贡献是三方面的。

1.我们提出了金字塔场景解析网络,以将困难的场景上下文特征嵌入基于FCN的像素预测框架中。

2.我们基于深度监督的损失为深度ResNet [13]开发了有效的优化策略。

3.我们构建了一个用于最新场景解析和语义分割的实用系统,其中包括了所有关键的实现细节。

2. Related Work

在下文中,我们回顾了场景解析和语义分割任务的最新进展。在强大的深层神经网络[17、33、34、13]的驱动下,像素级预测任务(例如场景解析和语义分割)通过用卷积层替换分类中的全连接层[26]而获得了巨大的进步。为了扩大神经网络的接受范围,[3,40]的方法使用了膨胀卷积。 Noh等[30]提出了一种具有反卷积网络的从粗到细的结构来学习分割掩码。我们的基准网络是FCN和膨胀网络[26,3]。

其他工作主要在两个方向进行。一个方向[26,3,5,39,11]具有多尺度特征集合。由于在深度网络中,高层特征包含更多的语义含义和较少的位置信息。组合多尺度功能可以提高性能。

另一个方向是基于结构预测。开拓者的工作[3]使用条件随机场(CRF)作为后处理来细化分割结果。以下方法[25、41、1]通过端到端建模精炼了网络。这两个方向都改善了场景解析的定位能力,其中预测的语义边界适合对象。但是,在复杂场景中仍有很大的空间来利用必要的信息。

为了充分利用全局图像级别的先验知识来进行各种场景理解,[18,27]的方法从传统的非深度神经网络中提取了具有传统特征的全局上下文信息。 在对象检测框架下进行了类似的改进[35]。 刘等[24]证明了用FCN进行全局平均池化可以改善语义分割结果。 但是,我们的实验表明,对于具有挑战性的ADE20K数据,这些全局描述符的代表性不足。 因此,与[24]中的全局池化不同,我们通过金字塔场景解析网络通过基于不同区域的上下文聚合来利用全局上下文信息的能力。

3.Pyramid Scene Parsing Network

在将FCN方法应用于场景解析时,我们将从对代表性故障案例的观察和分析开始。 它们激发了我们的金字塔池化模块作为有效全球背景的建议。 然后,我们描述了图3中所示的金字塔场景解析网络(PSPNet),以提高复杂场景解析中开放语音对象和东西识别的性能。

3.1Important Observations

新的ADE20K数据集[43]包含150个填充/对象类别标签(例如,墙壁,天空和树木)和1,038个图像级场景描述符(例如,机场航站楼,卧室和街道)。 因此,大量的标签和广阔的场景出现了。 检查[43]中提供的FCN基线的预测结果,我们总结了复杂场景解析的几个常见问题。

Mismatched Relationship关系不匹配 上下文关系是普遍且重要的,尤其是对于复杂的场景理解。 存在并发的视觉模式。 例如,飞机可能不在跑道上而在跑道上或在空中飞行。 对于图2中的第一行示例,FCN根据其外观将黄色框中的船预测为“汽车”。 但是,众所周知的是,很少有汽车在河上。 缺乏收集上下文信息的能力会增加分类错误的可能性。

Confusion Categories混淆类别 ADE20K数据集[43]中有许多类标签对,它们在分类上令人困惑。 例如田野和大地。 山和丘陵;墙壁,房屋,建筑物和摩天大楼。 它们具有相似的外观。 如[43]中所述,标记整个数据集的专家注释者仍会产生17.60%的像素错误。在图2的第二行中,FCN预测框中的对象是摩天大楼和建筑物的一部分。 这些结果应排除在外,以便整个对象是摩天大楼或建筑物,但不能同时是两者。 可以通过利用类别之间的关系来解决此问题。

Inconspicuous Classes不显眼的类别 场景包含任意大小的对象/东西。 虽然很重要,但很难找到一些小物件,例如路灯和招牌。 相反,大物体或东西可能超出FCN的接受范围,从而导致不连续的预测。 如图2的第三行所示,枕头具有与床单相似的外观。 忽略全局场景类别可能无法解析枕头。 为了提高大小物体的性能,应该特别注意包含不显眼类别的东西的不同子区域。

总结这些观察,许多错误部分或完全与上下文关系和针对不同接受领域的全局信息有关。 因此,具有合适全局场景级先验的深层网络可以大大提高场景解析的性能
在这里插入图片描述
图2.我们在ADE20K [43]数据集上观察到的场景解析问题。 第一行显示了关系不匹配的问题-汽车比船很少在水上。 第二行显示混淆类别,其中“建筑”类别容易被混淆为“摩天大楼”。第三行显示不显眼的类别。 在这个例子中,枕头在颜色和质地上与床单非常相似。 这些不起眼的对象很容易被FCN错误分类。

3.2. Pyramid Pooling Module**

通过上面的分析,我们在下面介绍金字塔池化模块,该模块在经验上证明是有效的全局上下文先验。

在一个深层的神经网络中,感受野的大小可以粗略地表明我们使用上下文信息的程度。尽管从理论上说,ResNet [13]的感受野已经大于输入图像,但Zhou等人的研究表明。 [42] CNN的经验接受域要比理论上小得多,特别是在高层次上。 这使得许多网络无法充分融合先前的重大全球形势。 我们通过提出有效的全球优先代表权来解决这个问题。

**全局平均池化是全局上下文先验的良好基准模型,通常用于图像分类任务[34,13]。**在[24]中,它已成功地应用于语义分割。但是对于ADE20K [43]中的复杂场景图像,该策略不足以覆盖必要的信息。这些场景图像中的像素会标注许多东西和物体。直接将它们融合以形成单个矢量可能会失去空间关系并引起歧义。在这方面,全局上下文信息以及次区域上下文有助于区分各种类别。一个更强大的表示形式可以是来自不同子区域的信息与这些接受域的融合。在场景/图像分类的经典著作[18,12]中也得出了类似的结论。

在[12]中,由金字塔池生成的不同级别的特征图最终被平坦化和连接起来,以馈入一个完全连接的层中进行分类。该全局先验设计用于消除CNN的固定大小约束,以进行图像分类。为了进一步减少不同子区域之间的上下文信息丢失,我们提出了一个分层的全局先验,其中包含具有不同规模和不同子区域之间变化的信息。我们将其称为金字塔池模块,用于在深度神经网络的最终层特征图上进行全局场景事前构造,如图3(c)所示。

**金字塔池模块融合了四个不同金字塔比例下的要素。**用红色突出显示的最粗糙的级别是全局池,以生成单个bin输出。接下来的金字塔等级将要素地图划分为不同的子区域,并为不同位置形成汇总表示。**金字塔池模块中不同级别的输出包含大小各异的要素图。为了保持全局特征的权重,如果金字塔的级别大小为N,则在每个金字塔级别之后使用1×1卷积层将上下文表示的尺寸减小到原始视图的1 / N。**然后,直接对低层尺寸特征图通过双线性插值获得与原始特征图相同的尺寸特征。最后,将不同级别的特征串联在一起作为最终的金字塔池全局特征。

注意,金字塔等级的数量和每个等级的大小都可以修改。它们与馈入金字塔池层的要素地图的大小有关。该结构通过在几个步骤中采用大小可变的池化内核来抽象出不同的子区域。因此,多级内核在表示上应该保持合理的差距。我们的金字塔池模块是一个四级模块,**其bin大小分别为1×1、2×2、3×3和6×6。**对于最大值和平均值之间的合并操作类型,我们进行了广泛的实验以显示5.2节中的差异。
在这里插入图片描述
图3.我们提议的PSPNet概述。 给定输入图像(a),我们首先使用CNN获取最后一个卷积层(b)的特征图,然后应用金字塔解析模块来收获不同的子区域表示,然后进行上采样和串联层以形成 最终特征表示,它承载(c)中的本地和全局上下文信息。 最后,将该表示馈入卷积层以获得最终的每像素预测(d)。

3.3. Network Architecture

借助金字塔池模块,我们提出了如图3所示的金字塔场景解析网络(PSPNet)。给定图3(a)的输入图像,我们使用具有扩展网络策略的预训练ResNet [13]模型[ 3,40]提取特征图。最终的特征图大小为输入图像的1/8,如图3(b)所示。在地图顶部,我们使用(c)中所示的金字塔池模块来收集上下文信息。使用我们的4级金字塔,合并内核覆盖图像的整个,一半和一小部分。它们被融合为全球先例。然后,在(c)的最后部分将先验与原始特征图连接起来。然后是卷积层,以生成(d)中的最终预测图。

**为了解释我们的结构,PSPNet为像素级场景解析提供了有效的全局上下文先验。**金字塔池模块可以收集信息级别,比全局池更具代表性[24]。在计算成本方面,与最初的FCN网络相比,我们的PSPNet没有太大增加。在端到端学习中,可以同时优化全局金字塔池模块和本地FCN功能。

在这里插入图片描述
图4. ResNet101中辅助loss的图示。 每个蓝色框表示一个残差块。 辅助loss在res4b22残差阻止后添加。

4.Deep Supervision for ResNet-Based FCN**

深度的预训练网络可以带来良好的性能[17,33,13]。然而,网络深度的增加可能会引入额外的优化困难,如[32,19]中所示的图像分类。 ResNet通过在每个块中跳过连接来解决此问题。深入的ResNet的后期层主要根据先前的残差学习残差。

相反,我们建议通过监督来产生初始结果,并带来额外的损失,然后再通过最终损失来学习残差。因此,将深度网络的优化分解为两个,每个问题都更易于解决。

图4中显示了我们受严格监督的ResNet101 [13]模型的示例。除了使用softmax损失来训练最终分类器的主分支外,在第四阶段之后使用了另一个分类器,即res4b22残差块。与中继反向传播[32]将反向辅助损耗阻止到几个浅层不同,我们让两个损耗函数通过所有先前的层。辅助损失有助于优化学习过程,而主分支损失承担最大责任。我们增加重量以平衡辅助损失。

在测试阶段,我们放弃了该辅助分支,而仅使用经过优化的主分支进行最终预测。这种基于ResNet的FCN的深入监督的培训策略在不同的实验设置下广泛有用,并且可以与预训练的ResNet模型一起使用。这体现了这种学习策略的普遍性。第5.2节提供了更多详细信息。

5.Experiments

我们提出的方法成功地解决了场景解析和语义分割难题。 我们在本节中对三个不同的数据集进行评估,包括ImageNet场景解析挑战2016 [43],PASCAL VOC 2012语义分割[8]和城市场景理解数据集Cityscapes [6]。

5.1. Implementation Details

对于实用的深度学习系统,魔鬼永远是细节。 我们的实现基于公共平台Caffe [15]。 受[4]的启发,我们使用“多元”学习率策略,其中当前学习率等于基数乘以在这里插入图片描述
我们将基本学习率设置为0.01, power设置为0.9。 通过增加迭代次数可以提高性能,对于ImageNet实验,迭代次数设置为150K,对于PASCAL VOC设置为30K,对于Cityscapes设置为90K。 动量和重量衰减分别设置为0.9和0.0001。 对于数据增强,我们对所有数据集采用随机镜像和0.5到2之间的随机调整大小,并在-10和10度之间添加随机旋转,并为ImageNet和PASCAL VOC添加随机高斯模糊。 这种全面的数据扩充方案使网络能够抵抗过度拟合。 我们的网络包含下面的膨胀卷积[4]。

在实验过程中,我们注意到适当大的“ cropsize”可以产生良好的性能,而批处理规范化[14]层中的“ batchsize”非常重要。 由于GPU卡上的物理内存有限,我们在训练过程中将“批大小”设置为16。为此,我们将[37]中的Caffe与分支[4]一起修改,并使其支持基于多个GPU收集的数据的批量归一化 在OpenMPI上。 对于辅助损失,我们在实验中将权重设置为0.4。

在这里插入图片描述
表1.不同设置的PSPNet调查。 基线是具有扩展网络的基于ResNet50的FCN。 “ B1”和“ B1236”分别表示大小为{1×1}和{1×1,2×2,3×3,6×6}的合并特征图。 “ MAX”和“ AVE”分别代表最大池化和平均池化操作。 “ DR”表示缩小尺寸是在合并后进行的。 使用单标度输入在验证集上测试结果。

5.2. ImageNet Scene Parsing Challenge 2016**

数据集和评估指标ADE20K数据集[43]用于ImageNet场景解析挑战2016。与其他数据集不同,ADE20K对于多达150个类别和各种场景(总共1,038个图像级标签)更具挑战性。挑战数据被分为20K / 2K / 3K图像进行训练,验证和测试。此外,它还需要解析场景中的对象和事物,这使其比其他数据集更加困难。为了进行评估,同时使用了像素级精度(Pixel Acc。)和类联合相交的均值(Mean IoU)。

PSPNet的消融研究为了评估PSPNet,我们使用多种设置进行实验,包括最大和平均值的合并类型,仅具有一个全局特征或四级特征的合并,以及在合并操作之后和并置之前是否进行尺寸缩减。如表1所示,在所有设置中,平均池比最大池更好。金字塔解析池的性能优于使用全局池的池。随着尺寸的减小,性能进一步提高。使用我们提出的PSPNet,最佳设置的平均IoU和Pixel Acc的结果为41.68 / 80.04。 (%),超过Liu等人的构想,超过了全球平均池40.07 / 79.52。 [24]被1.61 / 0.52取代。与基线相比,PSPNet的绝对改善值优于4.45 / 2.03,相对差异值则高于11.95 / 2.60。

辅助损失的消融研究引入的辅助损失有助于优化学习过程,同时不影响主分支中的学习。我们尝试将辅助损失权重α设置在0到1之间,并将结果显示在表2中。基线使用具有扩展网络的基于ResNet50的FCN,并使用主分支的softmax损失进行优化。添加辅助损耗分支α= 0.4可获得最佳性能。在平均IoU和像素Acc方面,它的性能比基线提高了1.41 / 0.94。 (%)。我们相信,随着新的增加的辅助损耗,更深层的网络将受益更多。

预训练模型的消融研究在以前的工作中已经显示出更深的神经网络对大规模数据分类是有益的。为了进一步分析PSPNet,我们针对不同深度的预训练进行了实验ResNet。我们测试{50,101,152,269}的四个深度。如图5所示,在相同的设置下,将ResNet的深度从50增加到269可以将(平均IoU +像素累加)/ 2(%)的分数从60.86改善到62.35,绝对改善1.49。表3列出了从不同深度的ResNet模型预训练的PSPNet的详细分数。

更详细的性能分析我们在表4中显示了对ADE20K验证集的更详细的分析。除最后一行外,所有结果均使用单标度测试。 “ ResNet269 + DA + AL + PSP + MS”使用多尺度测试。我们的基准是通过具有扩展网络的ResNet50改编而来的,得出了MeanIoU 34.28和Pixel Acc。 76.35。由于强大的ResNet [13],它已经超越了其他现有系统。我们提出的体系结构与基准相比有了进一步的改进。使用数据扩充,我们的结果超出基线1.54 / 0.72,达到35.82 / 77.07。使用辅助损耗可以进一步改善
它以1.41 / 0.94的比例上升到37.23 / 78.01。使用PSPNet,我们注意到在改善4.45 / 2.03方面取得了相对更重要的进步。结果达到41.68 / 80.04。与绝对结果相比,与基准结果的差异为7.40 / 3.69,相对论方面的差异为21.59 / 4.83(%)。更深的ResNet269网络可提供高达43.81 / 80.88的更高性能。最后,多尺度测试方案将分数提高到44.94 / 81.69。

挑战结果使用建议的体系结构,我们的团队在ImageNet场景解析挑战赛2016中排名第一。表5显示了此竞赛的一些结果。我们的合奏提交的测试集得分达到57.21%。我们的单模型合计得分为55.38%,甚至比其他一些多模型合奏结果还要高。此分数可能低于验证集的分数,这可能是由于验证集和测试集之间的数据分布不同所致。如图2的(d)列所示,PSPNet解决了FCN中的常见问题。图6显示了关于ADE20K验证集的另外一些解析结果。与基线相比,我们的结果包含更准确和详细的结构。

5.3. PASCAL VOC 2012

我们的PSPNet在语义分割上也令人满意地工作。我们对PASCAL VOC 2012分割数据集[8]进行了实验,该数据集包含20个对象类别和一个背景类别。按照[26、7、31、3]的程序,我们使用带有[10]注释的增强数据,得到10,582、1,449和1,456张图像,用于训练,验证和测试。结果显示在表6中,我们将PSPNet与基于两个设置(即在MS-COCO数据集上进行或不进行预训练)的测试集上以前性能最佳的方法进行比较[21]。经MS-COCO预先训练的方法以“†”标记。为了在场景解析/语义分割任务中与当前基于ResNet的框架[38,9,4]进行公平比较,我们基于ResNet101构建了我们的架构,而没有像CRF这样的后处理。我们使用几种规模的输入来评估PSPNet,并使用遵循[3,24]的平均结果。

如表6所示,在这两种设置上,PSPNet的性能均优于先前的方法。仅使用VOC 2012数据进行训练,我们可以达到82.6%的准确性2 –我们在所有20个课程中都获得了最高的准确性。当使用MS-COCO数据集对PSPNet进行预训练时,其达到85.4%的准确度3,其中20个类别中的19个获得最高的准确度。有趣的是,仅使用VOC 2012数据进行训练的PSPNet优于通过MS-COCO预训练模型进行训练的现有方法。

有人可能会说,自从最近提出ResNet以来,我们基于分类的模型比以前的几种方法更强大。为了展示我们的独特贡献,我们证明了我们的方法也优于使用相同模型的最新框架,包括FCRN [38],LRR [9]和DeepLab [4]。在这个过程中,我们甚至没有像[4,9]中那样使用费时但有效的后处理,例如CRF。

图7中显示了几个示例。对于第一行中的“母牛”,我们的基线模型将其视为“马”和“狗”,而PSPNet会更正这些错误。对于第二行和第三行中的“飞机”和“桌子”,PSPNet查找缺少的零件。对于随后几行中的“人”,“瓶”和“植物”,PSPNet在图像中的这些小型物体类上表现良好与基准模型相比。 PSPNet与其他方法之间的更直观的比较包含在图9中。

5.4. Cityscapes

Cityscapes [6]是最近发布的用于语义城市场景理解的数据集。它包含在不同季节从50个城市收集的5,000张高质量像素级精细注释的图像。图像分为编号分别为2975、500和1525的集合,以进行训练,验证和测试。它定义了19个类别,既包含对象又包含对象。同样,提供了20,000个粗糙注释的图像用于比较的两个设置,即,仅使用精细数据或使用精细和粗糙数据进行训练。使用细数据和粗数据训练的方法都标有“•”。表7中列出了详细的结果。我们的基本模型是ResNet101,如DeepLab [4]中所述,用于公平比较,测试过程遵循第5.3节。表7中的统计数据显示PSPNet不能胜任其他方法而胜过其他方法。使用细数据和粗数据进行训练,我们的方法可获得80.2的准确度。图8中显示了几个示例。表8显示了测试集上每个类别的详细结果。

6.Concluding Remarks

我们已经提出了一个有效的金字塔场景解析网络,用于复杂场景的理解。 全局金字塔池功能提供了其他上下文信息。 我们还为基于ResNet的FCN网络提供了深入监督的优化策略。 我们希望公开的实施细节可以帮助社区采用这些有用的策略进行场景解析和语义分割,并推进相关技术的发展。

发布了47 篇原创文章 · 获赞 21 · 访问量 7243

猜你喜欢

转载自blog.csdn.net/qq_18315295/article/details/103442340