欢迎访问设·集合!

设·集合

您现在的位置是:首页 > 平面软件 > PS

PSP Net 论文笔记

设·集合小编 发布时间:2023-03-07 10:15:16 330次最后更新:2024-03-08 10:54:48

论文:Pyramid Scene Parsing Network

论文最早版本arXiv上的发表时间是2016.12,本文是论文v2版本笔记

CVPR 2017收录

Abstract

  • 在本文中,我们通过金字塔池模块和提出的金字塔场景解析网络(PSPNet),聚合了基于不同区域的上下文信息,来挖掘全局上下文信息的能力
  • 我们的全局先验表示在场景解析任务上产生了良好的效果,而PSPNet则为像素级的预测提供了一个更好的框架
  • 所提出的方法在各种数据集上达到了最先进的性能

1. Introduction

基于语义分割的场景解析是计算机视觉中一个基础话题。自动驾驶、机器人感知等潜在应用领域都对十分看重场景解析。

--

场景解析的难度与场景和标签的多样性密切相关。

--

最先进的场景解析框架主要基于全卷积网络(FCN)。但FCN存在很多问题。

--

为了准确地感知场景,知识图谱要依赖场景上下文的先验信息

  • 我们发现,目前基于FCN的模型的主要问题是缺乏合适的策略来利用全局场景中的类别线索
  • 对于典型的复杂场景理解,以往为了获得全局图像级特征,空间金字塔池化被广泛应用,这种空间统计方法为整体场景解析提供了一个很好的描述符
  • 空间金字塔池化网络(SPPNet)进一步提高了这种能力

--

为了结合适当的全局特征,我们提出了金字塔场景解析网络(PSPNet)

  • 除了传统的空洞卷积FCN对于像素预测,我们将像素级特征扩展到专门设计的全局金字塔池化中。局部和全局的线索共同作用以使最终的预测更加可靠。
  • 我们还提出了一种优化策略,具有深度监督的loss。
  • 在本文中,我们给出了所有的实现细节,并将代码和经过训练的模型公之于众。

--

我们的方法在所有可用的数据集上实现了最先进的性能。

--

我们的主要贡献有三个:

  • 在基于FCN的像素预测框架中,我们提出了一种金字塔场景解析网络
  • 我们为深层的ResNet开发了一种有效的优化策略,基于深度监督的loss
  • 我们为最先进的场景解析和语义分割构建了一个实用的系统,其中包含了所有关键的实现细节

2. Related Work

受深度神经网络驱动,场景解析和语义分割这样的像素级预测任务取得了很大的进展。为了扩大网络的感受野,有些文章使用了空洞卷积、带有反卷积的coarse-to-fine等方法。本文的baseline是FCN和DeepLab v1。

--

其他工作主要从两个方面进行:

  • 多尺度特征融合。由于在深层网络中,高层特征包含了更多的语义和较少的位置信息。结合多尺度特征可以提高性能.
  • 基于结构进行预测。例如使用条件随机场(CRF)进行后处理,对分割结果进行细化。

--

为了更好地利用全局图像级别的先验知识来理解复杂场景,很多工作提取具有全局上下文信息的特征来提升结果。

不同于其他方法,PSPNet通过对不同区域的上下文进行聚合,提升了网络利用全局上下文信息的能力。

3. Pyramid Scene Parsing Network

3.1. Important Observations

通过检查ADE20K dataset所提供的FCN baseline的预测结果,我们总结了复杂场景解析中容易出现的几个常见问题:

  • Mismatched Relationship:上下文关系对理解复杂场景普遍十分重要。某种物体的出现往往具有一些固定的视觉模式。例如,一架飞机很可能在跑道上或者在空中飞行,而不是在道路上。例如图2的第一行,FCN根据外观将黄色方框中的船预测成了一辆“车”。但大家都知道,河水上基本不会出现车。缺乏收集上下文信息的能力增加了错误分类的可能性。
  • Confusion Categories: ADE20K数据集中有许多类标签对十分难以区分。比如field和earth;mountain和hill;wall, house, building和skyscraper。这几对物体的外表十分相似。在图2的第二排,FCN将框中的对象一部分预测为了摩天大楼,一部分预测为了建筑。我们并不期望出现这种情况,整个对象应该是摩天大楼或建筑,但不应该是两者各有一点。此问题可以通过类别之间的关系来解决。
  • Inconspicuous Classes:场景中往往包含任意大小的对象/东西。一些小尺寸的东西,如街灯和广告牌往往很难找到,但有时它们可能很重要。相反,大型的对象可能会超过FCN的感受野,从而导致不连续的预测。如图2第三行所示,枕头的外观与床单相似。不考虑全局场景中的类别的话可能会无法解析枕头。为了提高对于非常小或大的物体的性能,我们应该更加注意包含不显眼东西的子区域。

综上所述,许多错误都部分或全部与上下文关系和不同感受野的全局信息相关。因此,一个具有合适全局场景级先验的深层网络可以大大提高场景解析的性能。

3.2. Pyramid Pooling Module

