基于注意力机制与多尺度池化的实时语义分割网络

2023-10-17 05:50王卓瞿绍军
计算机工程 2023年10期
关键词:池化精确度注意力

王卓,瞿绍军

(湖南师范大学 信息科学与工程学院,长沙 410081)

0 概述

随着互联网的高速发展,计算机在人们的生活中占据着重要地位,计算机应用也在不断地覆盖人们生活的各方面。语义分割作为计算机视觉的一部分,在实际生活中得到广泛应用,如虚拟现实、工业自动化、视频检测等[1]。语义分割要求计算机能够基于给定图像来预测图像中每个像素的类别,以达到分割图像的效果。实时语义分割在追求图像分割高精度的基础上对速度有了更高的要求,性能良好的实时语义分割模型能够应用于自动驾驶领域,在短时间内对道路场景进行有效分割。

全卷积网络(如VGG16 网络[2])中持续的卷积池化操作能提取一定的语义信息,但是对于底层细节信息的提取和小目标物体的分割存在一定局限性。SegNet[3]作为经典实时语义分割模型,使用VGG16[2]作为主干网络,在编码过程中记录最大池化的索引下标,以在解码过程中使用这些下标进行上采样,但是索引的记录也在一定程度上增加了模型权重,降低了推理速度。PSPNet(Pyramid Scene Parsing Network)[4]中的金字塔场景解析模块,对于同一场景使用不同的尺度池化操作,有效提取并融合了各层特征,但是该模型计算量过大,不能达到实时的效果。

以上模型在分割图像时虽然分割精度较高,但是推理速度较慢,不能应用于实时场景,且在提取图像信息的过程中,特征图通道过多或尺寸过大时模型会将注意力均匀地分散在不同通道和位置上,对于含有关键信息的通道和位置不能给予更多权重。注意力机制的提出使得语义分割模型能够将更多注意力集中在重点特征图上,提高了分割效率。

为提升模型的分割速度,本文基于注意力机制与多尺度池化提出一种高效实时语义分割网络,以解决语义分割网络高精度与高速度不能平衡的问题。本文主要工作如下:

1)提出一种融合通道注意力模块(Fusion Channel Attention Module,FCAM),相较于一般的通道注意力模块,FCAM 不仅能自适应地调整每个通道的权重,而且能将自适应调整后的特征图进行有效融合,即该模块能获取各通道权重大小和自适应后通道间的关系,且该模块权重小,使得网络能保证高精确度同时提升分割速度。

2)在金字塔池化模块(Pyramid Pooling Module,PPM)的基础上,提出一种轻量化金字塔池化模块(Simple Pyramid Pooling Module,SPPM),该模块能够捕捉不同尺度的特征图信息,相较于PPM 更适合实时网络。

3)采用编解码形式提出一种新的基于注意力机制与多尺度池化的实时语义分割网络AMPNet,并在Cityscapes 公开数据集上进行消融实验和对比实验,以验证该网络的有效性。

1 相关工作

1.1 语义分割

自LONG等[5]提出全卷积神经网络(Fully Convolutional Networks,FCN)开始,语义分割便由传统阶段进入深度学习阶段。FCN[5]去除VGG 网络中最后的全连接层,对输入图像不断地进行卷积、池化操作,提取图像信息特征。然而,由于深度神经网络提取的高级特征具有平移不变性,持续下采样会丢失细节信息,导致目标边界分割不清晰[6-8]。为解决此问题,CHEN等[9]提出DeepLab-v1 网络,将深度卷积神经网络与条件随机场(Conditional Random Fields,CRFs)相结合,使目标像素与其周围像素相联系,提升了分割精确度,但是CRFs 基于概率图细化边界,会降低模型推理速度。

