基于特征上下文编码的实时语义分割网络
2022-01-04孔慧芳
孔慧芳,冯 超,胡 杰
(合肥工业大学 电气与自动化工程学院,安徽 合肥 230009)
0 引 言
近年来因为自动驾驶等应用需要目标识别和物体分类等信息准确及时的反馈,所以对可应用于移动端的语义分割网络的需求十分迫切,也对语义分割结果的快速性和准确性提出了更高的要求。目前,语义分割结果的高精度大多是通过卷积层和特征通道的连续叠加来实现的,牺牲了网络运行时间和内存占用,因此对需要极大计算资源的高精度分割网络在移动端的实际应用中受到限制[1-2]。
文献[3-5]研究了现有的实时语义分割工作,其中提高推理速度的技术主要如下3种:网络压缩[6-7]、卷积分解[8]以及丢弃特征后处理[6,9]。第1种技术应用于减少预训练网络的大小,如文献[6]和文献[10]所做的工作,修剪冗余通道,以实现更小的内存占用;第2种技术受到卷积因式分解的启发[11],将标准卷积分解为深度可分离卷积和点向卷积减少计算资源消耗;对于最后一类网络,通过删除特征后处理阶段,以追求一个非常轻量的框架来进一步减少网络的运行时间。尽管这些已知的方法在实时性上取得了进展,但由于对象边界周围空间细节部分完全丢失,模型感受范围变小而无法捕获大物体对象全部信息等因素,影响了分割结果的准确性。
基于以上分析,本文提出一种基于特征上下文编码的实时语义分割网络(feature context encoder for real-time semantic segmentation network,FCENet),力求达到分割速度和精度的良好平衡。FCENet主要由上下文提取和特征后处理两大模块组成。
(1) 在上下文提取模块中,通过卷积因式分解和通道混洗[12]等方法设计了非对称瓶颈块,用于提取浅层网络下的密集特征上下文。
为更多地保留下采样过程中的空间细节,上下文提取模块在构建方式上利用跳跃连接[13]的残差结构。
(2) 为提高模型学习能力和分割精度,本文提出了编码网络的另一个基本模块——特征后处理模块。在此模块中,对来自上下文提取模块的特征信息进行不同范围大小(全局、周围、局部)的信息提取,并使用通道注意力块作为沟通不同范围信息的桥梁,利用较大范围的特征指导较小范围的特征改善上下文信息,即通过将较大范围特征应用于通道上来重新加权较小范围的周围边界信息,最终获得优化后的联合特征上下文。
1 特征上下文编码网络
本文提出的特征上下文编码网络由上下文提取模块和特征后处理模块组成,如图1所示。本节逐一介绍各模块设计思路及方法,最后阐述编码网络的设计细节。
图1 特征上下文编码网络FCENet的整体框架结构
1.1 上下文提取模块结构设计
一些实时语义分割的工作已经证明不同卷积运算的良好组合可以提升推理速度,同时残差结构也被认为是联结上下文信息的有效技术。本文在上下文提取模块中设计的非对称瓶颈块结合了两者的优点。
为了尽可能多地获取上下文信息同时减少参数,本文采用双分支结构和通道混洗(channel shuffle)设计了非对称瓶颈块,和其他瓶颈块的比较如图2所示,包括ResNet[13]的瓶颈块(图2a)、ERFNet[8]的一维非瓶颈块(图2b)和ShuffleNet[12]的瓶颈块(图2c)、本文的非对称瓶颈块(图2d)。其中,C为输入卷积通道数。
图2 不同瓶颈块的比较
非对称瓶颈块的输入首先通过1×1点向卷积处理特征通道数降为1/2,即将输入分成双分支结构,每个分支负责提取相应的信息。与使用其他标准卷积相比,这种点向卷积具有更少的参数。不仅如此,为了再次减少网络计算负担,2个分支均利用卷积因式分解的非对称结构进行深度卷积,降低每个像素的卷积计算复杂度。更具体地说,一个分支用一组专门的一维滤波器(如1×3、3×1卷积)提取局部信息,另一个分支用1组带有扩张速率因子的滤波器来增大感受范围并提取周围上下文信息。之后使用Concat级联的方式来合并2个分支的输出,恢复为输入时的特征通道数。利用残差结构特点将输出与输入做通道加和,增强特征,并将其作为Channel Shuffle的输入,用于融合所有通道信息,输入给下一个单元。可以看出,本文设计的非对称瓶颈块不仅是一个轻量级模块,同时在特征上下文提取信息的能力方面也做了提升。
1.2 特征后处理模块结构设计
针对网络参数量和推理速度,以往许多相关工作[5,9,14]对下采样后的特征映射很少继续进行后续处理,而是直接对包含的丰富特征上下文信息进行上采样,牺牲部分精度以追求一个紧致轻量的框架结构。本文目的是整体权衡分割精度与推理速度,达到两者的有机统一。为此,本文设计了FCENet的特征后处理模块。对来自上下文提取模块的信息做后续处理,处理单元是该模块的核心部分,如图3所示。
图3 处理单元的结构
在处理单元中引入了通道注意力块联结不同层次的上下文信息,进一步细化提取到的上下文信息,结构如图4所示,其中ReLu和Sigmoid为激活函数。它借助与SENET[15]一致的特征提取操作,显示建模通道之间的相互依赖关系,开启不同层级特征之间的信息通信。
图4 通道注意力块结构
具体来说,将上下文提取模块输出的特征映射作为处理单元的输入,利用1×1卷积进行通道降维等待后续处理。
(1) 引用通道注意力块获得含有全局特征上下文信息的一维向量,与此同时,将3×3大小的扩张卷积和标准卷积应用于输入特征映射,使其分别能够扩大接收场来学习周围的上下文和邻域特征。
(2) 将全局特征向量作用于卷积通道上,通过通道乘法重新加权周围上下文信息,得到优化的周围联合特征。同理,继续使用通道注意力块得到加权向量,通过通道乘法来指导改善邻域局部特征,从而强调有用的成分,抑制无用的成分。
(3) 将优化的各层次信息级联恢复原始的通道数,并使用BN[16]和PRELU[17]作为非线性函数。此外,处理单元还使用残差学习在训练过程中改进梯度反向传播,即将输入特征映射添加到级联的特征上下文映射中,以促进网络中的信息流。
1.3 FCENet结构设计
基于本文提出的上下文提取模块和特征后处理模块,详细设计了特征上下文编码网络FCENet,它是一种不对称的编解码结构,并且内嵌了丰富的特征上下文信息。为方便实现聚合策略和实时推理,网络的解码器通过双线性插值(bilinear interpolation)上采样来高效实现。FCENet的详细结构见表1所列,其中d为扩张卷积速率。
表1 FCENet详细结构
在网络初始阶段,首先使用下采样单元downsampling unit,将步长为2的3×3卷积和最大池化两者并行输出叠在一起。最大池化的计算过程为:
Oc=max(Ic(i,j))
(1)
其中:i∈(1,h);j∈(1,w);c代表第c个该种下采样单元可以加深网络,方便地收集上下文而不需要太多的计算开销。为了防止下采样过程中空间信息丢失太快,在上下文提取模块中只使用三次下采样单元,得到了具有丰富特征上下文信息的特征映射,尺寸是原始输入图片的1/8,作为特征后处理模块的输入。引入注意力机制,在后处理部分捕获更详细的特征上下文,聚合不同层次的信息。最后采用直接上采样来匹配输入图像的分辨率。
2 实验及分析
2.1 数据集及实验参数设置
CityScapes[18]是一个大规模的语义分割数据集,包含2 975张用于训练的精细注释图像和500张用于验证的图像。本文实验将每个精细注释的图像的像素被预定义为19类。
在训练中,使用批量大小(设置为8)、动量0.9和权重衰减1E-4的小批量随机梯度下降,并采用“Poly”学习率策略[19],初始学习率设置为5e-3。FCENet没有使用任何预先训练,所有实验都是在单个GTX1080Ti GPU、CUDA9.0和CuDNNV7上进行。
2.2 评价指标
此外,本文采用平均交并比(mean IoU,mIoU)来评估分割精度,即计算真实值和预测值2个集合的交集和并集之比,即
(2)
其中:Pij为真实值为i,被预测为j的数量;k+1为类别个数(包含空类);Pii为真正的数量;Pij、Pji分别为假正和假负。mIoU一般基于类进行计算,将每一类的IoU计算之后累加,再进行平均,得到全局的评价。
此外,本文采用FPS(frame per second)对网络的推理速度进行评价:
FPS=Nit/Tel
(3)
其中:Nit为迭代次数;Tel为迭代所需时间。
2.3 FCENet的消融实验与分析
为进一步验证本文最终设计的网络结构的合理性及有效性,本节做了一系列有关FCENet结构设计的对比实验。
2.3.1 不同卷积扩张速率的消融实验与分析
上下文提取模块是FCENet有效提取特征上下文的核心模块。本文通过逐渐增大非对称瓶颈块中的卷积扩张速率获取不同层次的空间信息,见表2所列。
表2 FCENet在CityScapes验证集上的不同扩张速率比较
为突出对比,加入扩张速率全设置为2的对比实验,结果显示在分割精度上比FCENet低2.4%,说明了逐渐增大扩张速率的必要性,同样另外2组扩张速率为{1,1,1,2,4,8}和{2,4,8,8,16,16}在分割精度上的表现也略低于FCENet,故需要对扩张速率进行合理的择优设置。
2.3.2 不同特征后处理模块的消融实验与分析
通过对比有无特征后处理模块,说明该模块设计对于提升分割精度的必要性,可以发现后处理部分仅仅牺牲了部分推理速度但分割精度提升了3.6%;通过对比处理单元数量的多少,表明堆叠处理单元对提升精度的帮助作用递减。此外通过参数量的变化反映出特征后处理模块是轻量级的模块。
综合考虑参数量和mIoU的变化,本文最终选择叠加3个处理单元,见表3所列。
表3 FCENet在CityScapes验证集上的不同特征后处理模块比较
2.4 FCENet与现有网络的对比
本文以CityScapes标准数据集为参照,从分割精度、参数量以及运行时间方面进行比较,所有实验均在单卡GTX1080Ti GPU上运行,FCENet与其他先进网络的对比见表4所列。实验结果显示FCENet仅具有0.6 M的参数量,却取得了65.1%的mIoU和71 帧/s,表明本网络在精度和速率方面达到了良好的平衡。
从表4可以看出,PSPNet[20]虽然取得了高分割精度,但庞大的参数量和运行时间使其很难部署到移动应用上,相比之下,FCENet只有其1%的参数量,在保证一定分割精度的前提下同样取得了具有竞争性的表现。同其他轻量化的网络相比,如ContextNet[21],其精度表现相似,但FCENet参数量更低;相比ESPNet[22],FCENet参数量略高但是显著提升了分割精度。同样地,FCENet在参数量上仅仅略高于CGNet[23]和ENet[5],但是在分割精度和速度上的表现都更加优异。通过和其他方法比较,表明了FCENet保持着较高的竞争性。
表4 FCENet与其他先进方法的比较
FCENet在Cityscapes 验证集上的预测如图5所示。
图5 FCENet在CityScapes验证集上的预测表现
根据可视化结果以及表4的实验结果可以看出本文网络模型在取得65.1%的mIoU下,对于不同物体间的边缘分割表现较为清晰准确。同时分割速度达到71 帧/s,在保证分割结果快速性的同时对于物体轮廓形状的分割也较为平滑,优化了分割结果的语义边界,这对于物体边缘信息以及分割速度有较高需求的自动驾驶汽车等移动应用具有良好的适用前景。
3 结 论
本文提出了一种基于特征上下文编码的实时语义分割网络结构FCENet,探讨了编码网络如何获取丰富的上下文信息而不引起过多的计算负担的上下文提取模块,并设计了利用提取的特征信息增强网络性能的特征后处理模块。实验结果表明,FCENet在分割精度和推理速度之间达到了很好的平衡。此外,FCENet具有极少的参数量和内存占用,便于在移动端进行部署,在自动驾驶汽车、移动机器人等领域具有良好的应用前景。