在以上分析的基础上,我们引入了金字塔池化模型,是一种有效的全局上下文先验模型。

--

在深度神经网络中,感受野的大小可以粗略的表示使用上下文信息的程度。

  • 尽管理论上ResNet的感受野已经比输入图像还大了,但是CNN的实际感受野远小于理论场,特别是在高层上
  • 这使得网络的许多部分没有充分获得重要的全局先验知识
  • 我们通过提出有效的全局先验表示来解决这一问题

--

全局平均池化

  • 通常用于图像分类的全局平均池化是一个很好的全局上下文先验知识baseline。Parsenet将它成功应用到了语义分割中
  • 但对于ADE20K中的复杂场景图像,这种方式不足以涵盖必要的信息。这些场景图像中有许多种类的对象。直接将其融合形成一个单一的矢量可能会使其失去空间相关性,造成模糊
  • 全局上下文和子区域的上下文都有助于区分不同类别。一个更强大的表达应该是能融合不同子区域的信息与感受野的。在经典著作SPM和SPPNet中也得出了类似的结论

--

金字塔池化

  • 在SPPNet,金字塔池化生成的不同层次的特征图最终被flatten并concate起来,再送入全连接层以进行分类
  • 该全局先验知识旨在消除CNN要求图像分类输入大小固定的限制


金字塔池化模块

  • 为了进一步减少不同子区域间上下文信息的丢失,我们提出了一个有层次的全局先验结构,包含不同尺度、不同子区域间的信息
  • 可以在深层神经网络的最终层特征图上构造全局场景先验信息
  • --

如图3 (c):

金字塔池化模块可以融合四种不同金字塔尺度的特征

  • 红色突出显示的是最粗糙级别的单个全局池化bin输出
  • 下面的金字塔分支将特征映射划分为不同的子区域,并形成针对不同位置的集合表示
  • 金字塔池化模块中不同级别的输出包含不同大小的特征映射
  • 为了维护全局特性的权重,如果金字塔共有N个级别,则在每个级别后使用1×1卷积,将对应级别的通道数量降为原本的1/N
  • 然后通过双线性插值直接对低维特征图进行上采样,得到与原始特征映射相同尺寸的特征图
  • 最后,将不同级别的特征concate起来,作为最终的金字塔池化全局特性

--

金字塔层级的数量和每一层的大小都可以进行调整

  • 尺寸大小与输入金字塔池化层的特征映射的大小有关
  • 该结构通过在几个stride中进行不同尺寸的池化来对不同的子区域实现抽样
  • 因此,从表示性上来看,多个层级的核尺寸应该保持合理的差距

我们的金字塔池化模块是一个四层结构,bin大小为1×1,2×2,3×3和6×6。

3.3. Network Architecture

通过金字塔池化模块,我们提出的场景解析网络(PSPNet)如图3所示:

  • 输入图像后,使用预训练的带空洞卷积ResNet提取特征图。最终的特征映射大小是输入图像的1/8,如图3(b)所示
  • 在特征图上,我们使用(c)中的金字塔池化模块来收集上下文信息。使用4层金字塔结构,池化内核覆盖了图像的全部、一半和小部分。它们被融合为全局先验信息
  • 在(c)的最后部分将之前的金字塔特征映射与原始特征映射concate起来
  • 再进行卷积,生成(d)中的最终预测图

--

PSPNet

  • PSPNet为像素级场景解析提供了有效的全局上下文先验
  • 金字塔池化模块可以收集具有层级的信息,比全局池化更有代表性
  • 在计算量方面,我们的PSPNet并没有比原来的空洞卷积FCN网络有很大的增加
  • 在端到端学习中,全局金字塔池化模块和局部FCN特征可以被同时训练

4. Deep Supervision for ResNet-Based FCN

经过深度预先训练的网络能带来良好的性能,然而,网络深度的增加可能会带来额外的优化难度。

--

相反,我们提出了一个附加loss,可以监督初始结果,并用后面的最终loss来学习残差。因此,深层网络的优化被分解为两个问题,每一个都更容易解决。

--

图4为深入监督ResNet101模型的例子

  • 除了使用Softmax loss来训练最终分类器的的主分支外,在第四阶段后再使用另一个分类器,即res4b22残差块
  • 这两个loss同时传播,通过各自前面所有层
  • 辅助loss有助于优化学习过程,主loss仍是主要的优化方向。增加权重,以平衡辅助loss

--

在测试阶段,放弃辅助分支,只使用优化好的主分支来进行最终的预测。这种对基于ResNet的FCN进行深度监督的训练策略在不同的实验环境下是非常有用的,与预训练的ResNet模型也可以很好结合。体现了这种学习策略的普遍性。

5. Experiments

6. Concluding Remarks

  • 针对复杂场景的理解,提出了一种有效的金字塔场景解析网络
  • 全局金字塔池化特性提供了额外的上下文信息
  • 我们还为基于ResNet的FCN网络提供了一种深度监督的优化策略
  • 我们希望公开的实现细节能够帮助社区采用这些有用的策略,应用于场景解析、语义分割和其他相关技术

广告位

热心评论

评论列表