基于加权损失函数的多尺度对抗网络图像语义分割算法

2020-01-14 06:03张宏钊吕启深党晓婧李炎裕代德宇
计算机应用与软件 2020年1期
关键词:语义卷积损失

张宏钊 吕启深 党晓婧 李炎裕 代德宇

1(深圳供电局有限公司 广东 深圳 518000)2(深圳市康拓普信息技术有限公司 广东 深圳 518034)

0 引 言

语义分割是计算机视觉领域具有挑战性的研究课题之一,其目的是为图像中的每个像素分配标签,将一个整体场景分解成几个单独的实体,有助于推理目标的不同行为,解决更高级别的视觉问题,包括自动驾驶、增强现实等[1]。随着人工智能技术的发展,语义分割已经引起越来越多的学者关注,并提出了一系列行之有效的解决方案。然而,语义分割模型在目标定位与分割方面获得精确分割仍然非常具有挑战性,主要归咎于复杂背景、多视场变化、非刚性运动、姿态变化等[2]。

近年来,以卷积神经网络(CNN)为代表的深度学习算法在图像语义分割方面已经取得了显著的性能改进,但这些方法总是遭受基准模板与分割结果之间的空间不一致,部分归因于标签变量的独立预测过程产生的随机误差[3]。因此,学者们提出了许多后处理方法以增强预测标签图中的空间一致性,细化分段标签掩码并消除明显的边界错误。Chen等[4]在深度语义像素分类结果的基础上增加了全连接条件随机场,增强了分割结果的空间一致性,且边界更加精细。DeepLab方法在深度网络的最后一层引入全连接条件随机场,合并不同尺度下的响应结果,增强了目标定位的性能,该方法可广泛用于高级深度特征与低层次局部特征的信息组合[5]。尽管在使用后处理方法方面取得了这些进步,但DeepLab模型仍局限于使用点对条件随机场模型来融合特征信息与先验信息。文献[6]提出了一种生成对抗训练方法来训练分割模型,该方法的平均性能较好,但对某些特定场景下的语义分割性能一般。

由于目标图的多尺度特性与特征图的低分辨性,深度网络主要采用最大池化和降采样方法获得特征不变性,这就导致定位精度存在损失[7]。一般来说,深度网络都会在卷积层之后接上若干个全连接层,其目的是将卷积层产生的特征图映射成固定长度的特征向量[8]。由于网络输出结果是一个基于概率的特征量,网络适合于像素级的二分类和回归任务[9]。然而对于语义多目标分割模型,全连接卷积网络可能输入任意尺寸的图像,通过逐层卷积压缩,然后利用反卷积层对最终特征图进行上采样,使它恢复到输入图像相同的尺寸,这就使得最终显著图存在偏差。一般的解决方案是在保留原始空间信息的同时,对每个像素都产生了一个预测概率,最终实现逐像素分类,但这增加了网络的空间与时间复杂度[10]。文献[11]提出了一种新颖的特征变换网络,将卷积网络和反卷积网络连接起来增强共享特征的表征能力,以便从低分辨率特征图中恢复空间信息。文献[12]提出的DeepLab V3模型,通过引入空洞卷积思想,在保证卷积特征分辨率不变的基础上实现感受野的指数级扩大,同时在级联模块和空间金字塔池化的框架下,提取多尺度的语义信息,提高分割效果[12]。然而,DeepLab V3网络在最后一层中移除全连接模块以获得准确的局部空间一致性信息,但同时也消除全局信息,导致分割结果存在不完整的情况。

