详细介绍:PSPNet:Pyramid Scene Parsing Network——金字塔场景解析网络
2025-12-31 22:11 tlnshuju 阅读(0) 评论(0) 收藏 举报研究背景与动机
场景解析(语义分割)是计算机视觉中的一个基础任务,目标是为图像中的每个像素分配语义类别标签。这一任务在自动驾驶、机器人感知等领域有重要应用。
现有方法(如全卷积网络,FCN)在处理复杂场景时存在局限性,主要疑问是没有充分利用全局上下文信息,导致类别混淆、小目标检测不准确等问题。
提出的方法:金字塔场景解析网络(PSPNet)
金字塔池化模块(Pyramid Pooling Module):通过不同尺度的池化操作(如1×1、2×2、3×3、6×6等),提取全局和局部上下文信息,并将这些信息与原始特征图结合,增强模型对全局场景的理解能力。
深度监督策略(Deep Supervision):在深度网络(如ResNet)的中间层添加辅助损失函数,优化网络的训练过程,提高模型的收敛速度和性能。
实验与结果
在多个标准材料集(ADE20K、PASCAL VOC 2012、Cityscapes)上验证了PSPNet的性能。
PSPNet在所有数据集上均取得了显著优于现有办法的结果:
ADE20K数据集上,PSPNet达到44.94%的Mean IoU和81.69%的像素级准确率。
PASCAL VOC 2012数据集上,PSPNet达到85.4%的准确率。
Cityscapes数据集上,PSPNet达到80.2%的准确率。
这些结果表明PSPNet在麻烦场景解析任务中具有明显优势,尤其是在利用全局上下文信息方面。
研究贡献
提出了一种新的网络架构PSPNet,凭借金字塔池化模块有效利用全局上下文信息,克服了复杂场景解析中的关键问题。
引入深度监督策略,优化了深度网络的训练过程,提高了模型的性能。
在多个标准资料集上验证了PSPNet的优越性能,为场景解析和语义分割领域提供了新的技术参考。
研究意义
PSPNet为场景解析和语义分割任务提供了一种新的解决方案,独特是在处理复杂场景和多样化数据集时表现出色。
其对全局上下文信息的有效利用为后续研究提供了重要思路,推动了该领域的工艺进步。
代码和达成细节公开,为研究社区献出了宝贵的资源,促进了相关技能的进一步发展。
总之,这篇文章的核心贡献在于提出了一种能够奏效利用全局上下文信息的网络架构PSPNet,并凭借深度监督策略优化了训练过程,显著提升了场景解析任务的性能。这里是自己的论文阅读记录,感兴趣的话可以参考一下,若是需要阅读原文的话可以看这里,如下所示:

摘要
一个极具挑战性的任务。在本文中,我们通过金字塔池化模块以及提出的金字塔场景解析网络(PSPNet),利用不同区域的上下文聚合来探索全局上下文信息的能力。我们的全局先验表示在场景解析任务中能够产生高质量的结果,而PSPNet为像素级预测给予了一个优越的框架。我们提出的方法在多个数据集上达到了最先进的性能。它在2016年ImageNet场景解析挑战赛、PASCAL VOC 2012基准测试和Cityscapes基准测试中均获得了第一名。单个PSPNet在PASCAL VOC 2012上达到了85.4%的mIoU准确率,在Cityscapes上达到了80.2%的准确率。就是场景解析对于不受限制的开放词汇和多样化场景来说

