论文:PSPNet-Pyramid scene parsing Network,阅读笔记

PSPNet-Pyramid scene parsing Network

目录

PSPNet-Pyramid scene parsing Network

1 概述

2 模型设计

3 模型损失函数设计

4 模型的训练细节

5 模型的性能指标

5.1 ImageNet Scene Parsing Challenge 2016

5.2 PASCAL VOC 2012

5.3 Cityscapes

6 总结


1 概述

       场景分割是计算机视觉里的基本任务,其目标是对图像中的每一个像素进行类别的划分,潜在应用于在自动驾驶、机器人感知等领域。我们提出的PSPNet目标分割方法,其主要优点在于:

  1. 基于FCN(全卷积网络)目标分割框架的基础上嵌入了复杂的背景特征。
  2. 基于深监督损失函数对ResNet(残差网络)提出了一种有效的最优化策略。
  3. 建立了一个state-of-the-art(最先进)场景解析与语义分割系统,并且包含了很多实用的实现策略。

      其他相关的工作主要分为两个路线:

  1. 其中一条路线是进行多尺度的特征提取,因为在较深的网络当中更高层的特征包含了更多的语义信息,但是包含较少的空间位置信息。
  2. 另外一条路线是基于结构预测,比如说通过采用CRF(条件随机场)作为后续步骤来提取分割结果。

 

                                                                                    图1-1 分割结果对比

     在传统FCN网络中观察到了如下现象:

  1. 背景关系的不匹配:从第一行的结果可以看到,FCN将在河面上的船识别为了车,缺少对背景信息的理解导致了误分类。
  2. 目标种类范畴的混淆:在第二行的结果中可以看到,FCN将大楼同时预测为building和skycraper。
  3. 目标的忽略:从第三行的结果可以看到,FCN缺少了对所有背景的理解,从而没有将床上的枕头分割出来。

       总的来说,缺少对背景关系和全局信息的理解一定程度上会致使一些错误,一种全局场景级别的深度网络可以改善场景分割的表现。


2 模型设计

       我们提出了金字塔池化模块,并以此来构建最终的特征层。其模型设计如图2-1所示,从中可以看到中间的金字塔池化模块分四个尺度对特征层进行池化。经过最粗略的池化,最终可以得到大小为一个bin的特征输出。其它三种池化把特征层池化成了不同的级别,分别以不同的尺寸来代表特征层,其大小分别为1*1、2*2、3*3、6*6个bin。

       为了保持全局特征的权重,使用了大小为1*1的卷积核,把表示背景的特征图维度降为原来的1/N,其中N为金字塔的池化级别,本次设计中N=4。然后我们分别把低维的特征图上采样为同样大小的特征图。最终,不同大小的特征图组合成为了金字塔池化全局特征。

                                                                图2-1 PSPnet模型设计示意图

       如上图所示,基于金字塔池化模块,我们可以得到了PSPNet的完整结构。对于输入的图像,通过已经过预训练的卷积神经网络和膨胀卷积来提取卷积特征,最终输出的特征图大小是原输入图像的1/8。经过4种不同级别的金字塔池化并进行卷积后,所得到的特征图已经可以包含图像不同级别的特征信息了。然后和原始的特征图进行组合,再经过一次卷积后得到最终的分割结果。另外,相比于FCN来说,PSPNet并没有产生太大的计算代价。

3 模型损失函数设计

       通常,提高模型的深度可以带来性能的提升,但是同时也会增大模型优化的难度。ResNet可以很好地解决这一问题,其后级的层学习前级层的残差信息。

                                                                           图3-1 Loss函数设计示意图

       如图3-1所示,我们采用了两个损失函数,第一个损失函数用来监督产生的初试结果,放在第四级残差模块res4b22之后。第二个损失函数采用softmax loss来训练最终的分类器。这样一来可以把深度网络的优化分为两部分来进行,加快训练的进程。通常,第二个损失函数发挥着主要的作用,也可以通过设置权值来平衡这两个损失函数。在测试阶段,会放弃第一个辅助的损失函数,只通过主分支来优化最终的预测。

