基于混合注意力的实时语义分割算法
2020-05-12严广宇刘正熙
严广宇,刘正熙
(四川大学计算机学院,成都 610065)
0 引言
随着计算机运算能力的显著提升,深度卷积神经网络(Deep Convolutional Neural Networks,DCNN)已经被成功运用到许多人工智能任务中,如图像分类(Im⁃age Classification)、目标检测(Object Detection)、语义分割(Semantic Segmentation)、动作识别(Action Recogni⁃tion)、语音识别(Speech Recognition)和机器翻译(Ma⁃chine Translation)。图像语义分割是许多计算机视觉任务的关键问题,它对输入的整张图像进行密集的类别预测,为图像中的每一个像素点分配一个语义标签(如“人”、“树木”),因此它也称为密集图像预测(Dense Image Prediction)。
近年来,基于深度卷积神经网络的语义分割方法在多个语义分割数据集上不断刷新记录。Jonathan等人提出全卷积网络(Fully Convolutional Network,FCN)[1],首次将DCNNs运用于图像分割领域,使用端到端的训练方式,相比于传统图像分割方法有极大的提升。Ron⁃neberger等人提出基于Encoder-Decoder的医学图像语义分割网络U-Net[2],其编码器采取逐层下采样提取深层语义信息,然后在解码器模块中逐层上采样与编码器特征图进行融合得到最终的分割结果,该网络采用逐层还原的方式使得分割结果具有精细的边界,有利于提高分割精度。Chen等人[3,4]基于FCN采用转置卷积进行上采样,使用空洞卷积(Atrous Convolution)在不增加卷积参数的情况下扩大卷积核的感受野,并在模型输出后增加条件随机场(Conditional Random Field,CRF)作为后处理步骤,进一步提高模型预测精度。DeepLab v3+[5]以修改的Xception[6]作为编码器的主干网络,并将深度可分离卷积(Depthwise Separable Convolu⁃tion)与空洞卷积结合用于替换原始网络中的标准卷积,进一步降低网络运算量和参数数量从而加快模型的推理速度。
由于语义分割任务是进行像素级的分类,为使得最终预测结果具有精细的物体边界和较高的精度,其天然需要加深模型的深度和宽度,并且输入高分辨率的图像。但这些操作会加大模型的参数量与计算量,使其推理速度无法满足实时性需求。随着越来越多新颖的具有较高精度的语义分割模型提出,众多研究人员逐渐关注于研究如何在损失较少精度的情况下,降低模型的复杂度与运算量,加快模型的推理速度,从而能将其投入到移动设备的实时应用中(如无人驾驶)。Paszke等人受ResNet中Bottleneck结构的启发提出轻量网络ENet[7],使用提前下采样去除视觉的冗余信息并减少后续操作的计算量,采取非对称的Encoder-De⁃coder结构来平衡模型的精度与速度。Zhao等人提出ICNet[8],模型首先基于低分辨率图片得到粗糙预测结果,然后使用级联特征融合单元(Cascade Feature Fu⁃sion Unit,CCF)将中、高分辨率图像特征与低分辨率特征图逐步融合,从而可以以较低的计算成本细化分割结果。BiSeNet[9]采用双通路结构来分别捕获图像的空间信息和语义信息,语义分支中使用注意力加权模块(Attention Refinement Module,ARM)[10]让特征更具有代表性,网络最后使用特征融合模块(Feature Fusion Mod⁃ule,FFM)将两通路的特征图进行融合上采样得到最终预测结果。LEDNet[11]采用非对称的Encoder-Decoder结构,基于ResNet网络引入卷积分解和Channel Split and Shuffle操作减少网络参数数量并提高轻量网络的特征表达能力。同时在Decoder中引入注意力金字塔网络(Attention Pyramid Network,APN)来进一步提高网络特征选择能力。
图像注意力机制是指人类用视觉观察整张图像时的一种信息处理方式,它通过快速选择图像中需要“重点观察”的区域,然后对该区域分配更多注意力资源,来凸显出更多的细节信息,便于后续进行高效的信息处理。该过程与图像显著性检测目的相同,当在有限的计算资源下处理海量图像数据时,通过舍弃图像中不重要的背景信息,集中处理重要区域的信息,从而大大提高处理视觉信息的效率与准确性。近年来,注意力机制逐渐运用于DCNN中并取得良好的效果。SENet[12]考虑特征通道之间的关系,采用Squeeze和Ex⁃citation操作来建立特征通道之间的相互依赖关系,学习不同特征通道的重要程度,然后将此重要程度加权到原始特征上,完成对原始特征的重标定。这种注意力称之为通道注意力(Channel Attention)。Fu等人[13]为更加关注图片中局部的细节信息,使用RA-CNN递归分析局部信息,从中提取重要特征,使用子区域进行预测,将子区域的预测结果进行整合得到整张图片的预测结果。这种注意力称之为空间注意力(Spatial Atten⁃tion)。DANet[14]通过自适应地整合局部特征和全局依赖,将空间注意力与通道注意力的特征进行求和得到最后的特征表达。Wang等人[15]类比残差学习提出注意力残差学习,认为若注意力模块能被构造成恒等映射,那么它的性能将不会比没有注意力机制的网络差,用于解决简单堆叠注意力模块在深层网络中出现的性能下降和破坏特征分布问题。
从实时语义分割网络的设计角度出发,本文网络采取非对称的“编码器-解码器”结构,以Xception网络作为Backbone,其中使用深度可分离卷积(Depthwise Separable Convolution)[16]替换原始网络中的标准卷积,并在解码器模块中使用残差注意力,综合运用空间金字塔注意力与通道注意力分支增强原始特征图的表达能力。从而在大幅计算量,减少模型大小的同时,提高模型推理速度和预测精度。
1 实时网络设计
本文实时网络与文献[5]相同使用Xception作为Backbone。为提高网络推理速度并减少参数量,本文对Xception网络通道数进行精简,使其最大通道数保持为256,网络结构如图1所示。Xception使用深度可分离卷积来替代标准卷积操作,它把标准卷积的运算过程进行拆分,先使用深度卷积(Depth-wise Convolu⁃tion)对每个通道的特征图单独进行计算,然后使用1×1的点卷积(Point-wise Convolution)来对上一步操作后每个通道的特征图进行计算,得到最终卷积结果。假设输入特征图表示为[Cin,Hin,Win],其中C表示特征图通道数,H,W表示特征图的高和宽,输出特征图表示为[Cout,Hout,Wout],卷积核大小为[K,K]。若经过卷积后特征图的大小不变,即Hin=Hout,Win=Wout,则输入特征图经过标准卷积层的乘法计算量为:
标准卷积层权重参数数量为:
输入特征图经过深度可分离卷积层的乘法计算量为:
深度可分离卷积层权重参数数量为:
两种卷积乘法计算量的比值为:
两种卷积权重参数数量的比值为:
一般卷积核的大小至少为3,输入输出的通道数也远远大于 1,由公式(5)(6)可知,深度可分离卷积相比于标准卷积可以大幅度减少深度神经网络的计算量和参数数量,有利于提高网络的推理速度并减小网络模型大小。
图1 精简的Xception
本文解码器模块使用残差注意力分支增强原始特征图的表达能力,其包含空间金字塔注意力分支和通道注意力分支,使用残差连接构造恒等映射,可以使得网络加入注意力后至少不会比不加注意力的网络的性能要差。空间注意力分支与通道注意力分支最后都接Sigmoid函数将数值缩放至[0,1]范围内,然后与原始特征图进行对应位置的点积,从而完成对特征图不同位置重要程度的加权,最后再使用残差连接将两分支重新标定后的特征图与原始特征图相加求和。经过混合注意力分支后,特征图双线性插值上采样,使其和编码器中下采样1/4的特征图具有相同分辨率,与之进行相加融合叠加,这样可以为特征图补充更多上层物体的边界信息,使分割预测结果具有精细的边界。最后通过卷积上采样至原图大小,得到最终的预测结果。实时语义分割网络结构如图2所示。
图2 实时语义分割网络结构
2 实验及训练
本文使用开源数据集Cityscapes来验证所提出方法,其包含5000张2048×1024的来自世界50个城市的道路街景图片,经过精细标注后分为3725张训练集,500张验证集,725张测试集,如图3所示。本文使用平均交并比mIOU(mean Intersection Over Union)来衡量语义分割网络的性能。为验证本文提出的混合注意力机制的有效性,分别按照是否使用注意力模块、是否使用通道注意力、是否使用空间注意力等条件设置对比实验。
图3 Cityscapes数据集图片及标注样例
所有实验中,迭代Epoch设为 300,batchsize为8。网络初始学习率为0.01,每个Epoch训练后,模型在验证集上测试当前性能,若经过10个Epoch的训练,模型性能都没有提高,则将当前学习率乘以0.3进行学习率更新。实验中使用Adam优化器进行网络权重参数的更新,由于模型容量较小且复杂度不高,较难出现过拟合现象,故将权重衰减系数设为0,避免添加L2损失带来的模型性能下降。输入的训练图片使用随机尺度(随机尺度范围为[0.5,2])裁剪到512×512,然后使用随机水平翻转、随机高斯滤波、随机白噪声等方式进行数据增广。实验中,设置随机种子为1,保证模型训练的可复现性。所有网络卷积层权重参数使用Kaiming方法进行初始化。BatchNorm层gamma初始化为1,beta初始化为0。
3 实验结果与分析
本文实验运行环境为Ubuntu 16.04,显卡NVIDIA GeForce GTX 1080ti,PyTorch1.13,CUDA10.1。4 组对比实验中,模型均无预训练模型,以随机初始化参数开始训练。模型最终在Cityscapes验证集上的mIOU以及对于1024×512图片的推理速度如表1所示。使用混合注意力的模型对于测试集图片的预测分割结果如图4所示。由表1可知,实时语义分割网络引入混合注意力机制后,模型mIOU达到62.01%,比没有添加注意力的网络提高1.82%。并且没有引入过多计算量,FPS只降低了一帧。实验结果基本验证了本文提出方法的有效性。
表1 实时语义分割模型训练结果
图4 预测分割图
4 结语
本文针对实时语义分割网络精度不高的问题,提出在解码器阶段使用混合注意力机制增强特征图的表达能力,在不引入过多参数量和计算量的情况下,提高网络模型精度。为验证所提出的方法,设置4组对比实验。实验结果表明,本文提出的方法在网络推理速度降低1fps的情况下,将模型精度提高1.82%。但本文方法仍需继续改进,进一步降低参数量和计算量,提高模型精度,更好地满足实时语义分割网络需求。