1. 引言
基于语义分割的场景解析是计算机视觉中的一个基础课题。其目标是对图像中的每个像素分配一个类别标签。场景解析献出了对场景的完整理解,它预测了每个元素的标签、位置以及形状。这一课题在自动驾驶、机器人感知等领域有着广泛的应用前景。场景解析的难度与场景和标签的多样性密切相关。最早的场景解析任务是对LMO资料集中的2,688张图像进行33个场景的分类。最近的PASCAL VOC语义分割和PASCAL上下文数据集囊括了更多具有相似上下文的标签,例如椅子和沙发、马和牛等。新的ADE20K数据集是最具挑战性的,它具有庞大的开放词汇表和更多的场景类别。图1展示了一些具有代表性的图像。为了开发出适用于这些数据集的管用算法,需要克服一些困难。当前最先进的场景解析框架大多基于全卷积网络(FCN)。基于深度卷积神经网络(CNN)的方法提升了对动态目标的理解能力,但在面对多样化场景和不受限制的词汇表时仍然面临挑战。例如,图2第一行中的一个例子表明,一艘船被误判为汽车。这些错误是由于物体的外观相似。然而,当从上下文先验的角度看待图像时,如果场景被描述为河边的船屋,那么正确的预测应该是船。为了建立准确的场景感知,知识图谱依赖于场景上下文的先验信息。我们发现,当前基于FCN的模型的主要问题是缺乏合适的策略来利用全局场景类别线索。对于典型的复杂场景理解,以往为了获得全局图像级特征,广泛使用了空间金字塔池化,其中空间统计为整体场景解释供应了良好的描述符。空间金字塔池化网络进一步增强了这种能力。与这些方法不同,为了引入合适的全局特征,我们提出了金字塔场景解析网络(PSPNet)。除了传统的用于像素预测的扩张FCN外,我们将像素级特征扩展到特别设计的全局金字塔池化特征。局部和全局线索共同使最终预测更加可靠。我们还提出了一个基于深度监督损失的优化策略。我们在本文中给出了所有实现细节,这些细节是我们良好性能的关键,并且我们公开了代码和训练好的模型。我们的方法在所有可用的数据集上都达到了最先进的性能。它是2016年ImageNet场景解析挑战赛的冠军,并在PASCAL VOC 2012语义分割基准测试和城市场景Cityscapes数据中获得了第一名。这些结果表明,PSPNet为像素级预测任务提供了一个有希望的方向,甚至可能对后续工作中基于CNN的立体匹配、光流、深度估计等任务有所帮助。我们的主导贡献有三点:
大家提出了一个金字塔场景解析网络,将复杂的场景上下文特征嵌入到基于FCN的像素预测框架中。
我们开发了一种基于深度监督损失的有效优化策略,用于深度ResNet。
我们构建了一个实用的系统,用于最先进的场景解析和语义分割,其中囊括了所有关键的建立细节。
2. 相关工作
通过以下,我们将回顾场景解析和语义分割任务的最新进展。在强大的深度神经网络的推动下,像场景解析和语义分割这样的像素级预测任务取得了巨大进展,这得益于用卷积层替换了分类中的全连接层。为了扩大神经网络的感受野,一些方法采用了扩张卷积。Noh等人提出了一种从粗到细的结构,使用反卷积网络来学习分割掩模。我们的基线网络是FCN和扩张网络。其他工作主要沿着两个方向进行。一个方向是多尺度特征融合。源于在深度网络中,高层特征包含更多的语义信息和较少的位置信息。结合多尺度特征可以提高性能。另一个方向是基于结构预测。先驱工作使用条件随机场(CRF)作为后处理来细化分割结果。后续方法依据端到端建模来改进网络。这两个方向都改善了场景解析的定位能力,其中预测的语义边界更贴合目标。然而,仍然有很大的空间来利用复杂场景中必要的信息。为了充分利用全局图像级先验用于多样化的场景理解,一些方法应用传统特征而非深度神经网络来提取全局上下文信息。在目标检测框架下也有类似的改进。Liu等人证明了全局平均池化与FCN结合能够改善语义分割结果。然而,我们的实验表明,这些全局描述符对于具有挑战性的ADE20K数据来说并不足够具有代表性。因此,与Liu等人中的全局池化不同,我们通过金字塔场景解析网络利用不同区域的上下文聚合来挖掘全局上下文信息的能力。
3. 金字塔场景解析网络
我们从对FCN方法应用于场景解析时的代表性失败案例的观察和分析开始。这些观察结果促使我们提出了有效的全局上下文先验的金字塔池化模块。然后,我们描述了我们的金字塔场景解析网络(PSPNet),以改善复杂场景解析中开放词汇目标和物体识别的性能。

