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 卷积后特征相等