实时语义分割模型PP-LiteSeg论文解读

paper:PP-LiteSeg: A Superior Real-Time Semantic Segmentation Model

official implementation:https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.8/paddleseg/models/pp_liteseg.py

本文的创新点 

  • 提出了一种灵活的轻量级解码器(Flexible and Lightweight Decoder, FLD),减轻了解码器的冗余性,平衡了encoder和decoder的计算成本。
  • 提出了一个新的注意力融合模块(Unified Attention Fusion Module, UAFM),利用空间和通道注意力来加强特征表示。
  • 提出了Simple Pyramid Pooling Module(SPPM)来聚合全局上下文。

方法介绍

Flexible and Lightweight Decoder

encoder-decoder结构是常用的语义分割结构,一般来说,encoder通过分组为几个stage的若干卷积层来提取层级特征,从低层到高层,特征通道数逐渐增加,空间尺寸逐渐减小,这种设计平衡了各阶段的计算成本,保证了encoder的效率。decoder也分为几个stage,负责融合和上采样。尽管从高层到低层,特征的空间尺寸逐渐增加,但在最近的轻量模型中,decoder中的通道数保持不变。因此低层的计算成本远大于高层,为了提高decoder的效率,本文提出了一种灵活的轻量解码器FLD,如图3所示,从high-level到low-level,FLD逐渐减少通道数量,FLD可以很容易的调整计算成本实现编码器和解码器之间的平衡。

Unified Attention Fusion Module

融合多尺度特征是实现高精度分割的关键,本文提出了一个新的注意力融合模块(Unified Attention Fusion Module, UAFM),它应用通道和空间注意力来丰富融合特征的表示。

UFAM framework

如图4(a)所示,UFAM利用一个注意力模块得到权重 \(\alpha\),并通过Mul和Add操作用权重 \(\alpha\) 融合输入特征。具体而言,输入特征表示为 \(F_{high}\) 和 \(F_{low}\),\(F_{high}\) 是深层模块的输出,\(F_{low}\) 是encoder中的对应输出,它们通道数相同。UFAM首先通过双线性插值上采样 \(F_{high}\) 和 \(F_{low}\) 相同尺度大小得到 \(F_{up}\)。然后注意力模块以 \(F_{up}\) 和 \(F_{low}\) 作为输入得到权重 \(\alpha\),这里注意力模块是一个plugin,可以是通道注意力模块、空间注意力模块等。然后分别对 \(F_{up}\) 和 \(F_{low}\) 进行element-wise Mul操作最后两者进行element-wise Add得到最终输出。如下

Spatial Attention Module

空间注意力模块利用inter-spatial关系得到一个权重,它表示的是输入特征中每个像素位置的重要性。如图4(b)所示,给定输入 \(F_{up}\in R^{C\times H\times W}\) 和 \(F_{low}\in R^{C\times H\times W}\),首先沿通道维度计算mean、max得到四个维度 \(R^{1\times H\times W}\) 的特征,然后拼接得到 \(F_{cat}\in R^{4\times H\times W}\),然后接一层卷积和sigmoid得到权重 \(\alpha\in R^{1\times H\times W}\)。具体如式2,这里具体的实现方式是灵活的,比如可以去掉max操作来降低计算成本。

Channel Attention Module

通道注意力模块的关键是利用inter-channel关系得到一个权重,它表示的是输入特征中每个通道的重要性。如图4(c)所示,首先利用average-pooling和max-pooling得到四个维度为 \(R^{C\times 1\times 1}\) 的输出,然后沿通道拼接并接一层卷积和sigmoid得到权重 \(\alpha \in R^{C\times 1\times 1}\),具体过程如下

Simple Pyramid Pooling Module

如图5所示,本文提出的SPPM,它首先利用金字塔池化模块来融合输入特征,其中包含三个average pooling,bin size分别为1x1、2x2、4x4。然后分别进行卷积和上采样,卷积大小为1x1,输出通道数小于输入通道,最后将三个特征相加再接一层卷积得到输出特征。和原始的PPM相比,SPPM减少了中间和输出的通道数,去掉了short-cut,将concatenate替换为add,因此SPPM更高效也更适合实时模型。 

实验结果

PP-LiteSeg和其它sota模型在Cityscapes数据集上的结果比较如下

在CamVid测试集上的结果对比如下

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 18:34:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 18:34:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 18:34:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 18:34:04       20 阅读

热门阅读

  1. golang 的那些花样

    2024-01-06 18:34:04       44 阅读
  2. 并发编程:线程同步基础:7、StampedLock DEMO

    2024-01-06 18:34:04       39 阅读
  3. uni静态资源引入及css图片图标引用规范

    2024-01-06 18:34:04       44 阅读
  4. 【复习笔记】学术英语

    2024-01-06 18:34:04       36 阅读
  5. C++中几个常用的类型选择模板函数

    2024-01-06 18:34:04       35 阅读
  6. Web网页开发-总结笔记2

    2024-01-06 18:34:04       34 阅读
  7. 今日学习的 jdbc statement的增删改

    2024-01-06 18:34:04       36 阅读
  8. vs code导入excel文件并且解析excel文件数据

    2024-01-06 18:34:04       34 阅读
  9. 10款以上开源工具,用于大型语言模型应用开发

    2024-01-06 18:34:04       47 阅读
  10. Could not load library libcudnn_cnn_infer.so.8

    2024-01-06 18:34:04       43 阅读