李 鑫,张红英,刘汉玉
1.西南科技大学 信息工程学院,四川 绵阳 621010
2.西南科技大学 特殊环境机器人技术四川省重点实验室,四川 绵阳 621010
图像语义分割作为计算机视觉任务中不同于目标检测和图像分类的基石性技术,为图像中每一像素分配一个预先定义好的表示其语义类别的标签达到像素级分类任务[1]。具体来说,图像语义分割是指从像素级别分辨出图像中的目标对象具体是什么以及目标对象在哪个位置,即先把图片中的目标检测出来,然后描绘出每个个体和场景之间的轮廓,最后将它们分类并对属于同一类的事物赋予一个颜色进行表示[2]。近年来,随着计算机视觉中深度学习技术的发展,图像语义分割在自动驾驶、智能医疗等方面都得到广泛应用。DCNN的内在不变性可以学习到密集抽象的特征,比传统根据样本特征设计的系统性能要好很多。但现有语义分割算法依然存在类内语义误识别、小尺度物体丢失、分割边界模糊等问题。因此,捕获更多特征信息和针对目标边界优化是提升分割准确率的重要研究内容。
2006 年Hinton 等人提出深度学习概念[3],卷积神经网络在表征学习方面得到认可。得益于计算机显卡算力的全面发展。2015 年,Long 等人在文献[4]提出全卷积神经网络(fully convolutional network,FCN),将VGG-16 网络[5]中全连接层替换为卷积层,在上采样特征图中进行像素分类。相较传统方法,在分割速度和准确率上获得全面提升,但分割结果不够精细,缺乏空间一致性。同年,文献[6]提出用于医学图像的编解码语义分割模型U-Net,使用编码器下采样获得空间信息和图像语义,解码器则通过上采样恢复特征图分辨率,通过特征图跨层融合方式提取图像细节信息,在医学领域具有良好表现但不适用与室内外场景语义预测。2016年,文献[7]在Deeplab V1 网络[8]的基础上提出Deeplab V2 模型,使用膨胀卷积代替部分池化操作进行下采样滤波器进行特征提取,使用空间金字塔池化(atrous spatial pyramid pooling,ASPP)模块[9]进行多尺度特征提取,获得更丰富的语义信息,使用全连接条件随机场(conditional random field,CRF)进行类别细节优化。2017年,Deeplab V3[10]在V2网络的基础上对ASPP模块进行改进,构成一个端对端的网络结构,取消CRF边界优化模块。2018 年提出的Deeplab V3+[11]将V3 网络作为编码器,通过增加结构简单的解码器构建一个带膨胀卷积和空间金字塔池化的编-解码器网络模型,取得更好的分割结果,但仍然存在类内误识别和边界预测粗糙问题。2019 年,微软亚太实验室提出高分辨率网络(high resolution network,HRNet)[12]通过与众不同的并联结构保持高分辨率表征,已经在人体姿态估计和语义分割等方面验证有效性,但并行网络在提升深度网络拟合力的同时大大增加了模型复杂度。
在语义分割领域,网络结构通常采用编-解码器结构;以上提到的算法除Deeplab V3+外,其他网络几乎都没有考虑有效地使用解码器模块,或仅使用结构单一的编解码对称结构,在上采样过程中,未能将高级语义信息和低级空间信息进行有效地跨层融合,丢失特征图重要像素信息,造成语义分割预测结果粗糙。因此,针对上述问题,本文提出一种以Deeplab V3+为基础的阶梯型网络模型,该方法首先对编码器中ASPP 模块进行优化,使用视觉激活函数FReLU[13]替换基线网络中非线性激活函数ReLU,提升空间像素关联性;其次针对先前广泛使用的马尔科夫随机场和CRF 算法在Deeplab V3+网络中优化结果效果较差问题,选取HRNet为骨干网络的优化算法获取更精细预测结果;最后通过实验验证了改进后网络具有更好的语义分割效果。
Deeplab V3+网络结构是谷歌实验室提出Deeplab系列中最新一代语义分割网络框架,在多个数据集表现优越,以先前提出的V3网络框架为基础,延续使用膨胀卷积减少网络计算量,空间金字塔池化(ASPP)进行多尺度特征提取,使用预训练的ResNet-101[14]或Xception作为骨干网络,使用数据归一化(BN)层防止训练过拟合,并添加解码器网络部分,构建端对端的编--解码器网络模型。
DeeplabV3+网络结构如图1 所示。将输入的图像通过带有膨胀卷积的神经网络,在保证较大感受野的同时减少下采样次数,分别提取高级语义信息和低级空间信息,将高级语义信息通过膨胀率为6、12、18的卷积层和一个最大池化层构成的ASPP 模块提取上下文信息,得到原始图像1/16分辨率的特征图,并使用卷积运算调整通道数,双线性插值四倍上采样与调整好的通道数一致的低级空间信息跨层融合,四倍上采样恢复原始图像分辨率并恢复空间细节信息,输出图像分割结果。
相较Deeplab V3+网络中图像大尺度目标精细预测,更容易造成小尺度目标缺失和类别边界粗糙问题,针对DeeplabV3+网络的不足,提升其空间建模能力来捕获更丰富上下文信息,并针对边界问题进行优化。改进后的阶梯型Deeplab V3+网络如图2 所示,该网络以ResNet-101 为骨干网络,包含编码器、解码器和优化器三部分,其主要的改进内容包括以下几点:
(1)在编码器方面,DeeplabV3+网络将V3模型作为编码器,延续使用V3 模型ASPP 模块原有膨胀率为6、12、18的膨胀卷积,而随着卷积神经网络对图像特征信息的不断提取,特征图分辨率不断降低。考虑到在提取低分辨率特征时,相较于膨胀率为6的膨胀卷积使用膨胀率为4、8 的膨胀卷积能够更好地捕获图像中小尺度目标细节信息;同时在分割大尺度目标时,需要获取较大感受野,相较于膨胀率为18的膨胀卷积,24的膨胀卷积具有更大感受野,在分割大尺度目标时更有利。将本文提出的ASPP 参数与V3+模型提供的ASPP 模块(6、12、18)进行实验对比,本文提出参数效果优于原有参数,因此本文使用4、8、12、24 替换原有ASPP 模块中膨胀卷积膨胀率。
(2)在解码器方面,原有的Deeplab V3+模型只设计一个简单的解码器,解码器主要处理高低层特征图融合操作;在进行特征图跨层融合时,考虑到ResNet101网络1/4 倍下采样特征图包含丰富的低级空间信息,而编码器ASPP 模块生成的1/16 特征图包含丰富的高级语义信息,因此在特征图融合时,因此需要将ASPP模块生成的高级特征图大小调整至骨干网络生成的低级特征图大小,故而需要将编码器ASPP 模块生成的1/16特征图进行4 倍上采样,再与骨干网络生成的1/4 特征图进行融合。再进行卷积和上采样操作生成预测结果图;在原有的编解码网络中使用ReLU 激活函数进行非线性激活,ReLU 激活函数的可靠性在深度学习领域已经得到认可,但在计算机视觉任务中缺乏像素级建模能力,因此本文使用二维视觉激活函数FReLU 替换编解码器中的ReLU激活函数获取精度补偿。
(3)在优化分支方面,考虑到原有网络未使用模型算法对生成的结果图进行优化。改进后的Deeplab V3+网络增加了一个针对分割结果的优化分支,在优化分支中,通过边界图和方向图生成包含每个像素偏移量的边界偏移图,对生成的粗略预测图进行坐标映射调整,细化后的预测结果图目标轮廓连贯、边界清晰,预测准确率更高。
1.2.1 编码器优化
膨胀卷积和空间金字塔池化模块(ASPP)作为编码器中的重要组成部分,最早由Deeplab V2网络提出,由于其在多尺度特征提取时的卓越表现,在图像语义分割领域沿用至今。ASPP模块将输入特征图并行通过不同膨胀率的膨胀卷积和全局平均池化层,较小的膨胀率能够更有效的分割小尺度目标;较大的膨胀率在分割大目标时更有效。对编码器中ASPP 模块进行改进,如图3所示,将骨干网络产生的1/16 特征图并行进入1×1 卷积、膨胀率为4、8、12、24 的膨胀卷积和全局平均池化层,生成6个通道数为256的1/16大小的特征图,在通道维度上对6个特征图进行拼接,生成ASPP模块特征图,更好地提取多尺度图像特征,提升网络对不同尺度物体的分割能力。
1.2.2 编-解码器建模能力优化
在深度学习中,卷积神经网络在处理视觉任务方面,具有良好的性能优越性。非线性激活函数是卷积神经网络中提供良好非线性建模能力的必要组成部分。现在常见的激活函数主要有ReLU 及其演变而来的PReLU。
其中,ai为学习值。
ReLU作为最常用的激活函数,当输入大于零时,为函数的线性部分。但当输入小于零时,采用人为设置零值的方式,对函数进行调整。故而存在激活死区,导致在训练时,激活函数鲁棒性差,在面对大梯度输入时,极容易出现神经元“坏死”问题,在后续网络算法中,已“坏死”神经元无法再次激活,导致参数无法获得更新,梯度值为零。
PReLU 通过引入随着数据计算而改变的随机参数ai为输入小于零部分添加线性激活部分。以上激活函数在深度学习中被应用于各个领域,可靠性得到认可。但在计算机视觉领域,这些激活函数无法提取更精细的像素级空间建模能力,因此使用2020 年香港科技大学和旷视科技提出的视觉任务激活函数Funnel ReLU(FReLU)语义分割网络进行精度补偿,获取更丰富的空间上下文语义信息。
FReLU 是一种专门为计算机视觉任务提出的二维漏斗状激活函数,通过向一维的ReLU激活函数中添加漏斗条件T(X)将其扩充至二维空间(如图4 所示),只引入少量的计算量和过拟合风险,以激活网络中的空间不敏感信息改善视觉任务,表达式为:
其漏斗条件为预设参数的正方形滑动窗口,通过深度可分离卷积和数据归一化(BN)实现,能够提升像素与像素之间的空间依赖性,激活空间不敏感信息从而获取丰富空间上下文信息,提升像素级空间建模能力,漏斗条件像素级建模能力图形描述如图5所示;只引入少量的参数,引入极少的复杂度。考虑到自然物体中,除垂直与水平方向外,斜线和圆弧同样常见,通过不同激活层提取的像素空间信息,使用不同大小的正方形表示,通过极限近似思维构成斜线和圆弧激活域,避免只使用平常的水平、垂直激活域造成的建模能力不足。
在旷世科技发表的论文中已经说明FReLU激活函数在计算机视觉任务表现优于当前存在的所有激活函数,通过大量实验验证FReLU 函数的泛化性和与深度网络的匹配适应度都强于ReLU函数。例如在ImageNet 2012 中对ResNets 骨干网络与其他有效激活函数的比较,在保证其他参数不变的先决条件下,对ResNet-50中FReLU激活函数TOP-1错误率仅为22.4%。较ReLU准确率提升1.6%,较PReLU准确率提升1.3%。在ResNet-101中FReLU表现同样优于ReLU激活函数。
随着网络层数的不断加深,下采样和金字塔空间池化操作会导致输入特征图分辨率逐渐变低,考虑到FReLU激活函数只引入少量的函数复杂度,提高少量的非线性激活成本,因此在网络框架的深层部分将原有的ReLU激活函数使用FReLU激活函数替换,实现更高的测试准确率,虽然会造成少量的运算延时,但可以弥补只使用ReLU 激活函数缺乏空间不敏感信息造成的潜在精度损失。
1.2.3 边界优化分支
现有语义分割网络中,相较于类内混淆错误,边界分割错误率更高,但先前研究中广泛使用的全连接条件随机场(CRF)对Deeplab V3+网络预测结果图改善收效甚微,无法再作为Deeplab V3+的网络边界优化算法。考虑到在图像分割结果中,类内像素分割比边界分割更为可靠,2020年英伟达公司提出Segfix[15]网络将准确类内像素预测应用到图像边界像素预测,通过对图像边界进行提取,对边界方面进行预测,将提取出的图像边界通过方向预测产生的偏移图转换为类内像素预测,每个边界像素都分别对应一个类内像素,将高准确率的类内像素预测应用到低准确率的边界部分,通过减少图像分割的边界错误来提升图像的整体预测准确率。考虑到Deeplab V3+网络在多个数据集上具有良好的类内分割准确率,因此将错误率较高的边界像素映射到类内像素进行结果预测对Deeplab V3+网络是可行有效的。
考虑到HRNet 并行网络能够时刻保持高分辨率特征表现,故选取其作为优化分支特征图提取网络;如图6所示边界优化模块中,将获得的特征图分别送入边界分支和方向分支中,在边界分支中分别使用1×1卷积、BN归一化和ReLU 激活函数生成通道数为256 特征图,再使用1×1卷积构成的线性分类器进行上采样预测,使用预设阈值进行边界划分,小于阈值的划分为目标边界,反之则为内部像素。生成包含每个像素属于边界像素概率的边界图,使用二元交叉熵函数作为边界分支损失函数。生成的二进制边界图中,边界像素用1 表示,内部像素用0表示。在对边界较厚物体进行预测时,仅使用阈值划分容易造成内部像素虚假预测。为解决此问题,通过人为设置缩放因子对所有偏移量重新缩放,减少虚假像素造成的预测错误。
在方向分支中,同样使用1×1 卷积、BN 归一化和ReLU激活函数生成通道数为256特征图,再使用1×1卷积构成的线性分类器进行上采样预测,考虑到离散分区相较于常规的连续方向图表现更好,因此将地面真实场景图的整个方向均匀的分为8 个离散分区。并使用标准类别交叉熵损失函数监督离散方向图的损失值。生成的离散方向图包含每个边界像素与之同类像素的方向信息,再将0、1组成的二进制边界图与生成的离散方向图进行全局相乘,1值代表的边界像素方向被处理保持不变,而0值代表的内部像素区域被屏蔽不在计算之中。保留边界图中0值内部像素并提取1值边界像素对应方向图中方向向量,将边界图与方向图融合为一张具有各个边界像素不同方向偏移量信息的偏移图,通过优化公式:
对边界像素进行调整,其中L~ 是细化后标签地图,pi代表边界像素i的位置,Δqi代表生成的内部像素的偏移向量;pi+Δqi代表被识别的内部像素的位置;将每个边界像素的粗略预测调整为优化后的最终预测。
本文使用Ubuntu18.04操作系统,硬件环境为Intel®Core™i7-9700 CPU@4.7 GHz处理器,32 GB内存,GPU为NVIDIA GTX2080 Ti11 GB;使用pytorch 深度学习框架。
2.1.1 数据集
本文在公开数据集Cityscapes[16]和PASCAL VOC 2012增强版数据集[17]上验证膨胀率调整后的ASPP模块性能,在PASCAL VOC 2012 增强版数据集上验证FReLU 激活函数的有效性,最后在Cityscapes 数据集上验证改进后算法性能指标。
Cityscapes由三家德国公司联合提供的大规模城市街景数据集,包含50 个城市不同天气、季节的5 000 张环境驾驶精细标注图像,(其中,2 975张图像用于训练,500张图像用于验证,1 525张图像用于测试),共提供19个类别标注,每张图像分辨率为2 048×1 024,图像中道路场景信息复杂,分割类别尺度不一。
PASCAL VOC 2012 增强版数据集由国际计算机视觉挑战赛中发布的用于目标视觉任务所使用的PASCAL VOC 2012[18]和SBD数据集合并而成,包括人、动物、交通工具和生活用品等20类物体对象和1类背景标签,使用10 582 张额外标注图像作为训练集进行训练,验证集1 449张,测试集1 456张。
2.1.2 评价指标
平均交并比(mean intersection over union,MIoU)由于简洁、代表性强而成为语义分割标准度量指标。基于类进行计算的交并比(IoU)通过计算真实值集合和预测值集合的交集和并集之比,计算图像真值与预测结果的重合程度。利用混淆矩阵表示IoU 包含真正例true positive,TP),即实际是目标,预测也是目标;假正例(false positive,FP),即实际不是目标,但预测成目标;假负例(false negative,FN),即实际不是目标,预测也不是目标。IoU计算公式为:
平均交并比(MIoU)将每一类的IoU 计算之后累加,再进行平均,得到图像全局评价。
其中,k表示标签标记的类别,k+1 表示包含空类或背景的总类别,pii表示实际为i类预测为i类的像素数量,pij表示实际为i类但预测为j类的像素数量,pji表示实际为j类但预测为i类的像素数量。MIoU的取值范围为[0,1],MIoU 的值越大,说明预测的分割图越准确。
2.1.3 超参数设置
在实验过程中,选择ResNet-101 作为骨干网络,其他超参数固定如表1 所示。批处理大小(batch)设置为8,并使用数据扩充,在PASCAL VOC 2012增强版数据集中将输入图像分辨率调整为400×400,并在[0.5,2]范围内进行随机缩放,再将图像随机裁剪为380×380 大小进行训练;在Cityscapes 数据集中将输入图像分辨率调整为768×768并在[0.5,2]范围内进行随机缩放,再将图像随机裁剪为512×512 大小进行训练,经过处理后的样本更具随机性,能更有效地防止训练过程中过拟合问题。
表1 超参数设置Table 1 Super parameter setting
2.2.1 ASPP模块不同膨胀率效果对比
膨胀卷积是ASPP 模块的重要组成部分,在不增加参数复杂度的同时能够获得更大的感受野,因此在进行多尺度特征提取时,选择合适的膨胀率能够更有效地获取图像特征信息。本文使用4、8、12、24的膨胀卷替换原有ASPP 模块中膨胀率为6、12、18 的膨胀卷积,改进后的ASPP 模块在PASCAL VOC 2012 增强版数据集和Cityscapes 数据集上MIoU 值分别提升0.004 和0.003。预测结果如表2 所示,证明改进后的ASPP 模块预测效果更好。
表2 改进前后ASPP模块预测结果Table 2 Prediction results of ASPP modulebefore and after improvement
2.2.2 使用FReLU精度补偿前后的效果对比
使用ResNet-101作为预训练模型和改进后的ASPP模块的Deeplabv3+网络作为基线,将网络中原有非线性激活函数ReLU替换为视觉激活函数FReLU,改进前后在PASCAL VOC 2012 增强数据集对比结果如表3 所示,相较原始的Deeplab V3+网络改进后的网络全局平均MIoU值提升0.009,绝大多数物体分割准确率获得提升,证明FReLU 激活函数对网络优化的有效性。可视化对比图如图7 所示,从预测结果可以看出,Deeplab V3+网络在第一行测试图像中,对大尺度目标(飞机)分割相当清晰,但对存在遮挡的小尺度目标分割有明显的缺失,通过对比可以看出使用FReLU 激活函数进行精度补偿后的Deeplab V3+网络整体对小尺度目标具有更好的语义捕捉能力。在第二行测试图像中,Deeplab V3+网络预测结果存在分割目标边界模糊和目标类内误识别问题,通过对比可以看出使用FReLU 激活函数进行精度补偿后的Deeplab V3+网络预测结果边界准确率更高,能够有效地减少类内误识别问题。
表3 VOC 2012数据集IoU值结果Table 3 Results of IOU values in VOC 2012 dataset
2.2.3 Cityscapes数据集实验结果
将本文阶梯型网络与基线网络设置相同参数,在Cityscapes数据集进行测试,改进前后各类别MIoU值如表4 所示,通过对比可知相较于原始的Deeplab V3+网络模型改进后的网络整体MIoU值提升0.013,且对各类别MIoU值均有不同程度提升。
表4 Cityscapes数据集IoU值实验对比Table 4 Experimental comparison of IOU values in Cityscapes dataset experiments
改进后的算法在Cityscapes数据集上的可视化效果如图8 所示,对比红色标注区域,从第一行预测结果可以看出,Deeplab V3+网络对图像中小尺度黄色交通标志预测准确率较低,同时对汽车的边界预测较为粗糙并且存在较大错误预测,而本文提出的算法通过提取更丰富的空间上下文信息,对图像中小尺度黄色交通标志预测能力更强,并对物体边界进行优化,优化后的汽车边界预测更为精细,与真实标签图相似度更高;从第二行预测结果中可以看出,Deeplab V3+网络由于天空场景和墙体部分交叉出现,将图像中大量天空场景错误的识别为墙体部分,而本文使用的算法通过对各个类别进行精确边界划分,能够更准确地识别天空和墙体的边界轮廓,避免相邻类别之间的分类混淆问题。从第三行预测结果可以看出,Deeplab V3+网络未能预测出左侧地形类别,将卡车类别误识别为汽车类别,并将右侧的地形区域误识别为人行道,而本文提出的算法,纠正了卡车和右侧地形误识别问题,并有效预测Deeplab V3+未识别地形,使预测结果更加精细。通过上述实验结果验证了本文算法对原有Deeplab V3+网络在小尺度预测、类内误识别和边界模糊方面的提升。
同时,在相同实验设备和超参数设置下,在Cityscapes数据集上,将本文算法与经典算法(UNet、SegNet、PspNet)和最新相关研究算法(UperNet、HRNet)进行对比,对比实验结果如表5 所示,可以看出,本文算法在building、wall等11个不同类别中具有更好的分割结果。
本文在Deeplab V3+网络的基础下构建阶梯型网络框架,保留原有网络中膨胀卷积和编-解码器结构,通过对空间池化金字塔模块进行改进,将原有非线性激活函数ReLU替换为效果更好的视觉激活函数FReLU,以获得精度补偿,在解码器后新增优化分支对生成的粗略预测图进行细化。在Cityscapes公开数据集上进行对比实验,实验结果表明,经过改进后的算法各类别平均交并比均获得不同程度提升,能够更好地捕获小尺度目标和分割物体边界区域。