[论文笔记]PP-LiteSeg

摘要 

实际应用对语义切分方法有着很高的要求。尽管语义切分在深度学习中取得了显著的进步,但实时切分方法的性能并不令人满意。为此,本文首次提出了一种新的轻量级的实时语义切分模型PP-LiteSeg.

作者主要设计了三个新的模块

1: FLD 提出了一种灵活和轻量级的解码器(FLD),以减少以往解码器的计算开销

2: 为了增强特征表示,提出了一种统一注意力融合模块(UAFM),该模块利用空间和通道注意力产生一个权值,然后将输入特征与权值进行融合

3: 提出了一种简单的金字塔池模块(SPPM),用于以较低的计算代价聚合全局上下文。

介绍

之前看论文的时候没见过对于enconder-deconder架构做详细描述的  在这里贴一下

语义分割模型中的编码器提取层次特征,解码器融合和去采样特征。

对于编码器中从低层到高层的特征,通道数增加,空间尺寸减小,是一种有效的设计。对于解码器中从高级到低级的特征,空间大小增加,而在最近的模型中通道的数量相同。因此,我们提出了一个灵活的轻量级解码器(FLD),它逐渐减少通道,并增加空间大小的功能。

此外,所提出的解码器的体量可以很容易地根据编码器进行调整。灵活的设计平衡了编码器和解码器的计算复杂度,使得整个模型更加高效

提出了一个统一的注意力融合模块(UAFM),以有效地加强特征表示。UAFM首先利用注意力模块产生权重α,然后将输入特征与α融合。在UAFM中,有两种注意力模块,即空间注意力模块和通道注意力模块,它们利用输入特征的空间间和通道间关系。

相关工作

跟其他论文写的都差不多  可以自己积累下  主要是对前人工作的总结

模型架构

1 FLD   Flexible and Lightweight Decoder

编码器-解码器结构已被证明是有效的语义分割。一般而言,编码器利用被分组为若干级的一系列层来提取分层特征。对于从低层到高层的特征,通道数逐渐增加,特征的空间尺寸逐渐减小。该设计平衡了各级的计算开销,保证了编码器的效率。

解码器也具有若干级,其负责融合和上采样特征。尽管特征的空间尺寸从高级别到低级别增加,但最近的轻量级模型中的解码器在所有级别中保持特征通道相同。因此,浅阶段的计算开销远大于深阶段,导致了浅阶段的计算冗余。

为了提高解码器的效率,提出了一种灵活轻量级的解码器 FLD

如图所示,FLD从高到低逐渐减小特征的通道。FLD可以很容易地调整计算开销,以实现编码器和解码器之间的更好平衡。尽管FLD中的特征通道在减少,但我们的实验表明,PP-LiteSeg与其他方法相比具有竞争力的准确性。

可以看到 (b) 中 从高到低 逐渐减少特征值的通道

UAFM  Unified Attention Fusion Module

UAFM框架。如图4(a)所示,UAFM利用注意力模块产生权重α,并通过Mul和Add操作将输入特征与α融合。

输入特征被表示为Fhigh和Flow。Fhigh是更深模块的输出,Flow是编码器的对应项。请注意,它们具有相同的信道。UAFM首先利用双线性插值操作将Fhigh上采样到与Flow大小相同的大小,同时将上采样的特征表示为Fup。然后,注意模块将Fup和Flow作为输入,并产生权重α。注意,注意力模块可以是插件,例如空间注意力模块、通道注意力模块等。之后,为了获得注意力加权特征,我们分别对Fup和Flow应用元素式穆尔操作。最后,UAFM对注意力加权特征进行逐元素相加,并输出融合特征。

Spatial Attention Module. 空间注意力模块。空间注意力模块的动机是利用空间间的关系来产生一个权重,它代表了输入特征中每个像素的重要性。如图4(B)所示,给定输入特征,即Fup ∈ RC×H×W和Flow ∈ RC×H×W,我们首先沿通道轴沿着进行均值和极大值运算,生成四个特征,其维数为R1×H×W。然后,这四个特征被连接成特征Fcat ∈ R4×H×W。对于级联特征,应用卷积和sigmoid操作以输出α ∈ R1×H×W。空间注意力模块的公式如公式2所示。此外,空间注意力模块可以是灵活的,例如,去除最大运算以降低计算成本。