针对采样过程中特征分辨率下降问题和目标的多尺度特性,DeepLab-v2[10]基于空间金字塔池化(Spatial Pyramid Pooling,SPP)提出空洞空间金字塔池化(Atrous Spatial Pyramid Pooling,ASPP),使用空洞卷积能在不提升计算量的基础上增大感受野,DeepLab-v2[10]使用不同大小卷积核的空洞卷积对图像进行并行采样,相当于多尺度捕捉高层特征中图像上下文信息,提升了模型对于不同大小目标的分割精确度。DeepLab-v3[11]则去除CRFs,改用级联方式融合ASPP 输出的特征,进一步融合了各层特征。

1.2 实时语义分割

在语义分割中,影响推理时间的主要因素为模型的参数量和计算量[12]。MobileNets[13]提出的深度可分离卷积包括逐通道卷积和逐点卷积2 个过程,参数量只有标准卷积的1/3,但是仍能达到相同效果,为实时语义分割提供了有效的轻量化计算模块。BiSeNet V2[14]使用双分支策略,为降低计算量,在语义分支的聚集-激活(Gather-Excitation,GE)模块和特征融合阶段中使用深度可分离卷积,同时为平衡损失函数的计算量,在各子阶段损失计算过程中添加计算参数λ,使得该网络达到了实时效果。DFANet[15]使用轻量级网 络Xception[16]作为主干网络,通过子网络和子阶段间特征的级联操作融合有区别性的各级特征,该网络最高层特征图通道数仅为一般网络的1/3,计算量小,但是模型仍能获得足够的感受野,且具有较强的学习能力。Fast-SCNN[17]基于现有双分支方法提出下采样学习模块,该模块同时计算多个具有不同分辨率的低层特征,在特征融合过程中使用高层特征对低层特征进行引导,相较于FCN[5],该网络深度较浅,计算量较小,分割速度更快,并能在没有预训练的条件下达到较高的分割精确度。

1.3 注意力机制

在深度神经网络中,特征图的不同通道代表不同目标,通道注意力自适应地调整每个通道的权重,可视为目标选择的过程[18]。自HU等[19]在挤压-激励网络(Squeeze-and-Excitation Networks,SENet)中提出注意力机制开始,注意力机制便被广泛应用于深度学习中。SENet[19]中提出的SE 模块包括2个部分,即Squeeze 收缩部分和Excitation 扩张部分:Squeeze 收缩使用全局平均池化捕捉全局信息;Excitation 扩张通过全连接和非线性激活输出注意力向量。SE 模块在分析重要通道时抑制噪声,对计算资源要求低,但该网络的收缩模块在捕捉全局信息时使用的方法过于简单,且扩张模块中使用的全连接提升了模型复杂度,在一定程度上降低了模型推理速度。

WOO等[20]在卷积块注意力模块(Convolutional Block Attention Module,CBAM)中提出的通道注意力模块(Channel Attention Module,CAM),对特征图分别使用全局平均池化和全局最大池化,再通过多层感知机(Multi-Layer Perception,MLP)将池化后的特征图进行融合,该模块相较于SE 模块而言同时使用2 种池化,增加的最大池化保留分割目标的判别性特征,但是MLP 也增加了网络计算量,使得推理速度变慢。

1.4 金字塔场景解析

在复杂场景解析中,往往存在预测类别与真实类别关系不匹配、混淆以及预测不连续等问题。全局平均池化能够获取较多的全局信息,在图像分类任务中能发挥一定作用,但是在复杂场景中不足以涵盖关键信息。为此,PSPNet[4]提出金字塔场景解析模块PPM,该模块对输入图像按照[1,2,3,6]的尺度进行池化,再将池化后的特征图上采样至输入图像大小并进行融合。该模块消除了卷积神经网络在图像分类任务中输入图像大小固定的缺陷,并对输入图像进行多尺度特征提取,提升了网络对不同大小目标的分割能力。PPM 常用于加强高层特征表示,但是高层特征通道数多,会导致网络中PPM 权重过高,难以适用于实时语义分割网络。PP-LiteSeg[21]对PPM 进行改进,改进后的PPM 按照[1,2,4]的尺度对输入图像进行池化,特征融合方式也由级联变成元素级加法,相较于PSPNet[4]中的PPM,该模块中参与运算的通道数减少,提取到的特征尺度也变小,不利于提升分割精确度。