由于经典的空间金字塔尺度结构可以处理任意大小和尺度的图片,不仅提升了分类的准确率,还提高了检测效率。为了获取更多尺度的不规则目标信息,不同级别的特征可通过多孔空间金字塔池化(ASPP)进行级联,通过融合局部与全局的语义特征,增强图像理解能力。本文在DeepLab V3基本框架的基础上,引入Pix2pix网络作为生成对抗网络模型,实现基于深度特征和多尺度语义特征的分割架构,该架构采用一个生成器、两个鉴别器以及一个语义解析网络对来校正语义分割结果,减小空间结构不一致性。为了增加模型的泛化能力与训练精度,本文提出将传统的多分类的交叉熵损失函数与生成器输出的内容损失函数和鉴别器输出的对抗损失函数相结合,构建加权损失函数,并采用WGAN算法来优化语义分割模型。定性定量实验结果表明,本文所提出的语义分割算法的性能超过现有的分割算法,在保证语义分割空间一致性的同时提高分割效率。

1 相关技术

语义分割是计算机视觉领域非常活跃的研究方向,并且已经提出了许多优秀的算法。在深度网络到来之前,语义分割方法主要依靠人工设计的特征来独立地对像素进行分类。具体而言,将图像分块的特征送入精心设计的分类器,如SVM、随机森林或Boosting等,预测图像块中心像素的类别。随着卷积神经网络在图像分类中的快速发展,采用深度模型提取的深层特征进行语义分割可提高分割的精度。近年来,以卷积神经网络为代表的深度学习模型在语义分割问题中展示出具大的潜力,极大地推动着该领域的发展。FCN[13]是基于深度学习语义分割的开山之作,该方法在不仅实现端对端训练,还有效地解决了对任意尺寸的输入产生像素级别输出的语义预测问题。随后,各类国际竞赛、顶级会议中提出了许多优异的语义分割算法。牛津大学提出的GoogLeNet[14]在ILSVRC-2014竞赛上以93.3%准确率取得冠军,该网络采取了更深的网络结构,并引入新颖的Inception模块,提高分类精度;微软研究院提出的Resnet[15]在ILS VRC-2015竞赛中以96.4%的准确率获得冠军;与GoogLeNet相比,ResNet将网络的深度扩展到152层,并构造残差模块与捷径连接,解决梯度消失现象;考虑到像素间的局部关联,Zheng等[16]提出了CRFasRNN模型,通过CRF来调优FCN网络语义分割性能;SharpMask网络[18]引入Refinement模块,该网络不仅具有传统自下而上的CNN网络,还设计了自上而下的通道;ParseNet网络[19]则是在融合前增加上下文模块,其核心思想是利用反池化操作将全局特征图转化为与局部特征图相同的尺寸,合并后输入下一层或用于学习分类器;PSPNet采用金字塔池化模块聚合不同子区域之间的不同尺度信息,实现多尺度特征融合[20];Visin等[21]基于ReNet分类网络,提出了面向语义分割的ReSeg模型;DeepLab是结合了深度卷积神经网络(DCNNs)和概率图模型(DenseCRFs)的方法[5];DeepLab V2是相对于DeepLab V1基础上的优化,仍存在分辨率低、尺度等问题[22];DeepLab V3网络通过引入空洞卷积捕获多尺度信息。

以上语义分割算法模型中,DeepLab V3网络是目前较好的语义分割算法,其模型架构如图1所示,该结构的深度模块一般基于VGG-16或ResNet-1架构进行改进。该模型将DeepLab中所有的全连接层替换为卷积层,并且通过空洞卷积将特征图的分辨率降低到原图的1/8;然后通过双线性插值算法,将特征图放大8倍,恢复到原图尺寸。

图1 基于ASSP的DeepLab V3模型架构

最后,将最终特征图输入全连接条件随机场进行细化,进一步改善分割结果。可以看出,在级联模块和空间金字塔的框架下,空洞卷积模块增大滤波器的感受野去融合多尺度的语义信息,网络同时也引入不同学习率的卷积模块,增强特征表征能力。

2 语义框架设计

