用于语义分割的金字塔场景识别网络
论文链接

摘要

该论文通过金字塔池化模块以及金字塔场景解析网络(PSPNet),通过基于不同区域的上下文信息聚合来利用全局上下文信息的能力。全局先验表示在场景解析任务中产生了高质量的结果,而PSPNet为像素级预测提供了更好的框架。本论文提出的方法在各种数据集上实现了最先进的性能。它在ImageNet 2016场景解析挑战中,在PASCAL VOC2012上获得了mIOU准确率达85.4%的新纪录,在CityScapes上获得了80.2%的准确率。

1、介绍

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

【场景解析常见的数据集】场景解析的复杂度和场景和标签的多样性密切相关。较早的场景解析任务是在LMO数据集上为2688个图像分类33个场景。最近的PASCAL VOC语义分割和PASCAL上下文数据集包括更多相似背景的标签,例如椅子和沙发,马和牛等。最新的ADE20K数据集是最具挑战性的一个场景解析数据集,具有更多的场景类,如图1.

目前最先进的场景解析网络主要是基于全卷积网络FCN,基于深度卷积神经网络的方法增强了动态对象的理解,但仍然面临着多样场景和不受限制的词汇表达的限制。如图2中,把一艘船误认成一辆车。这些错误主要是由于对象的相似外观造成的。但是,在将场景描述为河流附近的船库之前,查看图片的上下文信息,应该还是可以产生正确的预测。

为了获得准确的场景感知,知识图依赖于场景的上下文先验知识。作者发现当前基于FCN的模型主要问题是缺乏可以利用全局场景类别线索的合适策略。对于复杂的场景理解,为了获得全局图像级别的特征,空间金字塔池被广泛采用,其中空间统计为整体场景提高了良好的描述。空间金字塔池化网络进一步增强了这种能力。

与其他方法不同,为了结合合适的全局特征,作者提出了金字塔场景解析网络。除了用于像素级预测的传统扩张FCN外,作者将像素级特征扩展到专门设计的全局金字塔池中,局部线索和全局线索可以使最终预测更加可靠。作者还提出了一种具有深度监督损失的优化策略,具体实施细节在后文中说明。

PSPNet为像素级预测提供了有前途的研究方向,甚至有益于基于CNN的立体匹配、光流识别、深度预测的研究。该论文的主要贡献有三点:

  1. 提出了一种金字塔场景解析网络,在基于FCN的像素级预测框架中嵌入复杂的场景上下文特征
  2. 基于深度损失,为深度ResNet开发了一种有效的优化策略
  3. 为最先进的场景解析和语义分割构建了一个实用的系统,其中包含了所有关键的实现细节。

2、相关工作

主要回顾场景解析和语义分割最新进展。在深度神经网络的推动下,像素级预测任务如场景解析和语义分割,通过用卷积层替换分类中的全连接层而取得了巨大的进步。为了扩展神经网络的感受野,Noh等人提出了扩张卷积,提出一种带有反卷积网络的由粗到细结构来学习分割掩模。PSPNet的基础网络是FCN和扩张网络。

其他方法主要有两个方向。其中一个方向是多尺度特征融合。因为在深度网络中,高层特征包含更多的语义信息和更少的位置信息,融合多尺度特征可以提高网络的性能。另一个方向是结构化预测。在之前的工作中,有利用条件随机场CRF来优化分割结果的,也有基于CRF和场景解析网络通过端到端建模来优化网络的。这两个方向
都改善了预测语义边界的合适对象的场景解析任务的定位能力。然而在复杂的场景中仍然有很大的空间来利用必要的信息。

为了充分利用全局图像级别的先验知识来解决多样场景理解问题,一些方法提取了具有传统特征的全局上下文信息,而不是深度神经网络。Liu等人在目标检测网络下进行了类似的改进。还有些方法证明了FCN的全局平均池化可以改进分割结果。但是作者的实验表明,这些全局描述对于具有挑战性的ADE20K数据集而言并不具有足够的代表性。因此,作者通过金字塔场景解析网络可以利用不同区域的上下文聚合来利用全局上下文信息的能力。

3、金字塔场景解析网络

3.1 一些重要的观察

新的ADE20K数据集包含150过个类别标签(例如墙、天空、树木)1038张图片级别的场景描述(例如,机场航站楼、卧室、街道),因此存在大量的标签和场景分布。在以FCN方法为基础的预测结果中,以下总结了复杂场景解析的几个场景问题。

语境关系不匹配

语境关系在复杂场景理解中是很重要的。存在一些同时发生的视觉模式,例如飞机可能在跑道上或者在天空中飞行,而不是在马路上。例如图2中的第一行示例,FCN根据其外观预测黄色框中的船是汽车,但常识是汽车很少在河里。缺乏收集上下文信息的能力会增加错误分类的几率。

类别混乱

ADE20K数据集中有许多类别标签容易混淆。例如田野和泥土,山峰和山丘,墙、房屋、建筑物和摩天大楼。它们都有相似的外观,即使是标注整个数据集的标注专家都会有17.6%的错误率,如图2所示。

不显眼的类

