[论文笔记] SANET

摘要

目前,实时语义分割网络通常采用编码器-解码器架构或双路径架构。 一般来说,编码器-解码器模型往往更快,而双路径模型则表现出更高的准确性。 为了利用这两种优势,我们提出了空间辅助编码器-解码器网络(SANet)来融合这两种架构。 

在整体架构中,我们坚持编码器-解码器设计,同时保留编码器中间部分的特征图,并利用空洞卷积分支进行相同分辨率的特征提取。

在编码器的末端,我们集成了非对称池金字塔池模块(APPPM)来优化特征图的语义提取。 该模块包含非对称池化层,可以以多种分辨率提取特征。

在解码器中,我们提出了一个混合注意力模块 SAD,它集成了水平和垂直注意力以促进各种分支的组合。

介绍

文章主要贡献:

1>  引入了一种新的金字塔池化模块 APPPM,它包含一个非对称池化层和一个传统的卷积层。 非对称池化层实现了独特的池化操作来捕获图像的各种尺度和方向特征。 因此,这会导致图像分辨率更加均匀地降低,从而更容易提取不同分辨率下的图像特征。

2>  提出了一种有效且简单的注意力解码器,称为 SAD。 它通过由水平和垂直注意力组成的混合注意力来增强特征表示,并使用多个卷积来增加特征融合效果。

相关 工作

在语义分割中,上下文信息可以通过感受野的范围来证明。 各种模型旨在通过下采样后实现语义提取模块来扩大模型的感受野。 这样做是为了优化上下文信息的使用。 语义提取模块包括多个不同大小的并行卷积块或池化层。

PSPNet [8]提出了金字塔池模块(PPM)作为多尺度特征提取模块。 PPM通过金字塔池化操作有效地从不同尺度的图像中捕获语义信息,从而增强语义分割性能。 DeepLab V2 [12]提出了ASPP,它使用空洞卷积进行多尺度感觉场融合,无需池化操作。 ASPP 通常具有多个并行运行的复杂分支,每个分支都采用不同的 atrous 速率来捕获不同尺度的信息。

DAPF由FASSD[23]提出,利用分解技术来分解ASPP标准的3×3空洞卷积。 将 3×3 空洞卷积拆分为两个连续的不对称空洞卷积可以降低计算复杂性,同时保留捕获多尺度上下文信息的能力。 为了提高检测速度,PPLite的[29] SPPM方法减少了PPM输出中的通道数,删除了快捷连接,并用加法代替了连接操作。 在 PPM 中仅使用一个 3×3 或 1×1 卷积来组合多尺度上下文信息可能不是最有效的方法。 为了解决这个问题,DDRNet [26]提出的DAPPM通过在池化层之后添加3×3卷积来改进信息融合。 DMRNet [27] 通过使用非对称或空洞卷积代替 DAPPM 中的 3×3 卷积来提高模块的速度。 PIDNet [28] 并行化 DAPPM 以进一步增强。

与上述特征提取模块不同,SANet的特征提取模块APPPM修改了池化层。 通过修改池化层的大小,APPPM可以从更多分辨率中提取图像特征。

模型框架

A. Design of the Network Structure

ResNet [30] 采用的 BasicBlock 是一种广泛使用的选择,因为它允许信息在整个网络中平稳流动,同时通过跳跃和残差连接防止梯度消失问题。 因此,ResNet的BasicBlock被用作SANet编码器中的卷积块。

该编码器包括一个 Stom 块、六层和一个结合上下文特征的 APPPM。 除第 6 层(瓶颈层)外,每一层均由多个串联排列的 BasicBlock 组成。

研究表明,维护空间信息可以提高分割精度。 SANet 网络的编码器在其初始层(即第 1 层到第 3 层)中使用渐进下采样方法。网络在每个下采样层之后都有一个“缓冲”层,通过不执行任何下采样操作来保留详细信息。 这种方法有助于在编码器的早期阶段保持高分辨率,从而使网络能够更有效地捕获图像的局部细节。