DeepLab V3网络在最后一层中移除全连接模块以获得局部空间一致性信息,但同时也消除全局信息,导致分割结果存在不完整的情况。因此,本文在DeepLab V3基本框架的基础上,引入Pix2pix网络作为生成对抗网络模型,实现结合深度特征和多尺度语义特征的分割架构,其基本框架如图2所示。本文提出的模型由三个模块组成:(1) 基本语义分割模型,主要由DeepLab V3网络构建;(2)生成器,用于从样本图中重建生成图;(3)鉴别器,用于识别生成图和真实图。生成器和鉴别器构成了生成对抗网络(GAN),该模型首先使用基准掩模和原始图像进行预训练。在预训练阶段,利用基准掩模作为输入,驱动生成器以产生难以与真实图像区分的重建图像。然后,采用预训练的发生器和鉴别器来表征训练过程中损失函数的变化。因此,本文提出的语义分割框架采用WGAN作为损失函数,以对抗方式优化基本语义分割网络。

图2 本文提出的深度对抗网络

2.1 改进的生成对抗网络模型

生成对抗网络(GAN)主要包括了两个模块:生成器与鉴别器。生成器主要用来学习真实图像分布从而让自身生成的图像更加真实,以骗过判别器;鉴别器则对输入的图片进行真假判别。整个学习过程就是生成器生成更加真实的图像,而鉴别器准确地识别出图像的真假,这个过程相当于二人博弈,通过不断地对抗,最终达到了一个动态均衡。也就是说,生成器得到接近于真实图像分布,而判别器无法识别出真假图像。GAN的这种训练过程可以定义如下:

(1)

生成器同时采用预测层pseg的输出和原始图像I作为输入,生成与原始图像类似的图像。受Pix2pix网络启发,本文选择PatchGAN作为马尔科夫判别器,生成器由4个卷积层与4个反卷积层组成,并在其后增加一个dropout层防止网络过拟合。训练时只需要按一定的概率p=0.5来对权值层的参数进行随机采样,将相应子网络作为当前更新的目标网络;判别器网络由4个卷积层组成,每个层后面都有一个ReLU方法作为激活函数。

如上所述,生成器被构造为一个具有卷积和反卷积层的编解码网络,通过一系列编解码逐步缩小采样尺度,直到达到瓶颈层,然后此过程反向重构到原始层。为了避免编解码过程信息丢失,在第i层和第n-i层之间增加了跨连接,其中n表示生成器中总层数。每个跨连接只是将第i层的输出特征与第n-i层的特征级联起来。因此,不同级别的特征通过多孔空间金字塔池化(ASPP)进行级联,将局部与全局的语义特征融合,增强图像理解能力。

2.2 分割模型

众所周知,语义分割模型的目标是生成置信度图pseg∈Rc×w×h,其中c是数据集类编号,w、h分别是预测显著图的宽度和高度。然后,对预测结果执行最大化操作,并通过全连接网络构建深度模型,从而可以处理不同尺寸的图像。

因此,本文选择了DeepLab V3作为基本的分割模型,其目的是生成置信图pseg,采用argmax运算得到最终的预测掩模,其中每个值表明了输入像素的标签响应。

2.3 加权混合损失函数

本文的语义分割框架采用了混合损失函数l,其主要由三部分组成:分割损失项ls、内容损失项lc和对抗损失项la。混合损失函数l可以表示为:

l=ls+λ1lc+λ2la

(2)

式中:λ1与λ2分别是两个经验权值参数。本文采用多类交叉熵损失来评估语义分割性能,其损失项定义为:

(3)

式中:Pxi由分割模型计算,表示将标签i分配给像素x的概率;Yxi表示基准模板标签的概率;M、N、C分别表示样本数量,像素总数以及数据集类别号。

内容损失函数用于计算由生成器网络生成的重建图像IR的质量。因此,逐像素计算其损失函数如下:

lc=Ll1(G)=ΕY,I~Pdata(Y,I),z~Pz(z)‖I-G(Y,z)‖1

(4)