Channel Attention Module 通道关注度模块的关键概念是利用通道间的关系来生成权重,该权重指示每个通道在输入特征中的重要性。如图4(B)所示,提出的通道注意力模块利用平均池化和最大池化操作来挤压输入特征的空间维度。此过程生成四个尺寸为RC×1×1的特征。然后,它沿信道轴沿着连接这四个特征,并执行卷积和S形运算以产生权重α ∈ RC×1×1。简而言之,信道注意模块的过程可以用公式表示为等式3。

SPPM   Simple Pyramid Pooling Module

如图5所示,我们提出了一个简单的金字塔池化模块(SPPM)。它首先利用金字塔池化模块来融合输入特征。金字塔池化模块有三个全局平均池化操作,bin大小分别为1×1、2×2和4×4。然后,输出特征之后是卷积和上采样操作。对于卷积运算,内核大小为1×1,输出通道小于输入通道。最后,我们加和这些上采样的特征,并应用卷积运算来产生细化的特征。与原始PPM相比,SPPM减少了中间通道和输出通道,去除了捷径,并用加法运算代替了级联运算。因此,SPPM更有效,更适合于实时模型。

整体架构

PP-LiteSeg主要由编码器、聚合器和解码器三个模块组成。

首先,给定一个输入图像,PP-Lite使用一个通用的轻量级网络作为编码器来提取层次特征。详细地说,我们选择STDCNet [8]是因为其出色的性能。STDCNet有5个阶段,每个阶段的步幅为2,因此最终特征尺寸为输入图像的1/32。如表1所示,我们提出了PP-LiteSeg的两个版本,即,PP-LiteSeg-T和PP-LiteSeg-B,其中编码器分别为STDC 1和STDC 2。PPLiteSeg-B实现了更高的分割精度,而PP-LiteSeg-T的推理速度更快。值得注意的是,我们将SSLD [7]方法应用于编码器的训练,并获得增强的预训练权重,这有利于分割训练的收敛。

其次,PP-LiteSeg采用SPPM来建模远程依赖。以编码器的输出特征作为输入,SPPM产生包含全局上下文信息的特征。

最后,PP-LiteSeg利用我们提出的FLD逐步融合多层次特征并输出结果图像。具体而言,FLD由两个UAFM和一个分割头组成。为了提高效率,我们在UAFM中采用了空间注意模块。每个UAFM采用两个特征作为输入,即,由编码器的级提取的低级特征、由SPPM或更深融合模块生成的高级特征。后一种UAFM以1/8的下采样比输出融合特征。在分割头中,我们执行Conv-BN-Relu运算,以将1/8下采样特征的通道减少到类的数量。接着进行上采样操作以将特征大小扩展到输入图像大小,并且argmax操作预测每个像素的标签。采用交叉熵损失和在线实例挖掘的方法对模型进行优化。

实验

训练设置

遵循共同的设置,选择具有0.9动量的随机梯度下降(SGD)算法作为优化器。我们还采用了预热策略和“多”学习率调度器。对于Cityscapes,批处理大小为16,最大迭代次数为160,000,初始学习率为0.005,优化器中的权重衰减为5e−4。对于CamVid,批量大小为24,最大迭代次数为1,000,初始学习率为0.01,权重衰减为1e−4。对于数据增强,我们使用随机缩放、随机裁剪、随机水平翻转、随机颜色抖动和归一化。城市景观和Camvid的随机尺度范围分别为[0.125,1.5]和[0.5,2.5]。Cityscapes的裁剪分辨率为1024×512,CamVid的裁剪分辨率为960 × 720。我们所有的实验都是在Tesla V100 GPU上使用PaddlePaddle1 [19]进行的。代码和预训练模型可在PaddleSeg2 [16]中获得。

推理设置。为了进行公平的比较,我们将PPLiteSeg导出到ONNX并使用TensorRT来执行模型。与其他方法[8,26]类似,来自Cityscapes的图像首先被调整为1024 × 512和1536 × 768的大小,然后推理模型获取缩放后的图像并产生预测图像,最后,预测图像被调整为输入图像的原始大小。这三个步骤的成本被计为推理时间。对于CamVid,推理模型以原始图像为输入,分辨率为960×720。我们在NVIDIA 1080Ti GPU上的CUDA 10.2、CUDN7.6、TensorRT 7.1.3平台上进行了所有的推理实验。我们使用标准的mIoU进行分割准确性比较,并使用FPS进行推理

消融实验

cityscapes

camvid

结束

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值