1.5 编解码结构

为解决个别数据集中数据较少的问题,RONNEBERGER等[22]提出U-Net,在编码过程中下采样,在解码过程中上采样,并将编码器每层的输出特征图与对应解码器上采样后的特征图进行融合,解码过程增加特征图尺寸并减少特征图通道数,保证模型计算量不过度增加,完善编码过程中每个下采样层丢失的信息,取得了较好的分割效果,但是该网络只能用于处理2D 图像,应用范围较小。

SegNet[3]使用VGG 作为编码网络,在下采样过程中记录最大池化索引,在上采样过程中先增大输入特征图尺寸,再根据记录的池化索引将下采样得到的数据放入特征图中。SegNet[3]记录的索引能保证上采样后分割目标的区别性特征位置不变,提升了目标边界分割精度。但是SegNet[3]在进行语义分割时未考虑目标像素与其相邻像素之间的关系,为此,罗嗣卿等[23]提出改进的SegNet 网络,在解码结构中加入一条自底向上的通道,以充分利用模型中包含的多尺度语义信息,提升分割精确度。

为解决神经网络太深可能导致的训练困难、梯度消失、参数冗余等问题,SU等[24]提出卷积层数减少的优化版U-Net,使用组合扩张卷积作为初级特征提取器,在上采样过程中使用转置卷积以恢复特征图大小,优化版U-Net 结合了DenseNet、膨胀卷积和转置卷积的优势,使U-Net 性能得到提升,但是膨胀卷积和转置卷积计算量较大,使得模型处理图像的速度变慢。

2 本文方法网络结构

2.1 融合通道注意力模块

AMPNet 提出的融合通道注意力模块FCAM 结构如图1 所示,先对输入特征图进行全局平均池化和全局最大池化,以获得输入特征图的全局信息和区别性特征,对池化后的特征图进行级联和1×1 卷积,通道数由2×c变为c,为后续计算降低了计算量。reshape 操作则将池化后的特征图大小由c×1×1 变为1×c,1×c特征图能有效保留各通道权重,保证网络将更多注意力放在关键特征图上,同时抑制冗余信息。但是此时仅得到各通道权重,特征图不同通道之间的关系并没有建立,因此,对输入特征图进行reshape操作,将c×h×w的特征图大小变为c×(h×w),使用矩阵乘法将1×c的权重与c×(h×w)的输入特征图相乘,即各通道权重与同一位置不同通道的元素相乘,得到1×(h×w)大小的特征图,此时1×(h×w)特征图中给定位置元素已有效融合不同通道相同位置的元素值。同时,为防止原始特征信息丢失,该模块最后使用元素级乘法,将1×(h×w)大小的特征图与输入特征图进行融合。相较于SENet[19]中的SE模块,FCAM 添加最大池化操作,能获取特征图中更具区别性的特征,且矩阵乘法在参数不增加的情况下,能根据计算得到的通道权重将特征图中同一位置不同通道的元素值进行有效融合。相较于CBAM[20]中的CAM模块,AMPNet 提出的FCAM 计算量较小,只有1 次1×1 卷积和2次c×h×w乘法操作,更适用于实时语义分割任务。

图1 FCAM 结构Fig.1 FCAM structure

FCAM 模块具体计算如式(1)、式(2)所示:

其中:Xin表示输入特征图;Xout表示输出特征图;Favg表示全局平均池化;Fmax表示全局最大池化;cat 表示级联操作;conv 表示1×1 卷积;Fr表示reshape;×表示元素级乘法;*表示矩阵乘法。

2.2 轻量化金字塔场景解析模块