对抗性损失项反映了由生成器重建的图像质量。本文采用了Wasserteins GAN网络的损失项,其等式如下:

la=-ΕY~Pdata(Y,I),Z~Pz(Z)D(G(Y,Z))

(5)

对抗网络的目标函数表示为:

LcG(G,D)=EY,z~Pdata(Y,z)(Y,z)[D(Y,z)]-

EY~Pdata(Y,z),I~Pz(I)[1-D(Y,G(Y,I))]

(6)

式中:G是最小化使对抗生成图最大化的损失项,即G*=argminGmaxDLcG(G,D)。实验结果表明,GAN目标损失函数与传统的l1损失函数共同作用与生成图有助于提升学习的精度。这表明在鉴别器的目标函数不变的情况下,发生器不仅需要欺骗鉴别器,还要绝对值误差损失函数意义接近真实基准值。因此,本文提出的算法的最终损失函数项可以表示为:

G*=argminGmaxDLcG(G,D)+λLl1(G)

(7)

如果没有输入信号z,网络仍然可以学习到从x到y的映射,但会产生不确定性输出,因此无法匹配除δ函数之外的任何分布。由生成器只是忽略噪声,因此该策略无法增强模型泛化能力。对于最终语义模型,其dropout层可视为噪声。尽管存在dropout噪声,但结果表明本文模型的输出中仅有微小的随机性,能够捕获条件分布的完整熵,实现准确的语义分割。

2.4 训练过程及其算法流程

(8)

式中:π表示生成器G的参数。判别器D分配的概率如下:

(9)

式中:Ii是原始图像,φ表示判别器D的参数。深度网络的学习过程就是通过损失函数迭代优化参数φ与π。初始化网络参数并进行前向传播以获得每次的损失值loss(lc,la)。

在每次迭代中,从训练集中选择一小部分图像进行学习,然后更新每个参数:

π←π+τ▽π(lc+la)

(10)

φ←φ+τ▽πla

(11)

式中:τ表示训练过程的学习率,一般设置为0.01。

(12)

式中:θ是分割模型的参数。语义分割步骤中,GAN模型的参数是固定的,不会更新。我们使用反向传播(BP)进行学习和随机梯度下降(SGD)以最小化损失函数来学习并优化参数θ。同时,本文采用前向传播来获得每次迭代的损失值loss(la;lc;ls)。参数θ的更新策略π与参数一致,其公式为:

θ←θ+τ▽θ(la+lc+ls)

(13)

根据以上理论分析及模型描述推导,整个语义分割过程概括为三个步骤,对抗训练、语义分割和参数优化与更新,算法步骤描述如下:

Step 1采用DeepLab V3模型对原始图像进行分割,获得分割损失函数;

Step2利用3.1节的模型作为生成器G,并采用式(1)对同时采用预测层的输出和原始图像作为输入,其训练过程是固定生成器G,利用标记样本训练鉴别器D,获得内容损失函数;

Step3利用PatchGAN作为马尔科夫判别器对步骤1的结果进行鉴别,获得对抗损失函数;

Step4利用鉴别器D的输出作为图像标记结果,然后利用式(2)提出的加权损失项训练鉴别器G;

Step5采用Adam算法对式(7)进行优化,获取最优的语义标记结果;

Step6按照式(13)对参数进行优化更新。

3 实 验

3.1 实验数据集

为了评估所提语义分割模型的有效性,本文选用了公共数据集PASCAL VOC2012与Cityscape进行训练与测试。Cityscape主要针对于城市交通驾驶环境,己经成为语义分割领域最权威的数据集之一,主要侧重于城市街道的语义理解,总共有19类前景目标和一个背景用于分割任务,其训练集共2 975张,验证集500张,都具有相应的类别标签。PASCAL VOC 2012共有11 530张图片,每张图片都有标注,标注的物体包括人、动物、交通工具、家具等20个类别。为了便于训练与测试,本文选用了2 150张图像作为训练样本,1 800张图像作为测试样本。

