专栏名称: 新机器视觉
最前沿的机器视觉与计算机视觉技术
目录
相关文章推荐
国际旅游岛商报  ·  突发!美国两架飞机相撞 ·  昨天  
中国兵器工业集团  ·  北方公司北方国际巴基斯坦拉合尔橙线首列主题列 ... ·  5 天前  
中国兵器工业集团  ·  兵器工业集团与兵器装备集团举行工作会谈 ·  4 天前  
军武次位面  ·  春节回乡观察:消费基建,正在重塑县城生活 ·  4 天前  
51好读  ›  专栏  ›  新机器视觉

基于GLCNet的轻量级语义分割算法

新机器视觉  · 公众号  ·  · 2025-01-18 21:31

正文

作者:马素刚,陈期梅,侯志强等

来源:《北京航空航天大学学报》

编辑:陈萍萍的公主@一点人工一点智能

原文:https://bhxb.buaa.edu.cn/bhzk/cn/article/doi/10.13700/j.bh.1001-5965.2022.0822

摘要 :多数基于卷积神经网络的语义分割算法伴随庞大的参数量和计算复杂度,限制了其在实时处理场景中的应用。为解决该问题,提出了一种基于全局-局部上下文网络(GLCNet)的轻量级语义分割算法。该算法主要由全局-局部上下文(GLC)模块和多分辨率融合(MRF)模块构成。
全局-局部上下文模块学习图像的全局信息和局部上下文信息,使用残差连接增强特征之间的依赖关系。在此基础上,提出了多分辨率融合模块聚合不同阶段的特征,对低分辨率特征进行上采样,与高分辨率特征融合增强高层特征的空间信息。在Cityscapes和Camvid数据集上进行测试,平均交并比(mIoU)分别达到69.89%和68.86%,在单块NVIDIATitanVGPU上,速度分别达到87帧/s和122帧/s。
实验结果表明:所提算法在分割精度、效率及参数量之间实现了较好的平衡,参数量仅有0.68×10 6
引言
语义分割是将图像分割成具有不同语义类别的区域,可以看作是像素分类任务,已成功应用于许多视觉相关的场景中,如自动驾驶[1]、医学图像分割[2]和3D场景识别[3]等。近年来,语义分割取得优异的性能得益于卷积神经网络(convolutionalneuralnetwork,CNN)的发展,特别是全卷积网络(fullyconvolutionalnetwork,FCN)[4]的提出,其利用CNN实现了像素点到像素类别的预测。
以FCN为基础出现的一系列分割算法有:文献[5-6]采用编解码器结构恢复高分辨率图像;DeepLab[7]及其变体算法[8-11]主要利用经ImageNet训练的主干网络提取对象的局部信息,使用不同的上下文模块提取语义信息。上述语义分割算法都使用深而宽的主干网络提取特征,需要大量的参数及较长的推理时间,忽略了计算效率、参数量及内存占用等因素,难以将其应用到系统资源受限的场景中。为此,需要构建一个轻量级的语义分割网络,解决资源受限场景的应用问题。
现有的轻量级语义分割网络大致分为2类:①基于连续下采样[12]和压缩通道的方法[13]减少冗余信息,进而提高推理速度。②基于双分支模块的方法[14]减少参数量。以上2类方法在权衡准确率和速度方面取得了较好的效果,但连续的下采样会逐渐损失输入特征的空间信息,双分支模块忽略了全局信息在分割中的作用。
基于以上分析,本文提出一种轻量级的语义分割网络,较好地平衡了准确率与速度。上下文特征在语义分割中起着关键性作用,这是因为上下文特征往往属于区域级的分类,附近像素通常拥有一个相同的标签,所以每个对象的表示可从自身及周围相关像素中获取,更加准确地判别对象的类别。
基于此,本文设计了全局-局部上下文(global-localcontext,GLC)模块,该模块由全局信息提取器和局部上下文信息提取器组成,分别提取不同的特征信息,拼接两分支特征,通过残差连接建模特征之间的相关性,有利于学习复杂场景中的特征信息。
以GLC模块为基础,构建了一个轻量级的语义分割全局-局部上下文网络(global-localcontextnetwork,GLCNet),在该网络中提出的多分辨率融合(multi-resolutionfusion,MRF)模块聚合不同阶段的特征,进一步提升分割精度。
1)提出了一种轻量级的语义分割网络GLCNet,该网络主要包括GLC模块和MRF模块,在减少参数量和节约内存占用的情况下,取得了较好的分割性能。
2)设计了一种GLC模块,该模块采用多频谱注意力机制和卷积操作学习图像的全局信息及局部上下文信息,同时使用残差连接建模信息之间的相关性,该模块具有较少的计算量。
3)设计了一种MRF模块,先使用注意力抑制高分辨率特征中不重要的信息,并对低分辨率特征进行上采样,再将高分辨率特征具有的空间信息传播到低分辨率特征中,增强其空间信息,该模块具有较少的参数量。
4)在Cityscapes和Camvid数据集上验证了本文算法的有效性,平均交并比(meanintersectionoverunion,mIoU)分别达到69.89%和68.86%。输入图像大小为512×1024时,速度可达87帧/s;输入图像大小为360×480时,速度可达122帧/s。与SGCPNet[13]等轻量级算法相比,本文算法取得了更好的分割性能。
相关工作
1.1 实时语义分割
目前,越来越多的视觉应用场景(如自动驾驶、机器人等)对分割算法的速度有着较高的需求,因此,人们对构建轻量级的分割模型进行了大量研究。高效神经网络(efficientneuralnetwork,ENet)[14]通过减少下采样次数以缩小模型,采用非对称的编解码结构降低参数量,精度不高。高效对称网络(efficientsymmetricnetwork,ESNet)[15]设计了一个高效的对称卷积网络,提高分割精度。
高效空间金字塔网络(efficientspatialpyramidnetwork,ESPNet)[16]提出了高效的空间金字塔模块,降低计算复杂度。上述算法均采用基于卷积操作的方法提高推理速度。图像级联网络(imagecascadenetwork,ICNet)[17]和深度特征聚合网络(deepfeatureaggregationnetwork,DFANet)[18]提出图像级联网络和多次连接结构来重用不同阶段的特征信息,该方法提高了分割准确度,但频繁处理高分辨率特征降低了分割速度。
深度双分辨率网络(deepdual-resolutionnetwork,DDRNet)[19]和双边分割网络(bilateralsegmentationnetwork,BiSeNet)系列[20-21]算法采用双分支模型分别捕获空间信息和语义信息,但双分支模型获取的信息相互独立。最近,并行的非对称卷积模块受到广泛关注,如轻量级编码器-解码器网络(lightweightencoder-decodernetwork,LEDNet)[22]、深度可分离非对称瓶颈网络(depth-wiseasymmetricbottlenecknetwork,DABNet)[23]和RegSeg[24]等,该模块更多地关注局部信息和上下文信息,忽略了全局信息对分割的影响。
1.2 注意力机制
注意力机制模仿人类视觉机制,关注众多输入特征中的关键信息,自适应地过滤无关信息。挤压与激励网络(squeeze-and-excitationnetwork,SENet)[25]采用全局池化为特征重分配权重,突出重要信息,降低对不重要信息的关注。高效通道注意力网络(efficientchannelattentionnetwork,ECA-Net)[26]提出了一种不降维的局部跨通道交互策略,并获得显著的效果。
为缓解全局池化造成空间信息的丢失,位置注意力CoordAttention[27]将空间信息嵌入到通道注意力中。全局二阶池化网络(globalsecond-orderpoolingnetwork,GSoP-Net)[28]在主干网络的不同阶段中引入GSoP模块,有效捕获高阶统计信息。交叉注意力网络(criss-crossattentionnetwork,CCNet)[29]设计了一个高效的交叉注意模块捕获像素间的依赖关系。本文在GLC模块和MRF模块中使用多频谱通道注意力[30]关注不同通道间的重要信息,过滤无关信息的干扰。
1.3 空洞卷积和卷积分解
空洞卷积指在标准卷积的相邻位置间插入零扩大感受野,如DeepLabV2[7]提出的空洞空间金字塔池化,采用不同的空洞率获取多尺度上下文信息。
高效密集的非对称网络(efficientdensemodulesofasymmetricnetwork,EDANet)[31]结合空洞卷积和密集连接提出了一个高效密集的非对称卷积模块,随着空洞率的增大,需要大量的填充来保持图像分辨率,计算成本也会随之增加。
InceptionV3[32]使用卷积分解将大卷积分解为非对称的一维卷积,节约计算资源。MobileNet[33]利用深度可分离卷积来减少参数量和计算量,性能略有下降。
本文算法
本文算法的总体框架如图1所示,主要包括卷积块、下采样、GLC模块和MRF模块。
图1 GLCNet整体框架
2.1 网络结构
本文以提出的GLC模块为主要组件,设计了轻量级的GLCNet网络,详细结构如图1所示。设计该网络的原则是减少参数量,节约内存占用,同时提高速度。与深度卷积网络(VGG、ResNet等)结构不同的是,该结构主要通过堆叠数个小通道的卷积形成,且本文将原始图像的分辨率缩小到1/8,有利于空间信息的保留。这是因为高精度的语义分割模型[8-11]通常将原始图像的分辨率缩小到1/32以获取物体抽象的特征信息,但该过程会造成空间信息的损失。
本文使用3个卷积提取初始特征C 1 ,其中,3×3卷积用于维度的变换,将低维特征映射到高维。1×1卷积通过对原有通道的加权融合增强通道间的交互,同时该卷积拥有较少的参数量。最后使用步长Stride为2的3×3卷积将原始图像的分辨率缩小到1/2。
受Inception[34]的启发,本文采用步长为2的3×3卷积和步长为2的2×2最大池化2种方式缩小图像分辨率,其中,卷积通过学习参数及控制步长捕获更多的局部信息,池化捕获特征的空间信息。拼接两分支的输出以获得丰富的特征信息。使用该下采样方式将原始图像的分辨率缩小到1/4和1/8。
下采样后,堆叠不同数量的GLC模块获取全局信息和局部上下文信息。首先,在第1个下采样模块后堆叠4个GLC模块,其对应的空洞率均为1,输出特征图C 2 。其次,在第2个下采样模块后堆叠5个GLC模块,其对应的空洞率为4,4,8,8,12,输出特征图C 3 。在下采样后使用GLC模块,GLCNet能从空间和语义层面聚合全局信息和局部上下文信息。
与仅在语义阶段捕获上下文信息的结构相比,GLCNet能在每个阶段捕获对象的全局信息和局部上下文信息。然后,使用MRF模块将低层的空间信息传播到高层特征中,使不同阶段的特征能相互学习。最后,将特征信息输入到3×3深度卷积中增强信息流间的交互,使用1×1卷积输出像素类别。
2.2 GLC模块
本文提出的GLC模块由全局信息提取器和局部上下文信息提取器2个分支组成,如图2所示。在每个GLC模块的开始,使用3×3卷积将输入特征F in ∈R C×H×W (C为通道数,H为高度,W为宽度)的通道数减半为c=C/2,其输出表示为F out ,此处使用3×3卷积是因其拥有更大的感受野,将通道减半后的特征作为两分支的输入。
全局信息提取器分支主要使用多频谱通道注意力[30]捕获特征信息,先将F out 均分为i=16组,记为 ,分组后的通道数为c′=c/i。对每组特征使用2维离散余弦变换(two-dimensionaldiscretecosinetransform,2DDCT)进行预处理。上述过程表示如下:
图2 GLC模块
式中: 为输入图像;h∈{0,1,···,H−1};w∈{0,1,···,W−1};、u、v和F i 分别为 的分量下标和输出结果。
使用启发式两步准则为每组特征选择对应的频率分量,先评估每个通道频率分量的重要性,再选择性能最好的频率分量。对每个F i 进行拼接,将拼接后的向量输入到全连接层中学习以获得注意力图,再与输入特征相乘进行加权。上述过程表示如下:
式中:F glo 为全局特征图的输出结果;F为拼接16个高性能频率分量的输出;cat表示拼接操作;fc表示全连接;sigmoid表示激活函数。
局部上下文信息提取器分支主要由卷积分解和深度空洞卷积组成。首先,将标准的3×3卷积分解为非对称的3×1卷积和1×3卷积来捕获局部信息。然后,使用空洞卷积捕获不同尺度的上下文信息,同时利用深度卷积减少模型的参数及内存占用。
最后,拼接两分支的输出结果,加强两分支特征间的相互学习,同时保持特征的通道数不变。通过残差连接将输入与输出相加,增强空间信息和语义信息间的相关性。上述操作表示如下:
式中:F 1 为局部特征的输出结果;Conv m×n 表示卷积核大小为m×n的卷积操作;DW-D-Conv m×n 表示卷积核大小为m×n的深度空洞卷积;F glo 和F locc 分别为两分支的输出结果;F output 为GLC模块的输出结果。
2.3 MRF模块
为充分利用不同阶段的特征信息,本文提出MRF模块。首先,使用多频谱通道注意力处理特征图C 1 以关注通道间重要信息;其次,应用1×1卷积调整通道数为64;然后,分别对特征图C 2 和C 3 进行2倍和4倍的上采样,以匹配低层特征的空间分辨率,将处理后的C 1 特征图与2倍上采样后的特征图相加,应用1×1卷积调整相加后特征的维数为128;最后,融合调整维数后的特征图与4倍上采样后的特征图C 3 。上述过程表示如下:
式中:MSCA表示多频谱通道注意力,其输出为 ;Up表示上采样操作;α为上采样因子; 表示对特征图 进行1×1卷积。
实验
3.1 数据集与评价指标
1)数据集 。本文采用Cityscapes[35]数据集和CamVid[36]数据集验证算法的有效性。Cityscapes数据集由5000张精细标注图像和20000张粗标注图像组成,在本文中仅使用精细标注图像,图像大小为1024×2048,每个像素都包含在预定义的19个类中,这些图像被分为训练集、验证集和测试集,分别包含2975张图像、500张图像和1525张图像。
CamVid是另一个具有挑战性的街景数据集,其由从不同视频序列中提取的701张图像组成,图像大小为720×960,每个像素都包含在预定义的11个类中,这些图像被分为训练集、验证集和测试集,分别包含367张图像、101张图像和233张图像。
2)评价指标 。采用mIoU衡量分割精度,使用帧/s测量分割速度,采用参数量评估内存消耗。
3.2 实验环境与参数设置
1)实验环境 。系统环境为Ubuntu18.04,Python3.6,Pytorch1.0,CPU为Intel(R)Xeon(R)Gold6136,GPU为NVIDIATITANV,CUDA版本为10.2。
2)参数设置 。在训练阶段,使用Adam优化器更新网络参数,其中,指数衰减率为默认值,权重衰减为2×10 −4 。采用Poly学习策略自适应调整学习率,使每次迭代后的学习率为base\_lr(1−iter/iter max ) 0.9 ,其中,base\_lr为1×10 −3 ,iter为当前迭代次数,iter max 为最大迭代次数。
在2个数据集上均训练1000个epochs且批量大小为16。采用随机水平翻转和随机缩放增强训练数据,随机缩放的范围为[0.5,2]。Cityscapes数据集和Camvid数据集的输入图像大小分别为1024×512和480×360。在测试阶段,仅使用单尺度进行测试。
3.3 可视化结果
图3[31,37-38]和图4[23,38-40]分别给出了本文算法与其他分割算法在Cityscapes数据集和Camvid数据集上的可视化结果。可以看出,本文算法能准确地判别物体位置并进行分割。如图3所示的第1行和第3行,本文算法能准确识别图像中车辆像素,而其他算法的结果显示对车辆边缘分割不完整。
在第4行中,本文算法能较好地判别道路像素,而EDANet[31]、快速分割卷积神经网络(fastsegmentationconvolutionalneuralnetwork,Fast-SCNN)[37]和上下文引导网络(contextguidednetwork,CGNet)[38]对道路像素的判别受到其他像素的干扰。
在第5行中,分割算法EDANet[31]和Fast-SCNN[37]未能更好地识别交通灯标志,但本文算法能准确地判别物体的位置,并呈现出清晰的分割结果。对于建筑物、栏杆及小物体等像素而言,本文算法具有更好的分割效果。
图3 Cityscapes数据集的可视化对比结果
图4 Camvid数据集的可视化对比结果
如图4所示的第1行中,分割算法CGNet[38]和DABNet[23]对于路灯的分割较为粗糙。在第2行中,其他分割算法将树木的边缘像素判别为其他像素的一部分,而本文算法能更好地识别其边缘像素。在第3行中,分割算法CGNet[38]、高效残差分解网络(efficientresidualfactorizedconvNet,ERFNet)[39]和DABNet[23]未能很好地识别围墙像素,但本文算法呈现出清晰的分割结果。此外,本文算法在识别道路及交通标志、车辆及建筑物等像素方面也具有一定的优势。






请到「今天看啥」查看全文