PSPNet论文阅读笔记
基本信息
-
论文名称
Pyramid Scene Parsing Network
-
作者
Hengshuang Zhao等
-
发表时间
2016年
-
来源
CVPR2017
主要收获
知识
-
scene parsing的目标是给图片中每个像素赋予1个类别标签,其可以提供对场景的完整理解,预测每个element的标签、位置和形状。
-
本文主要贡献
- 提出PSPNet,将difficult scenery context features嵌入1个FCN based pixel prediction framework。
- 基于deeply supervised loss,为ResNet提供1个高效的优化策略。
- 为SOTA的scene parsing and semantic segmentation构建了1个practical system,并公开了所有关键细节。
-
本文方法原理
为获得合适的global features,本文提出PSPNet。除了使用传统的dilated FCN实现pixel prediction,我们将pixel-level feature扩展到了专门设计的global pyramid pooling的特征中,局部和全局的clues共同使得最终的预测更可靠。我们还提出了1种使用deeply supervised loss的优化策略。我们给出了所有实验细节(对本文模型的性能很重要),并公开了代码和训练好的模型。
-
本文核心思路
scene parsing还面临着diverse scenes和unrestricted vocabulary的困难,其导致一些外表相似的物体被错误预测,但当有了context prior之后,理应可以得到正确的预测。目前基于FCN算法的主要问题也是缺乏利用global scene category clue的合适策略。所以PSPNet基于FCN将PPM(pyramid pooling module)作为高效的global context prior。
-
PPM核心思路
感受野的大小可以大概表示我们能用多少context information。而CNN的实验感受野比其理论感受野小得多,特别是网络深层。这使得许多网络没有充分融合重要的global scenery prior。
Global average pooling直接将所有像素混合得到1个vector可能会失去spatial relation并导致ambiguity。考虑到这一点,Global context information和sub-region context有助于区分各种category,1个更有力的representation可以是来自不同sub-regions的具有这些感受野的信息的融合。
-
其它
- FCN用卷积层代替全连接层进行分类
- dilated convolution可以增大神经网络的感受野。
- 本文baseline network是FCN和dilated network(《Semantic image segmentation with deep convolutional nets and fully connected crfs》)。
- 一些工作主要探索了2个方向:multi-scale feature ensembling和structure prediction,这2个方向都都改善了scene parsing的localization ability。
- 开创性的《Semantic image segmentation with deep convolutional nets and fully connected crfs》使用条件随机场(CRF)作为post processing以精化分割结果。
- 《Parsenet: Looking wider to see better》证明了global average pooling with FCN可以提升语义分割结果。
一些未知的东西
- scene和vocabulary具体指什么?
- context prior具体指什么?
- knowledge graph(知识图谱)是什么?
- dilated convolution是什么?
Abstract
-
背景
对于unrestricted open vocabulary和diverse scenes,scene parsing(场景解析)具有挑战性。
-
方法
本文使用PPM(pyramid pooling module)和提出的PSPNet(pyramid scene parsing network),实现了通过融合different-region-based context获取全局context信息的能力。本文中的global prior presentation(全局先验表征)可在scene pareing任务中有效产生高质量结果,而PSPNet提供了1个出色的pixel-level prediction framework。
-
结果
本文提出的方法在多个数据集上实现了SOTA,取得ImageNet scene parsing challenge 2016、PASCAL VOC 2012 benchmark和Cityscapes benchmark的第1名。单独1个PSPNet在PASCAL VOC 2012取得mIoU accuracy 85.4%的新纪录,在Cityscapes取得mIoU accuracy 80.2%的新纪录。
1. Introduction
-
背景和意义
基于semantic segmentation的scene parsing是计算机视觉中的基本主题,其目标是给图片中每个像素赋予1个类别标签。scene parsing可提供对场景的完整理解,它可以预测每个element的标签、位置和形状。对于自动驾驶、机器人感应等潜在应用,该主题引起了广泛兴趣。
-
困难
scene parsing的困难与scene和label的多样性紧密相关。首创的scene parsing任务是对LMO数据集中2688张图片的33个场景进行分类。更多最近的PASCAL VOC语义分割数据集和PASCAL context数据集中包括更多context相似的标签,比如chair和sofa、horse和cow等等。新的ADE20K是最具挑战性的1个数据集数据集,其具有大量无限制开放的vocabulary和更多的scene类别,图1展示了其中一些具有代表性的图片。为这些数据集找到1个有效的算法需要克服许多困难。
-
目前进展
scene parsing的SOTA算法多数是基于全卷积神经网络(FCN)。基于CNN的算法推动了dynamic object understanding,但考虑到diverse scenes和unrestricted vocabulary则还面临着挑战。图2第1行中1个boat被错误识别为car,出现这些错误是由于similar appearance of objects。但当图片的context prior为1条河附近的boathouse时,理应得到正确的预测。
为了精准的场景感知,知识图谱依赖于scene context的先验信息(prior information)。我们发现目前基于FCN算法的主要问题是缺乏利用global scene category clue的合适策略。对于complex scene understanding,为了获取1个global image-level feature,spatial pyramid pooling被广泛应用,因为spatial statistics为overall scene interpretation提供了较好的descriptor。Spatial pyramid pooling network进一步增强了这个能力。
-
本文方法原理
与上述方法不同,为获得合适的global features,本文提出PSPNet。除了使用传统的dilated FCN实现pixel prediction,我们将pixel-level feature扩展到了专门设计的global pyramid pooling的特征中,局部和全局的clues共同使得最终的预测更可靠。我们还提出了1种使用deeply supervised loss的优化策略。我们给出了所有实验细节(对本文模型的性能很重要),并公开了代码和训练好的模型。
-
本文方法性能
在所有公开数据集上达到SOTA,是ImageNet scene parsing challenge 2016的冠军、PASCALVOC 2012 semantic segmentation benchmark的第1名、urban scene Cityscapes data的第1名。这证明PSPNet为pixellevel prediction tasks指明了1个方向,它甚至可以帮助基于CNN的stereo matching、optical flow、depth estimation等。
-
本文主要贡献
- 提出PSPNet,将difficult scenery context features嵌入1个FCN based pixel prediction framework。
- 基于deeply supervised loss,为ResNet提供1个高效的优化策略。
- 为SOTA的scene parsing and semantic segmentation构建了1个practical system,并公开了所有关键细节。
2. Related Work
-
受FCN用卷积层代替全连接层进行分类的启发,scene parsing和semantic segmentation等pixel-level prediction任务取得了巨大进步。为增大神经网络的感受野,《Semantic image segmentation with deep convolutional nets and fully connected crfs》和《Multi-scale context aggregation by dilated convolutions》使用了dilated convolution。Noh等人提出了1个coarse-to-fine structure with deconvolution network以学习segmentation mask。本文baseline network是FCN和dilated network(《Semantic image segmentation with deep convolutional nets and fully connected crfs》)。
-
其它工作主要探索了2个方向。
- 第1个方向是multi-scale feature ensembling。因为在深度网络中,higher-layer feature包含更多semantic meaning,很少location information。融合多尺度的特征可以提高性能。
- 第2个方向是基于structure prediction。开创性的《Semantic image segmentation with deep convolutional nets and fully connected crfs》使用条件随机场(CRF)作为post processing以精化分割结果。还有一些方法通过end-to-end modeling精化了网络。
这2个方向都都改善了scene parsing的localization ability(predicted semantic boundary fits objects),然而在复杂场景中还有很大空间可以更加有效地利用必要信息。
-
为充分利用global image-level priors(for diverse scene understanding),一些方法使用传统方法而非神经网络提取了global context information。在object detection frameworks下也有了相似的提升。Liu等人证明了global average pooling with FCN可以提升语义分割结果。然而本文实验证明,对于ADE20K数据集,这些global descriptors还不足够representative。因此本文使用PSPNet实现了通过融合different-region-based context获取全局context信息的能力。
3. Pyramid Scene Parsing Network
在把应用FCN到scene parsing时,我们观察到一些具有代表性的失败案例并对其进行了分析。这激发了我们将pyramid pooling module 作为高效global context prior的思路。图3展示了PSPNet的结构。
3.1. Important Observations
ADE20K数据集包含150个stuff/object category labels(比如wall、sky、tree)和1038张imagelevel scene descriptors(比如airport terminal、bedroom、street),所以形成了大量的label和分布广阔的scene。检查了《Semantic understanding of scenes through the ADE20K dataset》提供的FCN baseline的预测结果,我们总结出了complex-scene parsing的几个普遍问题:Mismatched Relationship、Confusion Categories和Inconspicuous Classes(具体内容见原文)。总结这些问题,很多错误与不同感受野的contextual relationship和global information部分或完全相关。因此1个具有合适global-scene-level prior的神经网络可以大量提高scene parsing的性能。
3.2. Pyramid Pooling Module
实验证明,pyramid pooling module是高效的global contextual prior。
在1个神经网络中,感受野的大小可以大概表示我们能用多少context information。虽然理论上ResNet的感受野已经超过输入图片的大小了,但Zhou等人发现CNN的实验感受野比其理论感受野小得多,特别是网络深层。这使得许多网络没有充分融合重要的global scenery prior。本文提出1个高效的global prior representation来解决这个问题。
Global average pooling可以很好地作为global contextual prior的baseline model,常常被用在图片分类任务中,也被用于semantic segmentation。考虑到ADE20K数据集中图片scene的复杂性,该策略并不足以涵盖必要信息:图片的每个像素被标注为许多stuff/objects,直接将它们混合得到1个vector可能会失去spatial relation并导致ambiguity。考虑到这一点,Global context information和sub-region context有助于区分各种category,1个更有力的representation可以是来自不同sub-regions的具有这些感受野的信息的融合。一些场景/图片分类方面的工作[引]也得到了相似结论。
在《Hypercolumns for object segmentation and fine-grained localization》中,pyramid pooling生成的不同层次的feature maps最终被flatten和concatenate,然后送入1个全连接层进行分类。该global prior的目标是移除CNN用于图片分类时fixed-size的constraint。为进一步减少不同sub-region之间的context information loss,本文提出1个hierarchical global prior,包含不同尺度和不同sub-region的信息,称其为pyramid pooling module,用来在神经网络最后1个特征图上构建global scene prior,如图3(c)所示。
PPM的具体结构:
PPM融合4个不同金字塔尺度的特征。最coarse的level是global pooling,生成1个single bin output。接下来的pyramid level将特征图划分成不同的sub-region并为不同location形成pooled representation。PPM中不同level的输出包含不同尺寸的特征图。为了保持global feature的占比,我们在每1个pyramid level后使用1×1卷积以将context representation的dimension减少到1。然后将这些1维特征图上采样以使其与初始特征图大小相同。最终将不同level的特征concatenate后作为最终的pyramid pooling global feature。
注意pyramid level的数量和每个level的size是可以修改的,它们与输入至pyramid pooling layer的特征图的size相关。该结构采用size不同、stride不同的pooling kernel以提取不同sub-region的特征。因此这些kernel在representation上应该保持合理的gap。本文中的PPM包含4个level,bin的size分别是1×1、2×2、3×3和6×6。关于选择最大池化还是平均池化,本文5.2节中做了大量实验。
3.3. Network Architecture
如图3所示,输入1张图片,使用预训练的ResNet模型并使用dilated network的策略提取得到feature map。最后feature map的size是输入图片size的1/8。然后使用PPM获取context information。通过本文4个level的PPM,可以涵盖图片的whole、half和small portions。然后将PPM4个分支的输出和PPM的输入concatenate。最后再用1个卷积层获得最后的prediction。
PSPNet为pixel-level scene parsing提供了高效的global contextual prior。PPM提取到的特征比global pooling更具代表性。考虑到计算成本,PSPNet相比于其 baseline(the original dilated FCN network)并没有增加多少计算成本。通过end-to-end learning,全局的PPM特征和局部的FCN特征可以最优化。
4. Deep Supervision for ResNet-Based FCN
深度网络可以得到好的性能,但增加网络深度可能导致optimization difficulty,ResNet通过在每个block中使用skip connection解决了这个问题。ResNet的Latter layers主要基于previous ones学习residues。
相反地,本文通过1个additional loss生成initial results,然后通过the final loss学习residue。因此,深度网络的优化被分解成易解的2个。
略……
Github(github.com):@chouxianyu
Github Pages(github.io):@臭咸鱼
知乎(zhihu.com):@臭咸鱼
博客园(cnblogs.com):@臭咸鱼
B站(bilibili.com):@绝版臭咸鱼
微信公众号:@臭咸鱼
转载请注明出处,欢迎讨论和交流!