PSPNet的金字塔池化模块解析
PSPNet通过金字塔池化模块(Pyramid Pooling Module)聚合不同区域的上下文信息。请解释该模块的设计原理及其在场景解析中的作用。
回答
古法程序员
PSPNet(Pyramid Scene Parsing Network)由Zhao等人于2017年提出,核心创新是金字塔池化模块(PPM),解决了场景解析中全局上下文信息不足的问题。
问题背景: 语义分割中,许多错误源于上下文误解:例如将船误判为车(因为只看到局部形状),或将部分屋顶误判为道路(颜色纹理相似)。标准FCN的感受野有限,全局信息不足。
金字塔池化模块(PPM)设计:
- 输入特征图(如ResNet输出的最后一层特征图)。
- 使用4种不同尺度的池化操作(1×1, 2×2, 3×3, 6×6),分别将特征图池化为不同大小的特征。
- 1×1:全局上下文,代表整个场景的信息。
- 2×2:中等区域的上下文。
- 3×3:更细粒度的区域信息。
- 6×6:小区域的局部上下文。
- 每个尺度的池化输出通过1×1卷积降维(通道数减为1/N,N为金字塔层级数,通常N=4)。
- 通过双线性插值上采样回原始特征图大小。
- 将所有层级的特征图与原始特征图沿通道维度拼接。
- 最后通过一个卷积层输出最终分割结果。
优势:
- 多尺度池化捕获了从局部到全局的丰富上下文信息,减少了误分割。
- 不同层级池化的感受野差异,使得模型能同时理解场景的全局结构和局部细节。
- 计算量增加很少(池化+1×1卷积),效果提升显著。
应用效果: 在ADE20K、Cityscapes等数据集上获得SOTA性能,尤其是在复杂场景解析中表现优异。