面向图像语义分割的生成对抗网络模型*
2019-08-14张嘉祺赵晓丽董晓亚
张嘉祺, 赵晓丽, 董晓亚, 张 翔
(上海工程技术大学 电子电气工程学院,上海 201620)
0 引 言
对图像语义分割就是将图像中目标物体和背景区分出来。它是计算机理解图像的基石,也是场景分类、三维重建,医疗图像[1]等许多视觉任务中最重要的一步。过去的技术是,对图像进行特征提取,之后在根据特征进行区域合并。其中研究投入最多的是特征提取,出现了大量的算法如梯度方向直方图(histogram of gradient,HOG),尺度不变特征变换(scale-invariant feature transform,SIFT)等,但是其处理过程复杂,且不适用于所有图像。随着神经网络算法的出现,图像语义分割算法演变成了为图像中的每个像素分配一个标签,从而使得端对端的训练成为可能。2015年,Long J等人[2]首次提出将全卷积神经网络模型运用到图像语义分割上,随后,出现了许多依赖于全卷积神经网络的图像语义分割模型。典型的语义分割网络结构通常包含一系列的池化步骤。该操作虽然可以增加视域野,但也导致了经过几个步骤之后输出的图片分辨率迅速降低,从而造成粗糙的分割结果。为了解决这个问题,Chen L C等人[3]提出了空洞卷积的特殊卷积方法,该方法可以在不降低分辨率的情况下增加感受野,但输出的语义分割图的像素之间有时候依然会不连续,因而语义分割图的模型仍然不是很精确。
针对语义分割的不连续问题,Koltun V和Chen L C等人[4]提出将条件随机场(conditional random field,CRF)作为分割的后处理方法,来增强输出标签像素之间的连续性,该方法已经被证明在实验中可以有效地改善输出语义分割图的精细程度。但是,周围的像素点对其需要判断的像素点有巨大影响,且大量的参数,需要大量的计算资源。
为了解决上述存在的问题,本文提出将生成对抗网络(generative adversarial network,GAN)[5]应用到图像语义分割中以提高语义分割的质量。尽管生成对抗网络已经应用到图像生成及超分辨中[6],且取得了不错的效果,但将GAN用于图像语义分割的研究还处于起步阶段。本文提出一个用于图像语义分割的生成式对抗网络模型,该模型包括生成网络和判别网络两部分,生成网络用于生成语义分割图,判别网络通过学习来区分样本是否属于来自于数据集。通过生成网络和判别网络的对抗训练,督促生成网络的生成数据更进一步接近于Ground Truth,从而达到优化语义分割的目的。
1 相关工作
1.1 对抗网络
Goodfellow I J等人[6]在2014年提出使用对抗的方法来学习网络模型。GANs普通的模型结构是从一个随机噪声z,让其通过生成网络g,使得生成样本g(z)尽可能接近训练样本x。判别网络通过学习最大化的区分真实的样本x和生成样本g(z)。
Radford 等人在此基础上提出了新的网络结构,他们在生成网络中加入了反卷积,使得这个模型能够训练图片来合成真实的图片。GANs也被运用在其他地方,例如图片标签预测,人脸生成,图片描述[7]等等。
1.2 语义分割
随着全卷积神经网络首次将深度学习成功运用于图像语义分割[2],现在效果最好的图像语义分割方法大部分都是基于深度学习[7,8],这些方法的共同点是:1)使用上采样代替最后几层全连接层,以生成图像;2)使用CRF进行后处理,使得分割效果具有连续性;3)使用空洞卷积在不降低分辨率的情况下,增加感受野。
目前语义分割方面的工作,主要集中在以下两个方向1)使用越来越深的全卷积神经网络模型。从16层的VGG—16模型到101层的ResNet—101再到152层的ResNet—152。网络模型结构越深,越能学到抽象的特征,分割的精度也迅速提升。但是计算量也是成倍增加。2)优化CRF,这些工作包括使用成对的全连接CRF作为后处理步骤[3],把CRF嵌入进网络,从而能够端对端的训练,或者在CRF中加入边缘或者目标检测的信息。
但是,上述这些工作仍然都是基于像素级别的预测,会出现一些样本以很高的置信度分为错误类别的问题。本文提出将对抗网络运用于图像语义分割。相比之前的那些方法,本文提出的方法主要优势在于:1)对抗网络包含对抗思想,生成器与判别器不断优化,各自提高自己的生成能力和判别能力,最终会达到两者之间的一个纳什均衡。使得以很高置信度的错误分类能尽可能区分,从而能达到优化语义分割图的目的。2)相比于使用CRF做后处理的方法,本文所提方法只在训练过程中加入对抗训练,在生成过程中没有增加大量的计算。
2 基于生成对抗学习的图像语义分割
本文提出的面向图像语义分割的端对端生成对抗网络模型,包括生成网络和对抗网络两部分。生成网络用来从原始图像生成分割图像,随后输入进判别网络,督促生成网络生成的分割图像更加接近Ground Truth,提高图像分割的效果,其详细的架构图如图1所示。
2.1 生成网络
在生成网络模型设计过程中,最重要的是设计模型的网络结构及确定所使用的损失函数。
图1 提出的生成对抗网络详细架构图
2.1.1 生成网络结构
现在很多工作表明网络模型结构越深,越能提升分割效果,但同时网络模型结构也越复杂,从而导致训练的困难。基于此,本文的生成网络模型选择适中的5个模块,每个模块含有2层卷积,每层卷积都选择3×3的卷积核。为得到更多的特征信息,本文设计的生成网络选择64个特征图;为防止网络过深而导致过拟合,本文加入批量正则化层,从而有效训练这些网络,随后加入整流线性单元(RELU)激活层;为解决卷积之后图像分辨率不够问题,本文将第三和第四模块提取的浅层信息作为辅助信息与第五个模块的深层信息进行特征融合送入反卷积层, 通过双线性上采样得到与原图大小相同的语义分割图,其结构图见图1的生成网络。
2.1.2 生成网络的损失函数
为了尽可能衡量生成的语义分割图与真实语义分割图之间的差异,本文使用的损失函数如公式(1)所示。与其他一些损失函数相比,优势在于对于以低置信度分类正确的像素点,依然有误差,反向传播时以比较大的导数传播,从而可以优化网络参数,使得以比较高的置信度分类正确
2.2 判别网络
2.2.1 判别网络结构
本文在Goodfellow I J等人提出的对抗网络模型[6]基础上改进了对抗网络模型,具体见图1的对抗网络结构。此结构设计了六个模块,每个模块含有1层卷积,卷积核的大小为3×3,为获得更多的特征信息,本文设计的对抗网络使用了较多的特征图的数量,每个模块的特征图数量分别为64,128,128,256,256,512,每个模块使用漏整流线性单元(LeakyReLu)做激活函数(a = 0.2)。在512个特征图后面是两个全连接层,分别设定1 024和1个神经网络单元。最后使用Sigmoid作为激活函数,输出为[0,1]区间,代表这张图来自于真实语义分割图的置信度。
2.2.2 对抗网络的损失函数
原对抗网络模型的损失函数如式(2)所示
式中D为判别网络,θD,θG分别为判别网络和生成网络的参数。G(xn)为进过生成网络的语义分割图,yn为Ground Truth。
针对本文提出的对抗网络结构,将式(2)等价转换成式(3),并将其作为判别网络的损失函数
2.3 对抗训练
对抗训练的损失函数是生成网络和判别网络损失函数的不同比例叠加,并通过设置超参来表示两部分不同的权重,其公式如式(4)所示。为找到最优的,本文对不同的λ进行了测试,结果如表1所示,最后本文将λ的值选择为0.01
表1 不同参数对Loss值影响
3 实验结果
本文的网络模型基于TensorFlow深度学习框架,使用Python语言编写。所有的训练和测试在Pascal VOC 2012数据集上进行,这个数据集包含了20类前景物体和1类背景,总共分为21类。原始的PASCAL VOC 2012数据集语义分割部分有1 464张训练图片,1 449张测试图片。本文使用了其扩充数据集,用10 582张图像作为训练集,2 031张图像作为测试集。本文选择平均交叉重叠率(mean IOU)和平均准确率(mean accuracy)作为语义分割图的评价指标。
3.1 训练过程
本文使用NVIDIA Tesla K40显卡进行训练,CPU为Intel Xeon E5。每次训练16张图片,总共迭代1 000次。训练之前,先将图片进行预处理,变成224×224大小的图片,然后对3个通道同时除以255,使得每个数据在[-1,1]之间,从而不会造成某个通道值过大而产生偏差。本文先单独训练生成网络得到预训练的参数,随后将图片经过生成网络和判别网络同时进行对抗训练,对生成网络做进一步的优化。本文使用Adam算法进行梯度下降,并设置β为0.9。为了加快训练速度,学习率初始设置为10-2,每经过200轮训练学习率缩小10倍并最后定在10-4。整个训练过程如图2所示。
图2 面向语义分割的对抗生成网络训练流程图
3.2 测试结果
为对图像语义分割结果进行定量和定性分析。本文在测试集上测试生成对抗网络模型,并与最近的语义分割方法FCN-8s[2]及DeepLab[3]做了对比,图3展示了5张图像定量分割结果。
图3 不同方法图像语义分割效果图
第一列表示原图,第二、三列分别表示FCN-8s和DeepLab的分割结果,第四列是本文所提方法的结果,第五列是Ground Truth。从第一行图中可以看出,相比于这两个方法,本文提出的方法不会因为复杂的背景而过度分割;第二,第三行图说明了本文的方法在细节上也优于其余两种方法;在第四行图中,没有出现其他两种方法常见的不连续问题;第五行图中,本文的方法没有出现漏分割和错误分割问题。综上所述,从定量结果上来看,本文提出的方法要优于FCN-8s 和 DeepLab。分割结果的定性分析如表2和表3所示,PASCAL VOC 数据集一共有21类,本文先测试了每类的准确率,如表2所示,随后测试了平均交叉重叠率(mean IOU)和平均准确率(mean ACC)如表3所示。
表2 不同类图像语义分割的准确率
表3 图像语义分割的平均准确率(Mean ACC), 平均交叉准确率(Mean IOU),运行时间
从每类的分割准确率上来看,除了自行车这一类略差于DeepLab以外,每一类的准确率都要好于FCN-8s和DeepLab。相比于FCN-8s和DeepLab,所提出的方法在平均准确率上(Mean ACC)分别提高了10.5 %,2.8 %,在平均交叉重叠率上分别高了6.7 %,3.6 %。本文测试了这三个算法在运行一张图片时所用的时间,从表3的结果可以看出:本文所提的算法也是略快于其余两个算法。综上所述,本文的方法优于FCN-8s 和 DeepLab。
4 结束语
为了改善图像语义分割的连续性和分割精度问题,本文提出了基于对抗训练的端对端图像语义分割网络架构。该方法首先将图片输入生成网络,生成语义分割图,随后和Ground Truth 一起输入判别网络,不断进行对抗训练,督促生成网络使得生成的语义分割图越来越接近于Ground Truth。本文所提方法和FCN-8s,DeepLab等近几年的语义分割方法在PASCAL VOC上进行比较,通过定量和定性结果分析,证明了本文的方法可以有效提高分割效果。未来会在生成网络上与优化语义分割结果上做进一步分析。