PSPNet阅读笔记
Pyramid Scene Parsing Network
Pyramid Scene Parsing Network
CVPR 2017
场景解析、语义分割
Abstract
介绍了当前场景解析的问题:对于不受限制的开放复杂场景来说是一个挑战
出发点:引入更多上下文信息、避免误分割
methods:
1、增大感受野 e.g. 空洞卷积(Deeplab)、GAP
2、深层浅层特征的融合(多尺度?)
深层有更多的语义信息,浅层的话位置信息
单个PSPNet:PASCAL VOC mIOU:85.4%+Cityscapes acc 80.2%
1. Introduction
语义分割难点:label之间的相似性 e.g.椅子沙发、马和牛…
FCN【26】 :不能有效利用全局信息
spatial pyramid pooling 【18】:得到global image-level feature
Spatial pyramid pooling network【12】
contribution:
针对没有引入足够上下文信息+不同感受野下的全局信息而出现的分割错误的场景,提出 global-scence-level信息的pspnet +优化策略(论文上称deeply supervised loss)
两个loss:使得网络分为两个相对简单的优化部分
2. RelatedWork
启发:
1、conv换FC 【26】
2、空洞卷积扩大感受野 【3,40】
3、反卷积网络:coarse-to-fine
两个方向:
1、multi-scale feature ensembling 高层有更多语义信息,低层有更多位置信息
2、structure prediction CRF后处理 refine
【24】证明了GAP+FCN可以提高分割效果
作者通过实验证明在复杂场景中该方法效果不太好,所以提出了 different-region-based context aggregation
(对应后面要讲的五个feature map)
3. Pyramid Scene Parsing Network
3.1. Important Observations
复杂场景解析常出现的问题:
- Mismatched Relationship(语义关系不匹配)
上下文关系匹配对理解复杂场景很重要,例如在上图第一行,在水面上的大很可能是“boat”,而不是“car”。虽然“boat和“car”很像。FCN缺乏依据上下文推断的能力。
Context relationship
- Confusion Categories (相近类别易混淆)
许多标签之间存在关联,可以通过标签之间的关系弥补。上图第二行,把摩天大厦的一部分识别为建筑物,这应该只是其中一个,而不是二者。这可以通过类别之间的关系弥补。 (?)
This problem can be remedied by utilizing the relationship between categories.
- Inconspicuous Classes(不明显的类别)
场景中物体size是任意的,会忽略size小的物体
size太大,会超出FCN的感受野,会导致不连续的预测
也就是对于非常大或非常小物体的识别能力
e.g. 第三列将枕头误分为床(枕头小且纹理与床相似)
different sub-regions
思路
1、增大分隔层的感受野
- 空洞卷积(dilated convolution):这是在deeplab算法上成功应用的实现方式
- GAP
2、 深层特征和浅层特征的融合
增加浅层特征的语义信息,这样在浅层进行分割时就有足够的上下文信息,同时也有目标的细节信息,这种做法早在FCN中就有了,但是包括融合策略和分割层的选择都有一定的优化空间。
融合合适的全局特征,将局部和全局信息融合到一起
3.2. Pyramid Pooling Module & 3.3.Network Architecture
ResNet
GAP
different sub-regions
pyramid pooling module
1、CNN:
特征提取网络,pre-train ResNet101+dilated network,得到feature map(input的1/8,DeepLab中有解释)
2、pyramid pooling module :
四种不同尺度下的特征,
- GAP—>single bin output 1x1
- sub-regions 2x2;3x3;6x6
3、1*1 conv
在保留全局特征权重的同时,降维 1/N
-
N:the level size of pyramid,在这个图中,N=4,N值可以改变
-
N与原始feature map size有关
4、upsample
将四种feature map上采样会原始feature map的大小
5、Concat
将五种feature map连接到一起,将全局和局部信息融合到一起
4. Deep Supervision for ResNet-Based FCN
增加一个辅助loss,有助于优化学习过程
辅助loss只在训练阶段时使用,帮助总的loss优化网络结构
在测试阶段的话 不需要辅助loss
作者用实验证明了 这种增加辅助loss的方式可以加快模型收敛
(就像上研究生一样,研一成绩好发的paper多,对最终毕业能力是有很大影响的,这种就像动态规划的问题。但是需要注意的是,这个loss不要放在浅层;还有当前3、4个loss的网路也是存在的,能见到也不足为奇,其loss放置的位置还有个数都需要通过实验得到验证)
5.Experiments
datasets
- ImageNet scene parsing challenge 2016 [43]
- PASCAL VOC 2012 semantic segmentation [8]
- urban scene understanding dataset Cityscapes [6].
5.1. Implementation Details
“poly” learning ratepolicy
- base Lr=0.01;power=0.9
- current Lr=base*
- ImageNet_iteration=150K; PASCAL VOC_iteration=30K;Cityscapes=90K
- Momentum=0.9;weight decay=0.0001
data augmentation
- random mirror and random resize between 0.5 and 2 for all datasets
- additionally add random rotation between 10and10degrees
- random Gaussian blur for ImageNet and PASCAL VOC
实验发现合适的cropsize &batchsize很重要
- train:batchsize=16;辅助loss权重=0.4
5.2. ImageNet Scene Parsing Challenge 2016
Dataset and Evaluation Metrics
- ADE20K: 150个物体/对象类别标签(例如,墙、天空和树)和1038个图像级场景描述词(例如,机场航站楼、卧室和街道)
- 20K/2K/3K:训练、验证、测试
- Pixel Acc & Mean IoU
实验验证:
- max pooling还是average pooling (average)
- global feature or four-level features (pyramid)
- pooling后 concat前有无dimension reduction (有降维)
Ablation Study for Auxiliary Loss Ablation Study for Pre-trained Model
More Detailed Performance Analysis
DA:数据增强;AL:辅助loss;MS:多尺度
5.3.PASCAL VOC 2012
- 20 object categories + one background class
- 10582/1449 /1456 train/validation/test