ZHAO等[4]在PSPNet 中提出的金字塔场景解析模块采用多尺度的方式对输入图像进行下采样,以提取不同大小的目标特征。但是在高层语义特征捕捉过程中,PSPNet[4]中的PPM 模块权重较大,降低了整个模型的推理速度,不适合实时语义分割任务。AMPNet 提出轻量化金字塔场景解析模块SPPM,权重大小仅为PSPNet[4]中PPM 的1/7,其结构如图2 所示。在对输入特征图按照[1,2,3,6]的尺度进行平均池化后,使用1×1 卷积改变特征图通道数至原来的1/4,这一通道数的减少为后续卷积操作降低了计算量,也避免了推理速度降低的问题。相较于原始PPM 使用元素级别加法方式融合特征,AMPNet 采用级联方式融合,融合后的特征图通道数恢复至原特征图通道数。为避免级联后特征图存在过多信息冗余的问题,对融合后的特征图进行1×1 卷积,最后使用输入特征对卷积后的特征进行引导,两者通过元素级加法进行融合,有效合并该模块的输入特征和输出特征,也避免了多尺度池化过程中造成的其他信息丢失以及网络退化问题。

图2 SPPM 结构Fig.2 SPPM structure

2.3 网络结构

AMPNet 采用编解码结构,在编码结构中使用STDC[25]作为主干网络,STDC 各层输出如表1所示。

表1 STDC 网络各层的输出Table 1 Output of each layer of STDC network

AMPNet 提出的FCAM 用于计算特征图不同通道的权重,进而对通道进行增强或抑制,同时根据权重融合特征图的各个通道。由于高层特征图通道数多、尺寸小,各通道包含的语义信息更为丰富,因此当特征图通道数较多时通道注意力模块效果提升明显[26]。而FCAM 也是对特征图的各个通道进行作用,以加强特征图的通道表示。因此,AMPNet 在Layer 3 和Layer 4 输出的特征图后都加入FCAM 模块。将SPPM 与FCAM 以串联方式进行组合,使Layer 4 的输出依次经过SPPM 和FCAM 模块。本文也尝试以并联方式组合SPPM 和FCAM,但效果不如串联方式,因为无论是SPPM 还是FCAM,输出的特征图都会有信息冗余,若以并联方式相结合,整个模块冗余的信息会越来越多,干扰模型分割图像。在解码过程中,使用双线性插值作为上采样方法,对于编码器中每一层的输出都采用先上采样后卷积的方式将低层特征图恢复至上一层大小。上采样后的低层特征图与高层特征图以级联方式融合。本文方法具体网络结构如图3 所示。

图3 本文方法网络结构Fig.3 The network structure of this method

3 实验验证

3.1 数据集

使用无人驾驶环境下的公开数据集Cityscapes进行实验。Cityscapes 为城市道路场景语义分割数据集,包含全世界50 个城市的不同街景,提供5 000 张精细标注的图像、2 000 张粗略标注的图像。该数据集共有33 类标注物体,本文只训练其中的19类,包括地面、建筑、人、天空、自然、背景、道路标志和车辆,小类将大类再进行细分,如车辆分为小汽车、公交车等。数据集由训练集、验证集和测试集组成,分别包括2 975、500 和1 525 张图像,每张图像均为RGB 三通道彩色图像,分辨率大小为1 024×2 048 像素。

3.2 评估指标

使用平均交并比(Mean Intersection over Union,mIoU)作为分割精确度的衡量指标,使用每秒处理帧数(Frames Per Second,FPS)作为分割速度的衡量指标。mIoU 为图像像素每个类的IoU 值累加后的平均值,计算公式如下:

其中:k表示数据集包含的总像素类别数;pii表示实际类别为i、预测类别也为i的像素数;ti表示类别为i的像素数;pji表示实际类别为i、预测类别为j的像素数;pjj表示实际类别为j、预测类别也为j的像素数。