3.1 重要观察
新的ADE20K数据集包含150个物体/物体类别标签(例如墙、天空和树)和1,038个图像级场景描述符(例如机场候机楼、卧室和街道)。因此,大量的标签和场景分布的广泛存在。检查[43]中提供的FCN基线的预测结果,我们总结了复杂场景解析的一些常见问题。
关系上下文不匹配
关系上下文是普遍且重点的,尤其是在复杂的场景理解中。存在共现的视觉模式。例如,飞机可能在跑道上或在天空中飞行,而不是在道路上。对于图2第一行的例子,FCN将黄色框中的船预测为“汽车”,基于其外观。但常识是汽车很少在河上而不是船。缺乏收集上下文信息的能力增加了误分类的可能性。
类别混淆
两者兼有。这个问题可能通过利用类别之间的关系来解决。就是在ADE20K数据集中有许多类别标签对在分类中容易混淆。例如田野和大地;山和小山;墙、房子、建筑物和摩天大楼。它们的外观相似。专家标注者在标注整个数据集时,仍然会犯17.60%的像素错误,如[43]所述。在图2的第二行中,FCN将框中的物体预测为摩天大楼的一部分和建筑物的一部分。这些结果应该被排除,以便整个物体是摩天大楼或建筑物,而不
不显眼的类别
场景含有任意大小的物体/物体。一些小尺寸的物体,如路灯和招牌,很难被发现,但它们可能特别重要。相反,大物体或物体可能超出FCN的感受野,从而导致不连续的预测。如图2第三行所示,枕头与床单在颜色和纹理上极其相似。忽视全局场景类别可能会导致无法解析枕头。为了改善对特有小或大的物体的性能,应该更多地关注包含不显眼类别物体的不同子区域。总结这些观察结果,许多错误部分或完全与上下文关系和不同感受野的全局信息有关。因此,具有合适全局场景级先验的深度网络可以显著提高场景解析的性能。
3.2 金字塔池化模块
在接下来的内容中,我们将介绍金字塔池化模块,它被证明是一种有效的全局上下文先验。在深度神经网络中,感受野的大小大致许可表明我们使用了多少上下文信息。尽管理论上ResNet的感受野已经大于输入图像,但Zhou等人[42]表明,CNN的经验感受野实际上远小于理论感受野,尤其是在高层。这使得许多网络未能充分整合重要的全局场景先验。我们通过提出一种有效的全局先验表示来克服该问题。

通过全局平均池化是一个良好的基线模型,作为全局上下文先验,它通常用于图像分类任务[34, 13]。在[24]中,它被成功应用于语义分割。但针对ADE20K[43]中的复杂场景图像,这种策略不足以覆盖必要的信息。这些场景图像中的像素被标注为许多物体和物体。直接将它们融合成一个单一向量可能会丢失空间关系并导致歧义。全局上下文信息以及子区域上下文在此有助于区分各种类别。更强大的表示能够是从不同子区域中融合的信息,这些子区域具有这些感受野。在经典工作[18, 12]的场景/图像分类中也得出了类似的结论。
在[12]中,金字塔池化生成的不同级别的特征图最终被展平并连接起来,以输入到全连接层进行分类。这种全局先验旨在消除CNN对图像分类的固定尺寸约束。为了进一步减少不同子区域之间上下文信息的丢失,大家提出了一个分层的全局先验,它包括不同尺度的信息,并在不同子区域之间变化。我们称其为金字塔池化模块,用于在深度神经网络的最终层特征图上构建全局场景先验,如图3的(c)部分所示。金字塔池化模块融合了四个不同金字塔尺度的特征。最粗糙的级别用红色突出显示,是全局池化,以生成单个bin输出。接下来的金字塔级别将特征图划分为不同的子区域,并为不同位置形成池化表示。金字塔池化模块中不同级别的输出包含不同大小的特征图。为了保持全局特征的权重,我们在每个金字塔级别后使用1×1卷积层,将上下文表示的维度减少到原始维度的1/N,如果金字塔的级别大小为N。然后我们直接依据双线性插值将低维特征图上采样,以获得与原始特征图相同大小的特征图。最后,不同级别的特征被连接起来作为最终的金字塔池化全局特征。请注意,金字塔级别的数量和每个级别的大小可以修改。它们与输入到金字塔池化层的特征图的大小有关。该结构利用采用不同大小的池化内核在几个步长中抽象出不同的子区域。因此,多阶段内核应保持合理的表示间隔。我们的金字塔池化模块是一个四级的,bin大小分别为1×1、2×2、3×3和6×6。对于池化操作类型是最大值还是平均值,我们在第5.2节中进行了广泛的实验以展示差异。
3.3 网络架构

