前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PSPNet | 语义分割及场景分析

PSPNet | 语义分割及场景分析

作者头像
小白学视觉
发布2022-09-28 11:16:16
6840
发布2022-09-28 11:16:16
举报
文章被收录于专栏:深度学习和计算机视觉

本次, 由香港中文大学(CUHK)和商汤科技(SenseTime)提出的金字塔场景解析网络(Pyramid Scene Parsing Network, PSPNet)已经过审阅。

  • 语义分割的目标仅仅是获知已知对象的每个像素的类别标签。
  • 场景解析是基于语义分割的,它的目标是获知图像内所有像素的类别标签。

场景解析

通过使用金字塔池化模块(Pyramid Pooling Module),在整合基于不同区域的上下文后,PSPNet在效果上超过了FCN、DeepLab和DilatedNet等时下最佳的方法。PSPNet最终:

  • 获得2016年ImageNet场景解析挑战的冠军
  • 在PASCAL VOC 2012和Cityscapes数据集上取得当时的最佳效果

工作已发表于2017年CVPR,被引量超过600次。(SH Tsang @ Medium )

本文提纲

1. 对全局信息的需要

2.金字塔池化模块

3. 一些细节

4. 模型简化研究

5. 与时下最佳方法的比较

1. 对全局信息的需要

(c) 原有的未经上下文整合的FCN,(d) 经上下文整合的PSPNet

  • 关系错误匹配:FCN基于外观将黄色框内的船预测为“汽车”。但根据常识,汽车很少会出现在河面上。
  • 类别混淆:FCN将框内的对象一部分预测为“摩天楼”,一部分预测为“建筑物”。这些结果应当被排除,这样对象整体就会被分在“摩天楼”或“建筑物”其中一类中,而不会分属于两类。
  • 细小对象的类别:枕头与床单的外观相似。忽略全局场景类别可能对导致解析“枕头”一类失败。

因此,我们需要图像的一些全局特征。

2.金字塔池化模块

特征提取后的金字塔池模块(颜色在本图中很重要!)

(a)和(b)

(a)为我们的一个输入图像。(b)采用扩展网络策略(DeepLab / DilatedNet)提取特征。在DeepLab后面加上扩张卷积。特征map的大小是这里输入图像的1/8。

(C).1

在(c)处,对每个特征map执行子区域平均池化。

  • 红色:这是在每个特征map上执行全局平均池的最粗略层次,用于生成单个bin输出。
  • 橙色:这是第二层,将特征map划分为2×2个子区域,然后对每个子区域进行平均池化。
  • 蓝色:这是第三层,将特征 map划分为3×3个子区域,然后对每个子区域进行平均池化。
  • 绿色:这是将特征map划分为6×6个子区域的最细层次,然后对每个子区域执行池化。
(c).2. 1×1 卷积用于降维

然后对每个得到的特征map进行1×1卷积,如果金字塔的层次大小为N,则将上下文表示减少到原始的1/N(黑色)。

在本例中,N=4,因为总共有4个级别(红色、橙色、蓝色和绿色)。

如果输入特征map的数量为2048,则输出特征map为(1/4)×2048 = 512,即输出特征map的数量为512。

(c).3. 双线性插值用于上采样

采用双线性插值对每个低维特征map进行上采样,使其具有与原始特征map相同的大小(黑色)。

(c).4. 连接上下文聚合特征

所有不同级别的上采样特征map都与原始特征map(黑色)连接在一起。这些特征映射融合为全局先验。这就是金字塔池模块(c)的终止。

(d)

最后,通过卷积层生成最终预测的分割图(d)。

子区域平均池的概念实际上与SPPNet中的空间金字塔池化非常相似。先采用1×1卷积然后串联,与Xception或MobileNetV1使用的深度可分离卷积中的深度卷积非常相似,除了只是使用双线性插值使所有特征map的大小相等。

3.一些训练细节

中间的辅助损失项