4 模型的训练细节

       模型最后分别在3中不同的数据集上面进行了评估,其分别为:ImageNet 2016、PASCAL VOC 2012、Cityscapes。学习率更新公式和参数设置如下所示:

                                                        base learning rate=0.01,power=0.9

                                                                             momentum=0.9

                                                                         weight decay=0.0001

                                                                              batchsize=16

       数据处理上采用了随机镜像的处理:resize(0.5-2),旋转(-10-10度)。在ImageNet和PASCAL VOC上进行了高斯模糊处理,这些复杂的数据处理使得模型能够很好的避免overfitting。同时,我们的模型也使用了膨胀卷积。我们修改了caffe,使其支持批量正则化,通过OpenMPI从多GPU上面收集数据。对于辅助的Loss函数,我们将其权重设置为了0.4。

5 模型的性能指标

5.1 ImageNet Scene Parsing Challenge 2016

       在挑战赛中使用了ADE20K数据集,有150个类别和1038个图像标注,其训练集、验证集、测试集的数目分别为20K、2K、3K。用Pixel Acc和Mean IoU来作为模型性能的评估指标。

                                                                    图5-1 不同参数设置PSPNet的表现

       B1236表示池化得到的特征层大小分别为1*1、2*2、3*3、6*6个bin。MAX和AVE的区别在于采用最大值池化和平均值池化。DR表示经过池化之后进行降维。

                                                                     图5-2 不同权重设置Loss下PSPNet的表现

       我们通过设置辅助Loss权重的大小,进行试验来对比PSPnet的效果,其取值范围为0-1。基准网络使用了基于FCN和膨胀卷积的ResNet-50网络。从图5-2中可以看出当a=4时,模型具有最好的表现。

                                                                   图5-3 以不同层数预训练时PSPNet的表现

       从图5-3中可以看出,更深的预训练模型能够获得更好的性能表现。MS表示多尺度的测试。

                                                                     图5-4 PSPNet和其他方法的对比

       图5-3中的DA表示使用了数据增强的操作,AL表示使用了辅助Loss函数,PSP表示使用了我们所提出的PSPNet,MS表示进行了多尺度的测试。

                                                            图5-5 PSPNet在ImageNet 2016挑战赛上的表现

       图5-5显示出来了PSPNet在ImageNet 2016挑战赛上的表现。Final Score为Pixel Acc和Mean IoU的平均值,我们的方法在测试集上的Final Score可以达到57.21%。

5.2 PASCAL VOC 2012

       PASCAL VOC 2012中包含了20种物体类别和1个背景类别。我们在训练、验证和测试时分别用了10582、1449和1456张图片。图5-6为PSPNet在PASCAL VOC 2012上面的性能表现。带有标记的方法表示在MS-COCO数据集上面经过了预训练。从中可以看出来PSPNet达到了82.6%的精确度,在MS-COCO数据集上面经过了预训练后,可以达到85.4%的精确度。20个种类中的19种都达到了最优的表现。

                                                              图5-6 PSPNet在PASCAL VOC数据集上的表现

       从图5-7中我们可以看出来,相比于基准的分割模型:

  1. PSP纠正了一些误分类的错误,比如说第一行中的“马”和“狗”。
  2. PSPNet找到了缺失的部分,比如说第二行中的“飞机”和“桌子”。
  3. PSPNet在小尺寸目标表现良好,比如说第三、四行中的“人”、“瓶子”。

                                                                 图5-7 PSPNet在PASCAL VOC数据集上的改善

5.3 Cityscapes

       Cityscapes数据集包含了从50个城市收集而来的5000个高质量像素级标注的图像,包含了19个人和物体的种类。我们在训练、验证和测试时分别用了2975、500和1525张图片。

                                                              图5-8 PSPNet在Cityscapes数据集上的表现

       图5-8为PSPNet在Cityscapes数据集上的表现。带有标记的方法表示同时在粗糙的和精确的数据集上面进行训练。可以看出来,PSPNet最终可以达到80.2%对的平均精确度。

6 总结

  1. 我们提出的PSPNet,可以高效的理解复杂的背景含义,为全局池化特征提供了更多的背景信息。
  2. 我们为ResNet-based FCN网络提供了一种深监督优化策略。
  3. 我们希望PSPNet可以为语义分割及相关先进技术的发展提供有用的策略。

猜你喜欢

转载自blog.csdn.net/weixin_42717395/article/details/83152059