论文源址:https://arxiv.org/pdf/1612.01105.pdf

tensorflow代码:https://github.com/hellochick/PSPNet-tensorflow

基于PSPNet101的钢铁分割实验:https://github.com/fourmi1995/IronSegExperiment-PSPNet

摘要

对于不非特殊条件的场景解析仍十分困难。该文利用金字塔池化模型,融合了图像中不同区域的上下文信息。

介绍

分割可以预测完全理解场景,预测标签,位置,及其形状。目前基于FCN的分割网络提高了理解物体的能力,但面对非特殊条件的场景识别仍有挑战。比如相似物体的误分类。下图中由于船与车有相似的外形因此被误分类为船,但结合上下文信息,船在水面上,所以应大概率判断为一条船。

为了更好的进行场景预测,需要结合场景信息,目前大部分基于FCN的模型大都未有效的利用图片的上下文信息。相比以前将整张图片送入,空间金字塔得到的空间统计信息能更有效的描述图片中潜在的信息。

与上述方法不同,该文提出的PSPNet,除了利用传统的空洞FCN网络,将像素级的特征送入全局金字塔池化层中,局部和全局的信息一起作用于最后的预测,对于深度学习的loss提出了一种新的优化策略。该文主要贡献如下:

(1)提出了金字塔场景分析网络-基于FCN同时结合复杂的场景语义信息进行像素级预测框架。

(2)发现高效优化ResNet网络的策略。

(3)建立有效进行场景分析与语义分割的体系。

相关工作:

该文基于FCN与空洞网络,部分网络大致的两个研究方向为:(1)多尺寸特征信息 -网络的较深层包含更多的语义信息,但缺少位置等细节信息。(2)结构预测- 以前用CRF作为后处理来优化分割的结果。也有网络通过进行端到端的训练来增强结果。这些方法都改进了场景分析中的边界信息。

有基于传统特征(非深度学习得到的特征)提取的全局语义信息,提出了全局平均池化层的FCN可以提高分割结果,但通过实验发现这些操作提取的全局文本信息仍不足,该文利用PSPNet结合不同区域的上下文信息来增强全局信息。

金字塔场景分析网络

普通FCN面向复杂场景分析出现的问题总结:

(1)关系不匹配 - 未有效的利用图片中的上下文信息。

(2)类别混乱 - 比如 mountain and hill,building and skyscraper相似的外形却是不同的类别,解决方法是有效利用类别之间的关系。

(3)不明显的类别 - 场景中包含任意尺寸大小的物体,一些重要的小物体可能检测不到,相反,一些较大的物体超过FCN的感受野,导致无法进行连续的分割预测。因此,需要重视不同区域中不显眼的物体。

总结:上述产生的误差部分或者全部受到不同感受野的文本信息的关系与全局信息影响。一个带有适合全局场景信息的网络可以改善上述问题。

模型分析

在DNN中,感受野的大小可以大致与获得的文本信息量的多少挂钩。虽然理论上ResNet的感受野大小要比输入图像的大小大,但在CNN深层网络上的感受野实际却较小,从而导致无法有效的结合场景信息。不同区域的全局信息有助于区分不同类别。由金字塔池化不同层得到的feature map被拉直然后进行拼接送到全连接层中进行分类。全局优先(利用多尺度信息)的目的是解决用于分类CNN(自带全连接层,假设不同尺寸图片的输入 ,最后一层feature map大小有4x4,3x3,这里就出现问题)的固定尺寸的限制。

为了减少不同子区域上下文信息的损失,该文提出全局场景优先结构夹在CNN最后一层feature map上,结合不同子区域及不同尺寸的语义信息。

该模型fuse四个不同金字塔尺寸的特征,该结构将输入的feature map分为不同的子区域同时,并生成不同位置的polling 表示,从而产生不同尺寸的输出,为了强化全局特征的权重,在金字塔层数为N的情况下,利用一个1x1的卷积将上下文表示的维度将到1/N。然后将得到的特征通过双线性插值上采样至相同尺寸,进行拼接作为最终的全局金字塔池化特征。

网络结构

用带有空洞卷积的预训练的ResNet作为backbone,最后一层提取的feature map大小为输入图像的1/8。结构特点:相比global pooling,该模型获取多尺寸全局信息效果更好。计算上相比dilated FCN网络也不会增加很多,global pyramid pooling模型与FCN特征提取模型可以同时进行训练优化。

对于基于FCN的ResNet的深层监督

ResNet后部的网络层学习前面层数的參差特征。该文通过额外一个loss监督某一层初始分类结果,然后通过最终的loss对參差进行学习。

Loss1基于softmax loss用于训练最终的分类器,在ResNet第四阶段处添加了一个分类器进行辅助优化,两个loss一起传播,使用不同的权重,一起优化,最终将二者按权重相加进行平衡。

测试时将辅助loss2移除,只使用效果较好的loss1进行预测。

实验

在ImageNet scene parsing challeng 2016 , PASCAL VOC2012 semantic segmentation, Cityscapes上进行测试

学习策略:poly

base learning:0.01

power:0.9

Momentum:0.9

weigth decay:0.0001

data augmentation

