论文题目:Pyramid Scene Parsing Network

论文链接:https://arxiv.org/pdf/1612.01105.pdf

各位好,今天我给大家带来一篇关于图像语义分割领域文章。这是2017年发表在CVPR上的一篇文章。可以说是经典。为何这么说呢?不用急,我会在后续笔述中详细阐述。由于本人爱好,各位可能在本人博文的看到很多研究方向,有视频行为识别,图像分割,行为检测,图像分类,不过虽然多,但是我感觉都大同小异。好了,多余的话我就不说了,现在开始今天的正题。按照我写博客的习惯,我会先对文章进行整体介绍,然后介绍这个方向研究现状,接着是研究方法(这是论文的核心),最后是实验阶段,来说明所提出模型/架构的优越性。

这篇文章为何叫PSPNet呢?因为作者提出了一个模块,这个模块叫做Pyramid Pooling Module(金字塔池化模块),那么这个模块是作用是什么呢?可以将局部的上下文进行聚合,形成全局的上下文,更全面地实现定位和像素分类。语义分割要做的其实就是预测所关注对象的label,lacation和shape。该PSPNet是2016年ImageNet场景解析挑战赛的冠军,在PASCAL VOC 2012语义分割基准上排名第一,在Cityscapes数据上排名第一。最后说一下这篇文做的贡献:

  • 提出了一个金字塔场景解析网络,在基于FCN的像素预测框架中嵌入困难的场景上下文特征;
  • 提出了一种基于深度监督损失的深度ResNet的有效优化策略;
  • 构建了一个实用的场景解析和语义分割系统

接着笔述一下语义分割的研究现状吧。目前工作主要是基于卷积+反卷积实现语义分割框架进行改进,当然我今天笔述的这篇文章也是基于此,具体代表网络有UNet,FCN,Unet++等。另外研究工作包含两个主线,一种是多尺度特征嵌入来改善网络表现;一种是使用条件随机场来对分割结果进行后处理,具体网络代表有DeepLab;这两个主线的改善了分割结果的定位。当然,相关方向的文章需要各位读者深入阅读,并进行实验,这样才可以融汇贯通。

下面笔者来介绍这篇文章的方法部分,这是论文的灵魂所在。首先,我来解释一下上面提到的,为何要提出金字塔池化模块。看图1,先看最上面一行,FCN网络预测水里的小船(boat)为汽车(car),这种情形叫做关系不匹配(Mismatched Relationship),

图1 不同网络分割对比图

造成这种错误原因是丢失了全局的上下文信息。在看看中间一行,FCN预测框内building部分为skyscrape,部分为building,这种情形叫做类别混淆,这种错误可以通过类别之间的关系来被修正。最后看第三行,FCN预测中将小的pillow(枕头)进行忽略,这种情形叫做不显眼类别(Inconspicuous Classes),这个情况是由于FCN感受野设置不合理造成的,为了解决这种问题,网络要关注不

图2 金字塔池化层

同子区域的感受野(我们可以使用上下文信息多少)。当然还有其它问题,总之这就是Pyramid Pooling Module提出来的原因。接下来介绍我们的重点对象Pyramid Pooling Module,可以提取全局的上下文信息,具体如图2,该层的输入是由backbone卷积经典网络输出特征图,首先使用不同stride和size的pool作用得出不同尺度的特征图,每层叫做金字塔层,这代表不同子区间的特征和

 图3 PSPNet网络结构

不同位置的池化表示,接着,为了保持全局特征的权重,在每个金字塔层次后使用1×1卷积层,当金字塔层次大小为N时,将上下文表示的维数降到原来的1/N。然后直接对低维特征映射进行双线性插值,得到与原来特征映射相同大小的特征,最后对得到不同层次的特征进行concat(通道级别)。具体PSPNet网络结构如图3,首先输入一种要分割图片,之后经过一个预训练的ResNet,之后,当然该ResNet去掉全连接层,输出feature map大小为原始输入图像的1/8,接着将feature map输入到提出的Pyramid Pooling Layer提取全局上下文信息,最后输出最终的分割图。为了更好的优化提出的PSPNet,具体优化包括两部分了,作者基干网络采用ResNet110,优化如图4,分为两部分,主分支采用softmax损失来优化最终分类器,而辅助损失帮助优化学习过程,作者增加权重来平衡辅助损失,具体看代码,测试阶段去掉辅助损失。

图4 PSPNet网络优化

最后是实验部分,这部分我不会详细阐述,主要证明网络最优性。如图5证明maxpool和avgpool最优性。图6取值不同a对分割影响。图7不同深度和采用尺度测试对分割影响。图8PSPNet和不同模型对比。图9.PSPNet分割效果图展示。

 图5 不同池化和维度降低对比图

