论文阅读:
《Pyramid Scene Parsing Network》原文链接

场景解析对于不受限制的开放词汇表和多样化的场景具有挑战性。在此论文中,利用金字塔池模块和金字塔场景解析网络(PSPNet)来开发基于不同区域的全球上下文信息聚合的能力。全局先验表示法能够有效地生成高质量的场景解析结果,pspnet在像素级预测上作为优越的框架。该方法在不同的数据集上实现了最先进的性能。2016年,在场景解析挑战中获第一。PSPNet在PASCAL VOC 2012和Cityscapes上的mIoU的准确性分别为85.4%和80.2%。

介绍

在强大的深度神经网络的驱动下,像场景解析、语义分割等像素级预测任务取得了很大进展。基于语义分割的场景分析是计算机视觉领域的重要研究课题之一。它通过给每个像素分配一个标签来表示完整的场景理解。它可以预测标签和位置,该技术在自动驾驶和机器人传感等领域有广泛的应用。为了获得准确的感知,知识图依赖于场景上下文的先验信息。PSPNet结合适当的全局特征,利用传统的扩展FCN和专门设计的全局金字塔,将局部线索和全局线索结合起来,使最终预测更加可靠。

语义分割数据集格式 语义分割miou_数据集


情景分析的研究方法主要有两种:多尺度特征集成和结构预测。较高层次的特征包含较多的语义意义和较少的位置信息,较低层次的特征包含较多的详细信息。结合多尺度特征可以提高性能。为了更好地利用全局信息,可以利用FCN的全局平均池来改进语义分割结果。与全局池化不同的是,PSPNet通过不同的基于区域的上下文聚合和金字塔式场景解析网络来挖掘全局上下文信息。以下是基于FCN的一些观察结果,这些观察结果让人联想到金字塔池模块优先作为一个有效的全局上下文。

1)不匹配关系

上下文关系对理解复杂场景普遍十分重要。某种物体的出现往往具有一些固定的视觉模式。例如,一架飞机很可能在跑道上或者在空中飞行,而不是在道路上,河水上基本不会出现车。缺乏收集上下文信息的能力增加了错误分类的可能性。

2)混淆类别
ADE20K数据集中有许多类标签对十分难以区分。比如field和earth;mountain和hill;wall, house, building和skyscraper。这几对物体的外表十分相似。FCN在预测时会将一个物体的不同部分分别预测成不同标签。此问题可以通过类别之间的关系来解决。

3)不明显类

场景中往往包含任意大小的对象和东西。一些小尺寸的东西往往很难找到,而大型的对象可能会超过FCN的感受野,从而导致不连续的预测。为了提高对于非常小或大的物体的性能,应该更加注意包含不显眼东西的子区域。

语义分割数据集格式 语义分割miou_池化_02

PSPNet

1.金字塔池化模块
金字塔池化模块,是一种有效的全局上下文先验模型。PSPNeT中的金字塔池化模型有层次的全局先验结构,包含不同尺度、不同子区域间的信息,可以在深层神经网络的最终层特征图上构造全局场景先验信息。

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

该结构通过在几个stride中进行不同尺寸的池化来对不同的子区域实现抽样。金字塔等级的池化核大小是可以设定的,这与送到金字塔的输入有关,并且多个层级的核尺寸应该保持合理的差距。文中的金字塔池化模块是一个四层结构,bin大小为1×1,2×2,3×3和6×6。

语义分割数据集格式 语义分割miou_池化_03

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

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

实验

实验中使用的数据集是NYU纽约大学建立的数据集,该数据集可以用于多类视觉任务,包含深度图和和宽度图。文中语义分割使用1449张原始图片,以及分割类的标注,划分训练集、验证集和测试集。评价指标使用准确率和平均交并比。具体的实现可以参考代码
1)https://github.com/hellochick/PSPNet-tensorflow/blob/master/train.py 2)https://github.com/mehtanihar/pspnet 3)https://github.com/chenxi116/DeepLabv3.pytorch 有使用tensorflow和pytorch框架,代码还未运行,待之后实现下。

Zhao H , Shi J , Qi X , et al. Pyramid Scene Parsing Network[J]. 2016.