PSPNet:Dilated Residual Networks
PSPNet 通过在网络中使用金字塔池化模块 PPM, 一定程度解决语义分割的多尺度问题
什么是 PSPNet ?
- 一种语义分割模型,通过在编码器和解码器之间嵌入金字塔池化模块(PyramidPoolingModule,PPM),实现不同尺度的特征感知,提高语义分割的精度
PSPNet 的网络结构?
- 编码器 (Encoder):使用了预训练的 ResNet,使空洞卷积 (Atrousconvolution) 增大感受野。最后输出的 feature map 是原图的 1/8
- 金字塔池化模块 (PPM):使用了四种尺寸的金字塔,池化所用的 kerne 分别 1×1, 2×2, 3×3,6×6。池化之后上采样,然后将得到的 feature map, 包括池化之前的做一个级联,后面接一个卷积层得到最终的预测图像
- 解码器 (Decoder):基于金字塔池化后的特征,进行卷积,并通过 1x1 卷积输出 HxWxC 矩阵
什么是金字塔池化模块(Pyramid Pooling Module, PPM)?
- 多尺度池化: PPM 在 Featrue Map 中进行多个分辨率下进全局最大池化,得到每个尺度上捕获的特征图,本文使用 4 个尺度,分别为 1,2,3,6
- 1x1 卷积: 使 1x1 卷积调整每个尺度的特征的通道数量,减少参数量的同时,进行跨通道特征融合
- 上采样: 对每个尺度的特征进行上采样双线性插值),并将所有尺度特征图进行级联 (concatenate),得到的特征包含图像的全局上下文和小块信息
PSPNet 的损失函数?
- 输入标签的 hxw,分割后得到的输出是 hxC,其中 C 为每个像素的类别概率
- 使交叉熵损失 (CrossEntropyLoss) 计算损失
PSPNet 的编码器的辅助分类器实现步骤?
- ResNet101 模型训练期间,使用 权重的辅助损失,以平衡最终损失和辅助损失。在测试过程中,放弃了辅助损失。它是一种深度测试监督的使用策略,训练非常深这个类似 GoogleNet、Inceptionv1 辅助分类
- 由上图可知,加入辅助损失,可以提升效果,并在 0.4 权重在最优
金字塔池化模块 (PPM) 与空间金字塔池化 (SPP) 的区别?
- 空间金字塔池化 (SpatialPyramidPooling,SPP):于 2015 年何恺明在目标识别网络 SPPNet 中提出,解决目标检测不同尺度图片的获得定长特征的问题,经过该池化,2D 的 featrue map 变为 1 D.
- 金字塔池化模块(PyramidPoolingModule,PPM):于 2017 年的在语义分割网络 PSPNet 中提出,用于收集特征图的多尺度特征,经过该模块的 featrue map 分辨率不变,channel 翻倍
金字塔池化模块 (PPM) 与空洞卷积空间金字塔池化 (ASPP) 的区别?
- PPM 中间使用不同 kernel size 的卷积提取多尺度特征,得到的特征 size 不一样,后续通过上采样才得到固定尺寸的特征
- ASPP 中间则使用空间卷积,对于 3 x 3 卷积,只要使 padding=dalite,输出保持不变,因此 ASPP 卷积后特征相等