PSPNet:金字塔场景解析网络

论文地址:http://jiaya.me/papers/PSPNet_cvpr17.pdf

目录

0、摘要

1、动机

2、本文方法

2.1、网络整体结构

2.2、金字塔池化模块——PPM

2.3、辅助损失

3、总结


0、摘要

对自由开发且多种多样的场景进行解析是具有挑战的。本文利用提出的带有金字塔池化模块的PSPNet,基于不同区域的上下文聚合,充分利用了全局上下文信息。我们的全局先验表示在场景解析任务中能够有效地产生高质量的结果,并且PSPNet提供了一个优秀的像素级预测框架。在多种数据技术,所提出的方法都达到了SOTA的性能。在2016年ImageNet场景解析挑战赛、2012年PASCAL VOC基准测试和Cityscapes基准测试中均获得第一名。单个PSPNet在PASCAL VOC 2012上获得mIoU精度85.4%的新记录,在Cityscapes上获得80.2%的准确度。

1、动机

PSPNet的提出,是通过观察FCN的缺陷而得到启发的。在此之前,基于FCN的框架是SOTA方法,但由于其没有利用全局先验信息,导致出现很多错误,例如由于很相似而将船识别为房屋,而不是因为其在水上而识别为船,如下图:

而这正是此前FCN类模型缺陷:为了实现准确的场景感知,需要依赖于场景上下文的先验信息。而空间金字塔池化(SPP)是一种广泛使用的用于获取全局信息的方法,所以作者基于此思想提出了PSPNet:基于带有空洞卷积的FCN加上金字塔池化模块(PPM),从而可以利用全局先验信息来解决复杂场景的分割。

2、本文方法

2.1、网络整体结构

PSPNet主要是在backbone部分引入了空洞卷积,并在其后跟了一个PPM,整体结构如图所示:

  • (1)输入图像经过backbone(带有空洞卷积的ResNet)进行特征提取,得到feature map,size为原图的1/8;
  • (2)对feature map使用pyramid Pooling模块进行处理:
  • (3)最后将第1步中的feature map和各个upsampling之后的金字塔分支concat起来,并将concat之后的表示经过卷积得到像素级分类(分割)结果;

注:金字塔分支和池化核大小都是可以调节的。

2.2、金字塔池化模块——PPM

关于PPM,其提出的初衷就是为了获取更为全局的先验。作者指出,在传统的CNN中,实际产生作用的感受野要比其理论值小很多。

Global average pooling(GAP)是一个比较不错的baseline,但是在应对ADE20K这种复杂场景时还是显得有些力不从心。在ADE20K中,每个场景都可能会有很多各类,如果直接使用GAP进行融合,会丢失空间信息且有可能导致歧义。而如果将GAP和基于子区域的上下文一起融合,将对区分不同类别方面有所帮助。

另外,在分类问题上,金字塔池化被用于提取不同层级的特征。其可以避免CNN输入固定尺寸,从而可以接受任意输入大小的输入。本文提出的PPM是在此基础上提出,以进一步降低不同子区域之间的上下文信息损失。

PPM的处理过程如网络结构中的(c)所示,具体的:

  • 最上面的红色部分金字塔分支,代表了最粗糙、包含了全局上下文信息的部分,下面的(橙色、蓝色、绿色)分别代表了空间信息逐级增大的金字塔分支;
  • 对每一个分支,使用1*1卷积进行降维,如果有N个分支,则将维度降为原来的1/N;
  • 然后,将不同分支使用双线性插值上采样到与第1步生成的feature map同size的feature map;

通过利用PPM中不同尺度的池化操作,就可以从输入的feature map中提取既有全局又有局部的上下文信息,然后融合起来之后就是全局先验信息了。

2.3、辅助损失

作者还提出了一个用于辅助训练的损失函数,如已resnet101为backbone时,将其加在resnet101的res4b22的后面,如图所示:

如此一来,就将整个网络的优化分解为两个子问题,而每个子问题的优化都相对容易。同时,通过给主损失、辅助损失分配不同权重来平衡其影响。对于辅助输出的feature map,作者将其同样与样本的GT labels进行损失计算,然后乘以一个权重后与整个网络最后的输出和GTs计算得到的损失相加。形如:

# output包含主损失、辅助损失
loss = self.loss(output[0], target)
loss += self.loss(output[1], target) * 0.4

但是需要注意的是,这种添加辅助损失的方式只出现在训练过程,在测试阶段会将其移除,只使用主分支的输出进行预测。相当于这是一种训练策略,用于辅助训练过程。

3、总结

PSPNet的提出,主要是针对复杂场景的分割。其主要贡献是提出使用PPM来聚合全局上下文信息,并提供了在基于ResNet的FCN网络中使用辅助损失进行训练的策略。

猜你喜欢

转载自blog.csdn.net/oYeZhou/article/details/112305817