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 模型训练期间,使用α\alpha 权重的辅助损失,以平衡最终损失和辅助损失。在测试过程中,放弃了辅助损失。它是一种深度测试监督的使用策略,训练非常深这个类似 GoogleNet、Inceptionv1 辅助分类
  • PSPNet-20230408143457-1
  • 由上图可知,加入辅助损失,可以提升效果,并在 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 卷积后特征相等