batchsize:16

Reference

[1] A. Arnab, S. Jayasumana, S. Zheng, and P. H. S. Torr. Higherorder conditional random fields in deep neural networks. In ECCV, 2016. 2
  [2] V. Badrinarayanan, A. Kendall, and R. Cipolla. Segnet: A deep convolutional encoder-decoder architecture for image segmentation. arXiv:1511.00561, 2015. 6
  [3] L. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L.Yuille. Semantic image segmentation with deep convolutional nets and fully connected crfs. arXiv:1412.7062, 2014.1, 2, 4, 7, 8

 个人实验结果

  

论文阅读笔记十五:Pyramid Scene Parsing Network(CVPR2016)的更多相关文章

  1. 【semantic segmentation】Pyramid Scene Parsing Network(转)

    论文地址:https://arxiv.org/pdf/1612.01105.pdf源码地址:https://github.com/hszhao/PSPNet 来自:Semantic Segmentat ...

  2. [论文阅读笔记] Community aware random walk for network embedding

    [论文阅读笔记] Community aware random walk for network embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 先前许多算法都 ...

  3. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

  4. 论文阅读笔记十二:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation(DeepLabv3+)(CVPR2018)

    论文链接:https://arxiv.org/abs/1802.02611 tensorflow 官方实现: https: //github.com/tensorflow/models/tree/ma ...

  5. 论文阅读笔记十九:PIXEL DECONVOLUTIONAL NETWORKS(CVPR2017)

    论文源址:https://arxiv.org/abs/1705.06820 tensorflow(github): https://github.com/HongyangGao/PixelDCN 基于 ...

  6. 论文阅读笔记十八:ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation(CVPR2016)

    论文源址:https://arxiv.org/abs/1606.02147 tensorflow github: https://github.com/kwotsin/TensorFlow-ENet ...

  7. 论文阅读笔记十六:DeconvNet:Learning Deconvolution Network for Semantic Segmentation(ICCV2015)

    论文源址:https://arxiv.org/abs/1505.04366 tensorflow代码:https://github.com/fabianbormann/Tensorflow-Decon ...

  8. 论文阅读笔记十四:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation(CVPR2015)

    论文链接:https://arxiv.org/abs/1506.04924 摘要 该文提出了基于混合标签的半监督分割网络.与当前基于区域分类的单任务的分割方法不同,Decoupled 网络将分割与分类 ...

  9. 论文阅读笔记十:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs (DeepLabv2)(CVPR2016)

    论文链接:https://arxiv.org/pdf/1606.00915.pdf 摘要 该文主要对基于深度学习的分割任务做了三个贡献,(1)使用空洞卷积来进行上采样来进行密集的预测任务.空洞卷积可以 ...

随机推荐

  1. ASP.NET MVC - 发布web应用程序、部署到IIS

    发布项目 右击项目 - 发布 选择IIS - 点击发布 发布方法 - 文件系统,目标位置 - 选择与项目所在目录不同的目录(也即,指定一个发布生成文件的目录),文件发布选项 - 不选 - 点击发布 安 ...

  2. 微信小程序之内嵌网页(webview)

    设置权限 要在小程序中访问外部网页,需要先设置允许访问的业务网站的域名.让我们先登录小程序平台管理后台页面,进入“设置” => "开发设置",可以看到这边多出来了一块“业务域 ...

  3. redis设置开机自启

    开机自启动redis(其他服务类似) centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvini ...

  4. 20165234 《Java程序设计》第二周学习总结

    第二周学习总结 教材学习内容总结 第二章 标识符与关键字 1.标识符 其本质是文件名字. 由字母.下画线.美元符号和数字组成,长度不受限制. 标识符的第一个字符不能为数字,标识符不能为关键字(如int ...

  5. Hibernate学习(三)

    Hibernate的查询方法(五种) 一.OID查询:按主键查询 --get( ) --load( ) 二.对象导航查询:通过已经查询到的联系人,得到起关联的对象 三.SQL查询 四.HQL查询(** ...

  6. Thymeleaf模板布局

    ⒈定义片段 1.使用th:fragment <div th:fragment="copy"> © 2019 <a href="http://www.co ...

  7. docker部署Javaweb环境数据库连接问题

    最近在docker部署了一个Javaweb项目运行的环境,在容器中部署了mysql和Javaweb项目,但是本地可以跑项目,放到容器里面不行. 具体报错内容是不能访问数据库. Could not ge ...

  8. boost.lexical_cast 学习

    1,字符串 到 数值类型的转换 2,数值 到 字符串的转换 3,异常处理情况 4,boost::lexical_cast 的原型: template<typename Target, typen ...

  9. SpringCloud的版本

    Spring Cloud 项目目前仍然是快速迭代期,版本变化很快.这里整理一下版本相关的东西,备忘一下. 大版本 版本号规则 Spring Cloud并没有熟悉的数字版本号,而是对应一个开发代号. C ...

  10. MYSQL修改字段

    当字段为空则插入0,不为空则原来的值  UPDATE t_pm_scheduleSET lesson_room_id1 = IFNULL(lesson_room_id1, 0), lesson_roo ...