图6 不同权重下辅助函数对分割结果影响

图 7 不同深度和采用尺度测试对分割影响

 图8 和其他模型对比

图9 分割效果图

PSPNet语义分割网络相关推荐

  1. CVPR2020:4D点云语义分割网络(SpSequenceNet)

    CVPR2020:4D点云语义分割网络(SpSequenceNet) SpSequenceNet: Semantic Segmentation Network on 4D Point Clouds 论 ...

  2. Backbone发展与语义分割网络发展

    整理如下(按照arxiv上面时间线的预印版本来整理): Backbone(基础网络,也可以理解为分类网络): Backbone可以塞入UNET作为使用. 年代 网络名称与代码 论文名称 1989 Le ...

  3. Fast-SCNN语义分割网络详解

    文章目录 一.简要介绍 二.主要贡献 三.相关背景 (1)编码器-解码器架构 (2)多分支结构 (3)Fast-SCNN 四.网络架构 (1)学习下采样模块 (2)全局特征提取器 (3)特征融合模块 ...

  4. 一块GPU就能训练语义分割网络,百度PaddlePaddle是如何优化的?

    [引言]显存不足是训练语义分割网络常常遇见的问题,而显存是GPU计算中的稀缺资源.百度深度学习框架PaddlePaddle中的显存优化,不仅可以让研究人员在相同成本的计算设备上训练更大的模型,还可以在 ...

  5. RGPNET: 复杂环境下实时通用语义分割网络

    作者:Tom Hardy Date:2020-02-09 来源:RGPNET: 复杂环境下实时通用语义分割网络

  6. 北航、旷视联合,打造最强实时语义分割网络

    来源:AI科技评论 编辑:Camel 导语:MSFNet在Cityscapes测试集上达到77.1%mIoU/41FPS(注意是1024*2048),在Camvid测试集上达到75.4 mIoU/97 ...

  7. 【Deep Learning笔记】语义分割网络-Segnet的探索

    文章目录 1 简介 2 网络框架 3 Encoder 4 Pooling&Upsampling(decoder): 5 Batch Normlization 6 Loss Function 7 ...

  8. 深度学习:语义分割网络

    1.考虑采用实例分割或语义分割用于烟支打孔的内孔和外孔的边缘提取上 2.https://www.cnblogs.com/zxj9487/p/11154316.html 直接可以用的Python和Ope ...

  9. SegNet 语义分割网络以及其变体 基于贝叶斯后验推断的 SegNet

    HomePage: http://mi.eng.cam.ac.uk/projects/segnet/ SegNet Paper: https://www.computer.org/csdl/trans ...

最新文章

  1. velocity自定义标签和指令
  2. NSPredicate
  3. 【软考】2017年11月软件设计师上午真题1-4题答案解析
  4. AUTOSAR从入门到精通100讲(二十四)-AUTOSAR通信篇—AUTOSAR COM模块
  5. linux运维、架构之路-Zabbix监控
  6. ACM 美素数 (没AC)
  7. JavaScript函数—JavaScript闭包
  8. 手游与App测试如何快速转型? —— 过来人科普手游与App测试四大区别
  9. python大神作品_Python大神的书单
  10. Atitit zip解压文件 java use apache ant.jar C:\0wkspc\hislog\src\main\java\com\attilax\compress\ZipUt
  11. Head First中文版教程
  12. 软件测试师和网络工程师,【软件测试工程师(科技部)网络工程师面试题目|面试经验】-看准网...
  13. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-Arrays(数组)
  14. windbg 常用调试命令总结
  15. diskpart clean 误操作恢复
  16. 8、C语言printf函数与scanf函数
  17. 【开发工具】 我居然可以使用Office Tool Plus 安装上Office 真的是太不可思议了
  18. Clojure Web开发–最新技术–第2部分
  19. c3po数据库连接池简单配置
  20. lisp倒入excel数据画图_如何将EXCEL中的数据导入CAD2007画图

热门文章

  1. 如何将一节课转成文字文稿
  2. Unity的NGUI插件的HUD Text插件血条数值的显示
  3. python微信使用教程全图_微信跳一跳python怎么刷分_微信跳一跳python使用教程_飞翔教程...
  4. docker 搭建本地私有仓库
  5. 基于android平台的模拟血压计实现(surfaceView的熟练使用)
  6. 用hive实现股票的波峰和波谷
  7. [NC18386]字符串
  8. android开发笔记之mk文件
  9. 张迈机器人_预测帖:西安交通大学2020年新闻与传播专业考研分数线
  10. mysql设置hostname多个ip段_PHPMyadmin 配置多个网段