3.3 网络参数设置

AMPNet 使用深度学习框架PyTorch-1.3 实现,训练过程中对输入图像的预处理包括水平翻转、随机尺度调整和随机裁剪,输入图像大小为768×1 536 像素。对编码器中Layer 2 的输出使用交叉熵损失函数和DICE 损失函数相结合的方式计算损失,对Layer 3、Layer 4 以及整个网络最后的输出使用OhemCELoss 损失函数。具体损失计算如下:

其中:Layer 2 的输出与高斯-拉普拉斯真实标签通过计算交叉熵损失得到bceloss,两者通过计算DICE 损失得到diceloss,这样得到的bceloss 和diceloss 都表示Layer 2 的输出与目标边界的损失;Lloss2、Lloss3、Lloss4分别为Layer 3输出、Layer 4 输出和网络最终输出与真实标签通过OhemCELoss 计算而得到的损失。

使用一块Tesla-T4 GPU、12 个CPU 核训练并测试。训练设置初始学习率为0.05,批处理大小(batch size)为8,使用带动量的随机梯度下降法(Stochastic Gradient Descent,SGD)训练模型,学习率下降公式如下:

其中:Llr,base表示初始学习率;Niter表示当前迭代次数;Nmaxiter表示网络最多迭代次数,设置为181 000;动量p设置为默认值0.9;衰减系数为0.000 05。

3.4 对比实验

为验证所提算法的有效性,将AMPNet 与现有若干种算法进行比较,以mIoU 和FPS 作为衡量指标,并提供AMPNet 和各模型的计算量和参数量。

AMPNet1 和AMPNet2 分别使用STDC1 和STDC2 作为骨干网络,分割结果如表2 所示。从表2 可以看出:ICNet[27]以PSPNet50[4]作为骨干网络,由于PSPNet50[4]处理的特征图通道多、计算量大,因此分割速度较慢,FPS 只有15.2,与之对比,AMPNet1 在精确度和分割速度两方面均占优;与轻权网络FasterSeg[28]相比,AMPNet1 速度更快,且精确度提升0.5 个百分点,AMPNet2 分割速度较慢,FPS 降低近20,但分割精确度提升2.3 个百分点;高效残差分解网络ERFNet[29]在编解码的残差模块中使用空间可分离卷积,参数量仅为2.06×106,但分割效果和速度均不如AMPNet1;与LiteSeg-DarkNet[30]相比,AMPNet1 分割速度快7倍,且分割精确度提 升2.6 个百分点;与BiSeNet-Xception39[31]相比,AMPNet1 在精确度上提升3.6 个百分点,FPS上提升2;BiSeNet V2[14]的语义和细节2个分支 的高层特征图通道数都仅为128,是AMPNet 的1/8,且在语义分支下采样过程和特征融合过程中均使用深度可分离卷积,计算量约是AMPNet2 的1/8,与之相比,AMPNet2 在速度上略有降低,但分割精确度却提升0.9 个百分点;与STDC1 原网络相比,AMPNet1 在FPS 上降低9,但却提升了5.2 个百分点的分割精确度,与STDC2 原网络相比,AMPNet2的FPS 提升11.7,同时分割精确度提升5 个百分点。

表2 模型性能比较Table 2 Models performance comparison

表3 对比AMPNet 与其他网络在Cityscapes 数据集具体类中的分割准确率。语义分割的一大难点是小目标物体分割,从表3 可以看出:与STDC 原网络对比,AMPNet在人物、摩托车等小目标物体上的分割准确率更高;与BiSeNet V2[14]相比,AMPNet2在对墙面、公共汽车和火车的分割上效果更好。

表3 19 个类别的分割准确率对比Table 3 Comparison of segmentation accuracy for 19 categories %

可视化效果如图4 所示,从中可以看出,AMPNet 对树木边缘、路灯以及路牌的分割更占优势,可见本文算法在物体细节与小目标物体分割上表现较好。