有了金字塔池化模块,我们提出了我们的金字塔场景解析网络(PSPNet),如图3所示。给定图3(a)中的输入图像,我们使用预训练的ResNet[13]模型,采用扩张网络策略[3, 40]来提取特征图。最终特征图的大小是输入图像的1/8,如图3(b)所示。在该图上,我们利用图3(c)中所示的金字塔池化模块来收集上下文信息。启用我们的4级金字塔,池化内核覆盖了整个图像、图像的一半以及图像的小部分。它们被融合为全局先验。然后我们将先验与原始特征图连接起来,作为图3(c)的最后一部分。它后面跟着一个卷积层,以生成最终的预测图,如图3(d)所示。为了说明我们的结构,PSPNet为像素级场景解析提供了一个高效的全局上下文先验。金字塔池化模块可以收集各级别的信息,比全局池化[24]更具代表性。在计算成本方面,与原始的扩张FCN网络相比,我们的PSPNet并没有增加太多。在端到端学习中,全局金字塔池化模块和局部FCN特征可以同时进行优化。
4. ResNet基础FCN的深度监督
深度预训练网络能够带来良好的性能[17, 33, 13]。然而,随着网络深度的增加,可能会引入额外的优化困难,如在图像分类中所示[32, 19]。ResNet通过每个块中的跳跃连接解决了这个疑问。我们相反地提出依据额外的损失进行监督,生成初始结果,并在最终损失之后学习残差。因此,深度网络的优化被分解为两个更容易的问题。图4展示了我们深度监督的ResNet101[13]模型的一个例子。除了主分支使用softmax损失来训练最终分类器外,还在第四阶段(即res4b22残差块)之后应用了另一个分类器。与relay backpropagation[32]不同,它阻止辅助损失反向传播到几个浅层,我们让两个损失函数都依据所有前面的层。辅助损失有助于优化学习过程,而主分支损失承担主要责任。我们添加权重来平衡辅助损失。在测试阶段,我们放弃这个辅助分支,只采用经过良好优化的主分支进行最终预测。这种针对ResNet基础FCN的深度监督训练策略在不同的实验设置下都是广泛适用的,并且可以与预训练的ResNet模型一起工作。这表明了这种学习策略的通用性。更多细节在第5.2节中提供。
5. 实验
大家提出的方法在场景解析和语义分割挑战中取得了成功。我们在这一节中在三个不同的资料集上评估它,包括2016年ImageNet场景解析挑战赛[43]、PASCAL VOC 2012语义分割[8]和城市场景理解素材集Cityscapes[6]。
5.1 搭建细节

对于一个实用的深度学习平台来说,细节至关重要。我们的达成基于公共平台Caffe[15]。受[4]的启发,我们使用“多项式”学习率策略,当前学习率等于基础学习率乘以(1 - iter/maxiter)^power。我们将基础学习率设置为0.01,power设置为0.9。通过增加迭代次数可以提高性能,这在ImageNet实验中设置为150K,在PASCAL VOC中设置为30K,在Cityscapes中设置为90K。动量和权重衰减分别设置为0.9和0.0001。为了数据增强,我们对所有数据集采用随机镜像和随机缩放(在0.5到2之间),并额外为ImageNet和PASCAL VOC添加随机旋转(在-10到10度之间)和随机高斯模糊。这种全面的数据增强方案使网络能够抵抗过拟合。我们的网络包含扩张卷积,遵循[4]。在实验过程中,我们注意到适当较大的“cropsize”可以带来良好的性能,而“batchsize”在批量归一化[14]层中非常要紧。由于GPU卡的物理内存有限,我们在训练期间将“batchsize”设置为16。为了实现这一点,我们修改了Caffe,从[37]和分支[4]开始,并使其支持基于OpenMPI的多GPU内容批量归一化。对于辅助损失,我们在实验中将权重设置为0.4。
5.2 2016年ImageNet场景解析挑战赛
资料集和评估指标
ADE20K数据集[43]用于2016年ImageNet场景解析挑战赛。与其他数据集不同,ADE20K更具挑战性,因为它包含多达150个类别和具有1,038个图像级标签的多样化场景。挑战数据被划分为20K/2K/3K图像,用于训练、验证和测试。此外,它需要解析场景中的物体和物体,这使得它比其他内容集更加困难。对于评估,使用像素级准确率(Pixel Acc.)和类别平均交并比(Mean IoU)。

PSPNet的消融研究
否进行维度降低等设置。如表1所示,平均池化在所有设置中都优于最大池化。使用金字塔池化比全局池化表现更好。在进行维度降低后,性能进一步提升。应用我们提出的PSPNet,最佳设置在Mean IoU和Pixel Acc.(%)方面分别达到了41.68和80.04,超过了Liu等人[24]中提出的全局平均池化的40.07和79.52,分别提高了1.61和0.52。与基线相比,PSPNet在绝对提升方面提高了4.45和2.03,在相对差异方面提高了11.95和2.60。就是为了评估PSPNet,我们进行了几组实验,包括最大池化和平均池化类型、仅使用一个全局特征或四级特征进行池化、在池化管理后和连接前