3.2 参数设置及评价准则

本文采用的图像经预处理调整成大小为320×240的图像进行训练。本文所选用的网络都是基于TensorFlow框架实现,其参数与文献[20]一致。损失函数中λ1、λ2分别设置为0.15与0.1;学习速率初始化设置为0.15,然后在训练到第50个Epoch时,学习速率改为0.015;若100个Epoch后,本文提出的损失函数没有改变则停止训练。受限于GPU内存,批大小设置为8。权重衰减为0.000 5,Dropout层的概率设置为0.5。对于发生器的训练,采用具有各向同性高斯权重的Adam优化算法。本文实验环境为:Xeon(至强)E7-8890 v2 @ 2.80 GHz (X4),128 GB(DDR3 1 600 MHz),Nvidia GeForce GTX 1 080 Ti,Ubuntul6.04,64位操作系统。

为了评价图像语义分割结果的精度,本文采用像素精度(Pixel Accuracy, PA)、平均类别精度(Mean Accuracy, MA)和平均IoU (Mean Intersection over Union, MIoU)三个指标作为评价标准,其计算公式如下所示:

(14)

(15)

(16)

式中:nij是i类样本被正确分类为第j类的像素数,ti是类别为i数据集类的数目。从IoU定义可以看出,这相当于两个区域重叠的部分除以两个区域的集合部分得出的结果。一般来说,评分值大于0.5就可以被认为正确检测并分割出目标。

3.3 定性定量结果分析

为了定性定量分析所提语义分割算法的性能,本文选择的对比算法分别是DeepLab V3[12]、DeconvNet[17]、以及SegNet[5]。

(1) Cityscape数据集定性定量结果分析。表1展示了Cityscape数据集不同语义分割算法对不同测试子集的检测结果,其中黑体与斜体分别是最优与次优的结果。可以看出,本文提出的算法是所有算法是最优的,主要归咎于本文提出的语义分割模型采用Pix2pix网络作为生成对抗网络模型,并融合了深度特征和多尺度语义特征的分割架构,同时该模型引入加权损失函数,增强网络的学习能力与目标的表征能力。Cityscape数据集中我们选用了最复杂的路况图像,其检测结果中本文算法也比DeepLab V3好,主要还是本文模型具有较高的空间一致性,提高了定量指标精度。

表1 Cityscape数据集下语义分割指标结果 %

图3分别是不同模型对Cityscape数据集的语义分割结果,其中:(a)是原始待处理的图像;(b)是SegNet模型的语义分割的结果;(c)是DeconvNet模型的语义分割的结果;(d)是DeepLab V3模型的语义分割的结果;(e)是本文所提模型的语义分割的结果;(f)是基准的标注结果。可以看出,这些深度学习架构都取得了非常好的语义分割结果,但也存在各自的问题。图3是路况图像,两侧存在大量车辆、行人与建筑,其对比结果中DeepLab V3与本文模型类似,都能稳定的分割出道路建筑等目标,但DeepLab V3的像素精度比本文模型较低,主要还是空间不一致性降低分割精度。SegNet与DeepLab V3的结果比较粗糙,尤其是道路沿存在大量锯齿。这主要是由于SegNet通过卷积层和一些跳跃连接产生语义概率图,然后逐渐细化最终提高语义分割的精度;但是SegNet直接使用Softmax损失函数对结果进行判断,不论是在边界的处理上,还是在细小物体的处理上都比较粗糙,空间一致性较差。DeconvNet的结构与SegNet非常类似,但该网络在encoder和decoder之间使用了全连接层作为中继;DeepLab V3可以调整滤波器视野、控制卷积神经网络计算的特征响应分辨率的强大工具,该网络向ASPP中添加了BN层。不同采样率的空洞卷积可以有效地捕获多尺度信息,但仿真实验结果表明,该网络随着采样率的增加,滤波器的有效权重逐渐变小,这会导致性能的下降。