值得注意的是,可以采用更高分辨率的分支来保留空间细节。 在 SANet 网络中,空间分支(扩张路径)从第 3 层中分离出来,以保持高分辨率特征。

与之前的研究不同,SANet 的空间分支结合了多个具有不同扩张率的空洞卷积来扩大感受野。 这提高了辨别图像中详细信息的能力。 DP的结构如图4所示。经过编码器之后,提取的图像特征被转发到APPPM,以完成跨各种尺度和子区域的信息整合。

 虽然解码器可以使用抽象语义数据在像素级别创建语义预测,但模型的预测速度随着解码器层使用的增加而降低。 因此,SANet 仅包含一个精心设计的解码器 SAD,以恢复编码器提取的低分辨率特征。 网络末端的分割头输出分割结果,在训练阶段的情况下,辅助分割头输出用于辅助损失(包括边界损失和辅助语义损失)的分割结果

B. Asymmetric Pooling Pyramid Pooling Module

金字塔池化模块通常采用不同大小的不同池化层来同时提取图像特征。 然后将提取的特征在通道维度中合并以产生具有多尺度信息的复合特征图。 最近的一些研究研究了修改池化层的数量和大小,以及在池化层之后合并单独的卷积层以增强特征提取过程。 然而,对于合并不同形状的池化层的研究还很有限。 因此,我们引入了非对称池金字塔池模块(APPPM),如图 5 所示。

APPPM 由三个不同大小的池化层组成,其中包括一个全局池化层,但池化层具有不对称形状。 此外,我们采用了在池化层之后添加卷积层的技术,如 DDRNet 中所使用的那样。 此外,我们通过 1×1 卷积将通道化应用于 1/64 图像特征图,以保留精细细节。 得到的特征图作为残差连接起来并添加到多尺度特征融合过程中。

我们使用Concat操作来合并各种尺度特征,然后将其与1/64图像特征图一起通过双头注意力模块生成最终输出。 值得注意的是,APPPM 采用的非对称池化层可以对不同尺寸的图像进行更深入的分析,从而轻松提取其特征。

C. Simple Attention Decoder

        在编码器-解码器架构中,解码器的主要目标是检索提取的特征。 我们设计的简单注意力解码器(SAD)如图 6 所示。

        SAD 有四个输入:x 表示高分辨率分支输出的最终图像特征图。 同时,dp1和dp2分别对应于高分辨率分支的不同时期的图像特征图。 另外,y表示APPPM从图像中提取的高级语义特征获得的图像特征图。 dp1和dp2经过加法运算将它们联合成单个特征图,然后通过3×1和1×3非对称卷积进行处理以分别提取水平和垂直特征。 然后将所得的横向和纵向特征用于 Sigmoid 函数以产生注意机制,指导 x 和 y 特征的融合。 最后,融合后的特征经过1×1卷积调整通道数后输出。

如果将SAD过程表示为下式,其中“⊕”代表加法运算,“⊗”代表乘法运算,“A”代表注意力,“x”代表高分辨率信息,“y”代表低分辨率信息, 而Conv1×3和Conv3×1表示非对称卷积,则公式为: 

 实验

实验细节

基于之前的研究,我们通过在 ImageNet [31] 数据集上进行预训练来开始 SANet 的训练过程。 这种预训练方法有助于 SANet 的图像语义分割训练更快地收敛。 在训练过程中,SANet的输入分辨率设置为224×224,批量大小设置为256,训练epoch数设置为100。对于模型优化,采用随机梯度下降(SGD)优化器,权重衰减为0.0001 内斯特洛夫动量为 0.9。 此外,模型的初始学习率设置为 0.1,每 30 个 epoch 减少原始学习率的十分之一。