辅助损失的消融研究
引入的辅助损失有助于优化学习过程,同时不影响主分支的学习。大家在实验中将辅助损失权重α设置在0到1之间,并在表2中展示了结果。基线使用基于ResNet50的扩张网络FCN,并使用主分支的softmax损失进行优化。添加辅助损失分支后,α=0.4时表现最佳。它比基线提高了1.41和0.94,在Mean IoU和Pixel Acc.(%)方面分别达到了37.23和78.01。我们相信,随着网络深度的增加,这种新的增强辅助损失将带来更大的收益。
预训练模型的消融研究
更深的神经网络在以往的研究中已被证明对大规模资料分类有益。为了进一步分析PSPNet,我们对不同深度的预训练ResNet进行了实验。我们测试了四种深度的{50, 101, 152, 269}。如图5所示,在相同的设置下,将ResNet的深度从50增加到269,可以将(Mean IoU + Pixel Acc.)/2(%)的分数从60.86提高到62.35,绝对提升为1.49。PSPNet从不同深度ResNet模型预训练的详细分数如表3所示。

更详细性能分析
通过我们在表4中对ADE20K的验证集进行了更详细的分析。除了最后一行外,我们所有结果都运用单尺度测试。“ResNet269+DA+AL+PSP+MS”使用多尺度测试。我们的基线是基于ResNet50的扩张网络,其Mean IoU为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。

挑战赛结果
使用我们提出的架构,我们的团队在2016年ImageNet场景解析挑战赛中获得了第一名。表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等耗时但实用的后处理。我们使用多尺度输入进行评估,并按照[3, 24]取平均结果。
如表6所示,PSPNet在两种设置下均优于先前的技巧。仅运用VOC 2012数据进行训练时,大家达到了82.6%的准确率²——我们在所有20个类别上都获得了最高的准确率。当PSPNet采用MS-COCO数据集进行预训练时,它达到了85.4%的准确率³,其中19个类别获得了最高的准确率。有趣的是,我们仅使用VOC 2012数据训练的PSPNet的性能甚至超过了现有启用MS-COCO预训练模型的方法。有人可能会认为,我们的基础分类模型比一些先前的方式更强大,因为ResNet是最近提出的。为了展示我们独特的贡献,我们证明了即使使用相同的模型,我们的方法也优于现有的最先进的框架,包括FCNs[38]、LRR[9]和DeepLab[4]。在这个过程中,我们甚至没有使用耗时但有效的后处理,例如CRF,如[4, 9]中所用。图7中展示了一些例子。对于第一行中的“牛”,我们的基线模型将其误判为“马”和“狗”,而PSPNet纠正了这些错误。对于第二行和第三行中的“飞机”和“桌子”,PSPNet发现了缺失的部分。对于接下来几行中的“人”、“瓶子”和“植物”,PSPNet在图像中的小尺寸物体类别上表现良好,与基线模型相比。图9中还包含了PSPNet与其他方法之间的更多视觉比较。

5.4 Cityscapes
Cityscapes[6]是一个最近发布的用于城市场景理解的信息集。它具备了来自50个城市的5,000张高质量像素级精细标注的图像,这些图像在不同季节采集。图像被划分为训练集、验证集和测试集,分别具备2,975、500和1,525张图像。它定义了19个类别,包括物体和物体。


ResNet101,与DeepLab[4]一致,以进行公平比较,测试过程遵循第5.3节。表7中的统计数据表明,PSPNet与其他方法相比具有显著优势。应用精细和粗略素材进行训练使我们的方法达到了80.2的准确率。图8中展示了一些例子。表8中还展示了测试集上的详细每类别结果。就是此外,还提供了20,000张粗略标注的图像,用于两种设置的比较,即仅使用精细数据进行训练,或同时使用精细和粗略素材进行训练。启用精细和粗略材料进行训练的方法用‘‡’标记。详细结果如表7所示。我们的基础模型
6. 结论
我们提出了一个有效的金字塔场景解析网络,用于复杂的场景理解。全局金字塔池化特征提供了额外的上下文信息。我们还为基于ResNet的FCN网络提供了一种深度监督的优化策略。我们希望公开的达成细节能够帮忙社区采用这些有用的策略,用于场景解析和语义分割,并推动相关技术的发展。
浙公网安备 33010602011771号