3.2 金字塔池化

感受野的大小可以表示使用上下文信息的程度,zhou等人提出的CNN的经验感受野比理论上的感受野小得多,尤其是在深层卷积中,这样会让很多网络无法充分融合上下文信息。作者通过提出一个有效的全局先验表示来解决这个问题。

全局平均池化是全局知识先验的一种好的解决办法。
将金字塔池化生成的feature map平滑和串联到一个全连接层可以解决图像分类中输入图像是固定尺寸大小的问题。

PSPNet主要原理:

  • 给定一个输入图像,使用CNN来提取特征得到最后一个卷积层的feature map
  • 使用金字塔池化模块得到不同子区域的表示,再接上采样层和串联层生成最终的特征表示,这个最终的特征表示包含了所有的局部和全局上下文信息
  • 最后把这个特征表示放入到一个卷积层来得到最终的像素级预测。

    金字塔池化模块融合4个不同金字塔尺度的特征,最上层(最粗糙,红色)是全局池化操作,用来产生一个单一的bin输出;接下来的金字塔层将feature map划分为不同的子区域,并形成不同位置的池化表示。在金字塔池化模块中不同层的输出包含不同尺寸大小的feature maps。
  • 为了维持全局特征的权重,若金字塔层的尺寸大小为N在每一个金字塔层后面加一个1*1的卷积,降低上下文信息表示的维度为原来的1/N。
  • 再通过双线性插值的方法将低维度的feature maps上采样到和原始feature maps大小一样
  • 最后将不同层的特征串联起来作为最后金字塔池化的全局特征。

金字塔的层数和不同层的尺寸大小是可以修改的,这和送入到金字塔池化层的feature map的尺寸大小有关,该结构通过在一定步长内采用不同尺寸大小的池化内核来抽象出不同的子区域,因此在特征表示中多阶段的内核大小需要保持合理的差距。该论文的金字塔池化模块是四层的,内核大小分别为11, 22, 33,66。

3.3 网络结构

  1. 在a和b部分,使用一个预训练的带有扩张网络策略的ResNet来提取feature map,最终的feature map大小为输入图像的1/8
  2. c部分,对最后的feature map采用金字塔池化模块来收集上下文信息。采用一个4层的金字塔,池化核分别覆盖整个图像,图像的一半以及图像的一小部分,它们被融合成全局先验。
  3. 在金字塔池化模块的最后,将全局先验和原始的feature map串联起来
  4. 在d部分,使用一个卷积层来得到最终的预测map

    PSPNet对像素级的场景解析提供了一个高效的全局知识先验,金字塔池化模块可以收集不同层的信息,比全局池化具有更多的表示。PSPNet相比最初的扩张FCN网络,计算成本也没有明显增加。在端到端的学习中,可以同时优化全局金字塔池化模块和局部的FCN特征。

4.基于ResNet的FCN深度监督

使用预训练的深度网络可以提高网络的性能,但是会产生额外的优化困难。ResNet通过每个块中的跳跃层解决这个问题。ResNet的后期层主要基于先前的残差块来学习残差。
相反地,作者提出,通过一个额外的loss监督来生成初始结果,然后在最终的loss后学习残差。这样深度网络的优化问题就可以被分解为两个更容易解决的部分。

论文中举例了深度监督模型ResNet101结构如下图所示。除了主分支使用了softmax分类器来训练最终的分类器之外,在第四阶段之后还使用了另一个分类器,如res4b22模块。relay反向传播将后向辅助损失阻挡在一些浅层,与之不同的是,作者将2个loss贯穿前面所有的层。辅助loss(图中的loss2)可以帮助优化网络的学习过程,而主分支的loss(图中的loss1)起主要作用,因此作者增加了权重来平衡辅助loss(loss2)。

在测试阶段,作者取消了辅助分支,只使用了为最终预测优化好的分支。基于ResNet的FCN深度监督学习策略已经被广泛使用了。具体细节在5.2节中。

5.实验

作者提出的方法适用于场景解析和语义分割,论文在ImageNet 2016场景解析数据集、PASCAL VOC2012语义分割和场景理解Cityscapes数据集上进行了评估。

5.1 实验细节
实验框架:Caffe
学习率策略:poly,当前学习率=(1-iter/max_iter)^power, 其中power = 0.9
初始学习率:0.01
batch_size =16
axuliary loss weight=0.4

5.2 ImageNet Scene Parsing Challenge 2016
数据集:ADE20K,包括150个类,1038个图像级别的场景标签
数据集划分:训练集20k/验证集2K/测试集3k
评价指标:PA(pixel-wise accuracy)和mIOU(mean of class-wise intersection over union)

PSPNet验证(分别配置最大池化、平均池化、带有一个全局特征的池化或带4个全局特征的池化、池化操作后串联操作前有无降维),见table 1。以基于ResNet50的FCN为基准,B1和B1236分别表示被池化的feature map的大小为1x1,{1x1,2x2,3x3,6x6}.
MAX和AVE分别表示最大池化和平均池化操作,DR表示池化后的降维操作。