训练:为了确保客观性,为了公平起见,采用了与之前的工作中应用的类似的训练程序。 我们比较了两种学习率策略,即余弦退火和“poly”策略,最终选择“poly”策略,因为它更有效地提高模型精度。 “poly”策略的功效设置为 0.9。 为了改进数据,我们使用标准化方法,例如随机缩放和裁剪,参数范围从 0.5 到 2.0。 此外,我们还为其他流行的超参数提供了替代方案,包括 484 次训练(相当于约 120,000 次迭代)和 150 次训练,批量大小为 12 和 8,初始学习率为 0.01 和 0.001,权重衰减为 0.0005 和 0.0005,图像裁剪大小 1024 × 1024 和 960 × 720。

此外,我们尝试微调 Cityscapes 的标准超参数。 然而,我们观察到模型性能略有提高。 关于训练周期,我们努力将其调整为 324(根据 STDC,相当于 60,000 次迭代),并尝试将其增加到 500。关于批量大小,我们的初始设置为 8(大约 180,000 次迭代)。 我们注意到,当未使用 ImageNet 预训练时,8 的批量大小优于 12 的批量大小。 然而,使用 ImageNet 预训练后,结果发生了逆转,我们假设可能涉及过度拟合。 关于学习率的调整,我们尝试使用[0.02,0.015,0.005,0.001]作为初始学习率。 然而,我们发现大于 0.01 的学习率通常会导致不稳定的结果,而低于 0.01 的学习率可能会导致早期收敛。

推理:在实时语义分割中,通常使用2080Ti GPU来测试模型的推理速度。 为了进行推理实验,我们采用了单个 2080Ti GPU 和包含 Anaconda、Pytorch 1.12、CUDA 11.3 和 cuDNN 8.0 的实验环境。 我们遵循的协议与之前的研究相同[29][28]。 对于 CityScapes 和 CamVid 数据集,我们分别选择输入图像大小为 2048 × 1024 和 960 × 720,批量大小为 1。我们消除了用于辅助损失的分割头,并将批量归一化层合并到 卷积层。

消融实验

网络结构:为了验证各个模块组合的有效性,除了APPPM之外,我们仅在ImageNet数据集上训练SANet的编码器部分,它由一个负责下采样的主分支和一个负责下采样的空洞卷积分支组成 以扩大视野。 训练后的编码器将用作比较的基线结果,初级和无孔卷积分支使用加法运算来融合特征。 如表3所示,加法运算是传统的特征融合方法,但简单地将两个特征图相加可能会导致在确切位置产生不同的信息,相互抵消并导致信息丢失。

SAD的引入有助于缓解信息丢失问题,网络能够捕获特征之间的复杂关系,并有选择地关注对任务更重要的特征。 金字塔池化能够捕获不同尺度的图像信息,APPPM的加入可以显着提高模型的感知能力,从而导致网络性能的快速提升。 APPPM和SAD结合使用时,精度的提升会更加显着。

 金字塔池化模块具有扩展模型感知领域、感知全局和局部信息的能力。 我们将 APPPM 与具有类似功能的其他模块(例如 PPM)进行了比较。 结果如表IV所示,其中APPPM的mIoU比PPM提高了3%。 我们还对其他最近提出的金字塔池模块进行了一些小改进。 综上所述,APPPM 将网络性能从 75.3% 提高到 78.1%,与其他语义提取模块相比表现最好。

 损失函数:选择合适的损失函数在深度学习任务中起着至关重要的作用。 我们比较了语义分割常用的两种损失函数:交叉熵损失和在线硬样本挖掘交叉熵损失。 同时,为了提高模型感知空间信息的能力,我们还在模型的不同位置添加了BoundaryLoss。 结果表明,在线硬实例挖掘交叉熵损失函数相比标准交叉熵损失函数具有更好的性能,并且加入BoundaryLoss后模型的准确率进一步提高。 比较结果如表五所示。图7显示了用于BoundaryLoss的辅助分割头的输出图像。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值