图3 Cityscape数据集中不同分割模型的结果对比

(2) PASCAL VOC2012数据集定性定量结果分析。表2展示了PASCAL VOC2012数据集不同语义分割算法对不同测试子集的检测结果,其中黑体与斜体分别是最优与次优的结果。可以看出,本文提出的算法是所有算法中最优的。基于加权损失函数的深度对抗语义分割算法的像素精度是92.3%。比DeepLab V3提高的2.13%,充分说明了本文提出的加权损失函数的优势。该策略不仅考虑目标像素间的差异,还引入了对抗差异,提升了分割目标的空间一致性,有助于推升精度。与DeconvNet相比,在PA、MA和MIoU三个评价标准中都有一定程度的提升,分别为:7.13%,5.02%和1.34%。实验结果表明,所提方法超越了大多数已经存在的方法,具有可行性。

表2 PASCAL VOC2012数据集下语义分割结果 %

图4是PASCAL 2012数据集中前景比较复杂,且目标与背景存在多处交叉的区域,主要验证本文算法的空间一致性。实验选用的图像场景有天空、游轮、人、车辆等目标,当然对于游轮中间面积较小的字符,所有的模型均没有给出较好的分割结果。SegNet没有将字符分割出来,且轮廓不够精确;DeepLab V3结果则是人物轮廓太过模糊,形成多个人影。从实验结果可以看出,本文模型能够学习出图像中隐藏结构特征,以便提高分割模型的性能,而SegNet模型则把单一的目标分成多部分,且边界不规整;DeepLab V3模型与本文结果比较一致,主要差异在于细小细节上存在错分的情况。

图4 PASCAL 2012数据集中不同分割模型的结果对比

(3) 模型训练收敛对比分析。上文所有算法模型的训练性能如图5所示,主要表征整个算法的收敛性能。可以看出,DeepLab V3与对抗网络的结合不仅可以获得更高的分割指标,其收敛性能也更稳定。而DeconvNet与SegNet的性能要差一些,这足以说明经过本文算法框架训练的神经网络有了更好的收敛效果。

图5 不同算法下训练收敛情况对比

本文提出的语义分割模型,首先使用残差网络预训练的参数初始化共享卷积层,使用xavier初始化GAN检测和语义分割模块,模型训练前期,采用了交替训练的策略:先输入目标图片,完成目标GAN模块的前向传播和反向传播参数更新;再输入语义分割图片,在上一步目标生成器模块的更新参数的基础上,完成语义分割的前向传播和反向传播参数更新,交替进行两个模块的训练,直到两个模块都趋于收敛。一旦交替训练完成后,将两个模块的损失函数按比例加权求和得到总损失函数,对总损失函数采用Adam算法进行优化,对两个损失函数设置合适的权值,最终融合网络模型可以只用一次计算获得语义分割的结果。

4 结 语

本文针对现有的语义分割算法存在分割结果空间不一致的问题,提出了一种结合加权损失函数的多尺度对抗网络语义分割算法,该算法在DeepLab V3基本框架的基础上,引入Pix2pix网络作为生成对抗网络模型,实现多尺度对抗网络语义分割。同时,为增加模型的泛化能力与训练精度,提出将传统的多分类交叉熵损失函数与生成器输出的内容损失函数和鉴别器输出的对抗损失函数相结合,构建加权损失函数。大量定性定量实验结果表明,本文提出的深度网络架构可以稳定地提高语义分割模型的性能。未来将对算法进行优化并移植,希望借助中国科学院信息工程研究所研制的无人驾驶平台进行环境感知测试。

猜你喜欢
语义卷积损失
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
真实场景水下语义分割方法及数据集
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
两败俱伤
“吃+NP”的语义生成机制研究
损失
汉语依凭介词的语义范畴