· 辅助损失项用于训练过程中。辅助损失项有0.4的权重,以用来平衡最终损失和辅助损失。在测试时,则会放弃辅助损失。这是一种针对深度网络训练的深度监督训练策略。这个想法类似于GoogLeNet / Inception-v1中的辅助分类器(https://medium.com/coinmonks/paper-review-of-googlenet-inception-v1-winner-of-ilsvlc-2014-image-classification-c2b3565a64e7)。

· “多元”学习代替了“单元”学习。

4. 模型简化测试

ADE2K 数据集是ImageNet场景解析挑战赛2016中的数据集。它是一个更具挑战性的数据集,包含多达150个类和1,038个图像级标签。有20K/2K/3K图像用于训练/验证/测试。

验证集用于模型简化测试。

4.1. 最大值池化vs 平均池化,以及降维(DR)

不同算法在ADE2K验证集上的结果

  • ResNet50-Baseline: 基于ResNet50的扩张FCN。
  • ‘B1’和‘B1236’: bin大小分别为{1×1}和{1×1,2×2,3×3,6×6}的池化特征map。
  • ‘MAX’和‘AVE’: 最大池操作和平均池操作
  • ‘DR’: 降维.

平均池始终有更好的结果。使用降维比不使用降维要好。

4.2 辅助损失

辅助损失项的不同权重在ADE2K验证集上的结果

α= 0.4得到最好的性能。因此,使用权重α= 0.4。

4.3. 不同网络层数和不同尺度(MS)的测试

不同层数以及不同尺度的网络在ADE2K验证集上的结果

如我们知道的一样,更深的模型有更好的结果。多尺度测试有助于提高测试结果。

4.4. 数据增强 (DA)以及与其他算法的对比

在ADE2K验证集上与最新的方法的比较结果(除最后一行外,所有方法都是单尺度的)。

ResNet269+DA+AL+PSP: 对于单一尺度的测试,所有的技巧结合在一起的话,这种算法比最先进的方法有很大的优势。

ResNet269+DA+AL+PSP+MS: 同时进行了多尺度测试,取得了较好的效果。

下面是一些例子:

ADE2K中的样例

5. 与最先进方法的比较

5.1. ADE2K - ImageNet场景解析挑战赛2016

ADE2K测试集结果

PSPNet赢得了2016年ImageNet场景解析挑战赛冠军。

5.2. PASCAL VOC 2012

在使用数据增强的情况下,有10582/1449/1456张图像用于训练/验证/测试。

PASCAL VOC 2012测试集结果

“+”表示模型经过MS COCO数据预训练。

同样,PSPNet优于所有最先进的方法,如FCN、DeconvNet、DeepLab和Dilation8。

下面是一些例子:

PASCAL VOC 2012样例

5.3. Cityscapes

这个数据集包含了来自50个不同季节的城市的5000张高质量的像素级精细注释图像。分别有2975/500/1525张图像用于训练/验证/测试。它定义了包含材料和物品的19个类别。此外,我们亦为两种设定提供了20000张粗略注释的图像作比较,即,只使用精细数据以及同时使用精细和粗略标注数据进行训练。两者的训练都用“++”标记。

Cityscapes测试集结果

采用精细标注数据训练,或采用精细数据与粗略标注数据同时训练,PSPNet都取得了较好的效果。

下面是一些例子:

Cityscapes样例

作者还上传了Cityscapes数据集的视频,令人印象非常深刻:

另外两个视频例子:

https://www.youtube.com/watch?v=gdAVqJn_J2M

https://www.youtube.com/watch?v=HYghTzmbv6Q

采用金字塔池化模块,获得了图像的全局信息,提升了结果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文提纲
  • 1. 对全局信息的需要
  • 2.金字塔池化模块
    • (c).2. 1×1 卷积用于降维
      • (c).3. 双线性插值用于上采样
        • (c).4. 连接上下文聚合特征
          • (d)
          • 5. 与最先进方法的比较
            • 5.1. ADE2K - ImageNet场景解析挑战赛2016
              • 5.2. PASCAL VOC 2012
              • 5.3. Cityscapes
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档