图4 对比实验可视化效果Fig.4 Visualization effect of comparative experiments

3.5 消融实验

为验证AMPNet中各模块的有效性,进行消融实验,结果如表4 所示。从表4 可以看出:AMPNet1 参数量为36.26×106,分割精确度mIoU 为64.45%,分割速度FPS 为129;在AMPNet1 编码器的Layer 4 后添加SPPM 模块,由于其多尺度池化的有效性,提升了AMPNet1 对于多尺度目标的特征捕捉能力,分割精确度提升了8.06 个百分点,同时其轻量化保证了模块参数量,不过分降低算法分割速度,因此,分割速度FPS 仅降低15;因为AMPNet1 中高层特征图通道数多,所以将FCAM 模块用于网络深层,保证高层特征图中各通道能有效融合,将FCAM 添加至编解码网络的Layer 4 之后,FPS 降低了6,但是分割精确度却提升了8.28 个百分点;将SPPM 和FCAM 以串联方式连接在Layer 4后,精确度提升了近9 个百分点;在Layer 3 添加FCAM,则进一步提升了分割精确度。本文也尝试将FCAM 添加至低层Layer 2 之后,实验效果却降低,再一次说明FCAM 适用于通道数多的高层特征图。

表4 消融实验结果Table 4 Results of ablation experiment

为验证AMPNet 中FCAM 的分割效率,将一些经典通道注意力模块与FCAM 进行对比,结果如表5所示。从 表5 可以看出:SENet[19]中提出的SE模块仅使用全局平均池化的方式捕捉全局信息,虽然参数量较小,但是特征捕捉方式过于单一,分割精确度不如FCAM;CBAM[20]中提出的CAM 模块在SE 模块的基础上增加全局最大池化和多层感知机,与SE 模块相比,能获取更多的辨别性特征,但是获取各通道权重后不能很好地融合同一位置不同通道像素间的关系;FCAM 相比SE 模块提升了6.02×106参数量,相比CAM 模块提升了7.52×106参数量,但在FPS 上与前两者相比平均只降低1,且融合高层特征图各通道的方式更有效,分割精确度也更高。

表5 通道注意力模块对比实验Table 5 Comparative experiment of channel attention module

消融实验可视化效果如图5 所示。在图5中,4-SPPM 表示在AMPNet1 编码器的Layer 4 后面添加SPPM,4-FCAM 表示在AMPNet1 编码器的Layer 4后面添加FCAM,4-SPPM-4-FCAM 表示在AMPNet1编码器的Layer 4 后面添加SPPM 和FCAM,4-SPPM-4-FCAM-3-FCAM 表示在前者基础上继续在Layer 3 后面添加FCAM。

图5 消融实验可视化效果Fig.5 Visualization effect of ablation experiment

4 结束语

本文基于注意力机制和多尺度池化提出一种编解码结构的实时语义分割网络AMPNet。设计融合通道注意力模块FCAM,先通过注意力机制计算各个通道的权重,再根据权重有效地对深层特征图的不同通道进行融合,从而减少算法计算过程中的参数量和计算量。提出一种轻量化金字塔场景解析模块SPPM,以捕捉不同尺度大小的特征信息。在Cityscapes 公开数据集上的实验结果表明,AMPNet具有有效性和可行性。下一步将研究编解码结构中的高低层特征融合与边界细化问题,以加强各层特征表示、优化边界分割效果,进一步提升模型分割性能。

猜你喜欢
池化精确度注意力
面向神经网络池化层的灵活高效硬件设计
基于Sobel算子的池化算法设计
让注意力“飞”回来
卷积神经网络中的自适应加权池化
研究核心素养呈现特征提高复习教学精确度
“硬核”定位系统入驻兖矿集团,精确度以厘米计算
基于卷积神经网络和池化算法的表情识别研究
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
近似数1.8和1.80相同吗