辅助损失验证实验 辅助损失有助于学习过程,且不会影响主分支的学习。作者为辅助损失设置了不同的权重α(范围是0~1),见table 2。同样以基于ResNet50的扩张FCN网络为基准,主分支使用softmax损失进行优化,添加辅助损失分支,当辅助损失的权重α=0.4时,网络的性能最好。作者认为,对于新增的辅助损失,网络越深性能提升效果可能会越好。(这里可以自己做实验验证)

预训练模型验证实验 设置不同深度的预训练模型ResNet,分别采用ResNet50,ResNet101,ResNet152,ResNet269进行实验,其他设置相同,见图5。

Table3列出了使用不同深度的预训练模型的PSPNet的详细得分。

更多详细的性能分析见table4

table5是ImageNet Challenge scene parsing2016的一些结果。

同理在Pascal VOC2012和Cityscape数据集上的实验结果见论文原文。

6、结论

该论文为复杂的场景解析提出了一个有效的金字塔场景解析网络,全局金字塔池化特征提供了额外的上下文信息,同时提出了一种深层监督的优化策略,即基于ResNet的FCN网络。

【论文阅读】PSPNet(Pyramid Scene Parsing Network)相关推荐

  1. Pyramid Scene Parsing Network

    论文地址:https://arxiv.org/pdf/1612.01105.pdf 源码地址:https://github.com/hszhao/PSPNet 来自:Semantic Segmenta ...

  2. 【语义分割】PSPNet:Pyramid Scene Parsing Network

    文章目录 一.主要思想 二.方法 一.主要思想 提出了pyramid pooling module (PPM) 模块,聚合不同区域的上下文信息,从而提高获取全局信息的能力. 现有的深度网络方法中,某一 ...

  3. 场景解析--Pyramid Scene Parsing Network

    Pyramid Scene Parsing Network CVPR2017 语义分割 https://github.com/hszhao/PSPNet 针对 FCN 中没有 context 信息,本 ...

  4. 【PSPnet2017】Pyramid Scene Parsing Network

    Pyramid Scene Parsing Network 金字塔式场景解析网络 arXiv:1612.01105v2 [cs.CV] 27 Apr 2017 文章地址:https://arxiv.o ...

  5. 论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection

    论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection (1)Author (2)Abstract (3 ...

  6. 机器学习笔记: Upsampling, U-Net, Pyramid Scene Parsing Net

    前言 在CNN-based 的 模型中,我们可能会用到downsampling 操作来减少模型参数,以及扩大感受野的效果. 下图是一个graph segmentation的例子,就先使用 downsa ...

  7. 论文阅读11——《Mutual Boost Network for Attributed Graph Clustering》

    是聚类让我们"聚类",我整理了部分深度图聚类代码,希望大家多多支持(GitHub代码):A-Unified-Framework-for-Deep-Attribute-Graph-C ...

  8. 论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift

    论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift 全文翻译 ...

  9. 【论文阅读】Gait Quality Aware Network: Toward the Interpretability of Silhouette-Based Gait Recognition

    Gait Quality Aware Network: Toward the Interpretability of Silhouette-Based Gait Recognition 摘要 Intr ...

最新文章

  1. HDU1083(二分图-匈牙利算法)
  2. No module named sipconfig
  3. 视图加载时自动执行铵钮事件
  4. HDU5765 Bonds 最小割极
  5. raspberry pi_如何使用Raspberry Pi构建数字针Kong相机
  6. java nature_什麼是Eclipse項目的JavaEMFNature nature?
  7. 【Java数据结构与算法】第八章 快速排序、归并排序和基数排序
  8. 51php服务器稳不稳定,百度经验:两步搞定PHP-FPM优化,让服务器更平稳
  9. android 整合最新X5WebView 以及离线安装教程
  10. JAVA获取服务器文件名乱码,java获取的文件名乱码问题
  11. centos7时间校准
  12. 解决 git reject
  13. Mysql(多级分销)无限极数据库表设计方法
  14. esp32运行linux,ubuntu系统搭建ESP32 开发环境
  15. linux hwclock -r显示的HWC TIME(硬件时钟时间)与timedatectl结果中的RTC TIME(实时时钟时间)有什么区别?BIOS时钟源
  16. 计算机硬盘满了怎么解决,我的128G笔记本电脑硬盘又满了,怎么办?
  17. 爬楼梯--每次只能走一步或者两步,但是不能连续走两步
  18. VC中CList用法
  19. pyecharts制作地图Map
  20. fcpx插件:6个现代全屏标题字幕动画模板Modern Titles

热门文章

  1. (私人收藏)灰蓝绿3种风格的套图图标
  2. aspx repeater 用法_Repeater控件的详细用法
  3. 说话人识别损失函数的PyTorch实现与代码解读
  4. 庄懂的技术美术入门课(美术向)——学习笔记01
  5. Spring嵌套事务是怎么回滚的?
  6. 下载了XAMPP怎样打开MYSQL_xampp mysql安装启动
  7. iOS - CodeReview 代码评审
  8. c++第四天(补充引用的定义)
  9. 受关注的两个投资市场就是港股和美股
  10. 简单的部门递归兰巴达写法