基于EBGAN的图像风格化技术

2020-04-23 11:18刘惠义
计算机与现代化 2020年4期
关键词:鉴别器编码器损失

陶 颖,刘惠义

(河海大学计算机与信息学院,江苏 南京 211100)

0 引 言

所谓图像风格化,就是将一个图像域中的元素迁移至另一个域中,完成从输入图像到输出图像的映射[1],生成一张风格已变而原图片内容不变的图像。这是图像处理的一个重要方向,涉及美学、计算机图形学和人工智能等多学科技术,在艺术鉴赏、动画特效制作、图像去雾等工业场景上有重要的应用价值。现有的图形学建模和深度学习方向上均有多种方法可顺利完成图像的域迁移,但是大多数模型较为复杂,并且生成的图像分辨率较低。

传统的图像风格化一般是通过物理建模来实现纹理绘制[2],而使用深度学习方法的图像风格迁移研究,最经典的就是Gatys等人[3]所提出的基于卷积神经网络建立的模型,该模型通过CNN网络从输入图像中分别提取内容特征和风格特征,再通过纹理建模来融合2种特征,重建输入图像。由于该模型网络结构为“串”状,低层信息在后续传输中会部分丢失,导致生成的图像内容特征还原较差。为了解决这一问题,Li等人[4]提出了基于MRF的快速PSPM风格化算法,该方法基于patch匹配思想,但是生成结果并不理想。近年来,生成对抗网络(Generative Adversarial Networks, GAN)[5]提出后被广泛地应用到图像处理等领域,与其他的生成模型相比,GAN可以更直观地模仿真实数据的分布状况,生成符合目标分布的样本。基于此网络模型,Isola等人[6]提出了Pix2Pix网络模型,将内容特征当作条件输入鉴别器,控制输出样本的精确度,但是Chen等人[7]认为,该模型具有训练不稳定、难优化等问题,很难生成高分辨率图像。为了解决以上问题,chen等人使用了基于感知损失的直接回归目标,并产生了可以合成2048×1024图像的第一个模型,但是此网络模型在多样性上没有突破。对此,Zhu等人[8]提出了多尺度鉴别器的方法,在鉴别阶段,采用相同结构、尺度不同的3个鉴别器,用以鉴别不同分辨率的图像,在多样性方面,通过用户给出特征编码,作为加入生成器的条件,控制生成图片具有不同特征,由于条件权重不易控制,生成的图像在真实度上稍有欠缺。

为了解决图像风格化后生成的图像多样性较差的问题,本文将能量思想[9]引入鉴别器网络中,在鉴别器的训练过程中加入正交控制,保证模型不会生成集中在一个或几个模式中的样本,使得该网络模型能有效地实现图像域元素迁移,并生成多样性更好的图像。此外,在生成的图像分辨率方面,使用U-Net模型,加入跳跃连接实现特征共享,提高其真实度和清晰度。

1 网络图像风格化过程

生成器采用基于U-Net[10]变体的网络,旨在最大程度保留低层特征。另一方面,为了区分真实图像和生成图像,鉴别器需要有一个大的接收区域,这无疑需要相当大的网络容量,导致网络结构过于复杂。为了提高鉴别器结构的灵活性以及生成多样化的图像,在鉴别器中加入能量函数思想,设计鉴别器为自编码器(Autoencoder)[11]的变体,计算自编码器的输入与输出之间的误差,将此误差作为能量函数的函数值对输入图像进行鉴别。

1.1 基于U-Net的生成器结构

基于U-Net网络的生成器网络实现了下采样与上采样2个过程。为了完成内容信息无差别传输,在生成器网络的编码器与解码器之间加入跳跃连接[12],编码器低层所捕捉到的特征可通过这个高速通道传输到解码器网络的更高层,这一连接为低层特征提供了一个更快的传输通道,减少低层特征信息在U-Net传输中造成的丢失,能够最大可能地保持图像内容。

生成器网络的执行流程为:将样本输入生成器网络中,编码器提取输入样本的内容特征[13];随后将编码后的输出作为解码器的输入样本,解码器接收到编码器输入的样本后对其进行解码,这一过程即对图像内容进行颜色填充与纹理绘制。生成器的整体结构如图1所示,图中Encode代表编码过程,实现下采样工作;Decode代表解码过程,实现上采样工作。通过跳跃连接将编码器的第i层连接到解码器的第n-i层,共享特征。

图1 生成器示意图

生成器接收的图像大小为256×256像素,色彩通道为RGB通道。除了第一层网络不使用批量规范化(Batch Normalization, BN)[14]处理,其他网络层均进行BN处理。此外,编码器中选择Leaky_ReLU作为激活函数;解码器中均使用ReLU激活函数。

1.2 基于能量函数变体的鉴别器

物理学中,由于能量越小越稳定,所以万物都是朝着能量减小的方向发展。这一思想与神经网络训练中梯度的变化方向是一致的。对于训练样本来说,不同的样本具有不同的能量,而训练中,尤其是聚类训练中,期待把能量相似的归为一类,所以可以设计一种能量函数,作为描述样本所处状态的测量方式。

将鉴别器视为一个能量函数[15],训练鉴别器将低能量赋予目标数据区域,对于其他区域赋予较高的能量。鉴别器接收2种输入,分别是真实图像与生成图像。与概率鉴别器相似的是,分别对这2种输入设计不同的损失函数,以便于鉴别器能够更好地获得梯度收敛。当输入目标图像时,鉴别器损失函数为D(x);当输入生成图像时,鉴别器的损失函数为max(0,[m-D(G(z))]),其中,G(z)为符合一定分布的噪声z输入生成器后的输出图像,x为符合目标分布的图像,D(x)为符合目标分布的样本输入鉴别器后的误差值,m即margin为正的边界值,代表伪样本的能量值不能超过的范围。生成器和鉴别器的对抗损失函数分别见式(1)、式(2),其中,LG为生成器的对抗损失函数,LD为鉴别器的对抗损失函数。因为鉴别器需保证有足够的鉴别能力,所以既要将真实样本的能量推低,也要将生成样本能量推高,但是伪图片的能量不能无限高,否则鉴别器将会懈怠推低真实图片能量值的工作,所以在损失函数中加入边界值(margin)[16]进行控制,使得损失函数顺利地按照2个要求进行有方向性的减小。最小化LG相当于最大化LD的第二项,训练2个损失函数具有相同但是非0的梯度时,此时x的概率密度分布等于G(z)的概率密度分布,系统达到纳什均衡[17],将生成符合目标分布的图像。

LD(x,z)=D(x)+max(0,[m-D(G(z))])

(1)

LG(z)=D(G(z))

(2)

本文中的能量函数是基于Autoencoder改编而成的,在整体地生成对抗网络训练之前,先使用真实图片对Autoencoder进行预训练,使得真实图像的重构图像与原图之间误差较小。预训练后,鉴别器拥有了一定的鉴别力,此时输入真实分布的图像时,重构后的图像与原图像非常相似;在获得虚假图像的输入时,重构图像会与原图误差较大。计算原始输入图和重构图之间的误差值[18],在此处使用L2范数[19]计算,并将此误差值作为一种判断标准,称之为能量。由于最初的时候,真实图像的重构误差较小,即能量较小;虚假图像的重构误差较大,即能量较大,所以在训练中,需不断缩小虚假图像的重构误差,当差值越低代表输入图像越来越符合真实图像分布,以此来达到迭代优化的目的。Autoencoder的网络结构如图2所示,拥有3层编码器、1层隐藏层、3层解码器,输入的图像先进行BN处理,将像素批量归一化至[-1,1]。

图2 Autoencoder网络结构示意图

由Autoencoder改编的鉴别器的目标函数见式(3),其中Enc为编码过程,Dec为解码过程,x为鉴别器的输入图像,Dec(Enc(x))为重构后的图像。

D(x)= ‖Dec(Enc(x))-x‖

(3)

鉴别器的工作示意图如图3所示,根据实验,选择鉴别器网络用于控制误差的边界值设置为20。

图3 鉴别器工作示意图

为了达到生成图像多样性的目的,在训练中加入正交控制,即对于同一分布中的不同样本向量进行正交计算,提高两两向量之间的正交性,扩大差距,以此设计损失函数,保证生成器生成尽可能多样化的数据样本。正交控制在编码器结构下的表现形式为:将同一batch中的图像xi和xj输入编码器,分别取得编码器输出层向量ei和ej进行正弦函数计算,期待结果迭代缩小,即表明两两向量之间差距较大,多样性较好,正交控制函数如式(4):

fPT(S)=∑i,j,i≠jcos(ei,ej)

(4)

2 网络模型训练与优化

为了使网络模型能够快速迭代优化,模型在训练时借鉴了Goodfellow等人[5]提出的一些方法。首先,在图像输入网络时就将图像像素值规范化在[-1,1]范围内,对于每个batch来说,降低其中图像的数量级,本文网络将其数量级设置为10张的mini-batch形式,并且确定每一个batch中必须保证只有真图片或者只有假图片。

训练时,首先将鉴别器训练到可以简单区分真假图片的水平,再交替训练生成器和鉴别器。由于训练过程中鉴别器的提升能力弱于生成器,这会导致网络模式崩溃[20]的问题,为了平衡生成器和鉴别器的损耗,防止出现上述问题,在训练时采用1:3的生成器与鉴别器更新的比率来训练整个网络。

在损失函数方面,为了生成器能够生成真实度与细节更好的图像,所以希望生成的图像与输入图像在内容上差距尽量小。出于此考虑,在生成器损失函数中除了设置对抗损失以外,还加入一致性损失。一致性损失为生成图与目标图之间的差距,用二者的L1范数[21]来计算,训练过程中不断缩小此差距来拉近生成图片与目标图片的距离。一致性损失定义如式(5),其中,z为符合分布Pz的噪音,x为符合目标分布Pdata的样本:

Lcontent=Ez~Pz (z),x~Pdata(x)[‖G(z)-x‖]

(5)

最终,结合生成器对抗损失与一致性损失2个部分的损失函数,生成器的最终损失函数如式(6):

LG=Ez~pz(z)[D(G(z))]+λ1Ez~Pz(z),x~Pdata(x)[‖G(z)-x‖]

(6)

其中,λ1代表一致性损失在生成器损失中所占的比重。

鉴别器的损失函数中除了真假图片的鉴别器对抗损失以外还需加入正交控制项,训练网络朝着同一分布的不同模型发展,最终鉴别器的函数如式(7):

LD=Ex~Pdata(x)D(x)+Ez~Pz(z)[max(0,m-D(G(z)))]+λfPT(S)

(7)

3 实验结果与分析

3.1 实验细节

本文所有实验基于Tensorflow深度学习框架,选用Facades与Cityscapes公开数据集进行训练,训练阶段,从数据集中随机获取80%的图像,测试阶段则采用了其他20%的图像。对于数据集中获取的图像,统一进行预处理,将图像均调整为256×256,以便于更好地提取特征信息。

实验中,将Facades数据集中的数据迭代150个周期,每一周期迭代400次,共训练60000次,以1:3的比率交替训练生成器和鉴别器。训练时,网络的学习率设为0.002,梯度更新采用Adam[22]优化算法,其中,一阶矩估计的参数beta1设为0.5。为了能够更明显地观察loss函数的收敛状况,使用Tensorboard可视化工具记录模型的训练情况,其平滑处理参数smoothing设为0.95。Facades数据集的训练过程中生成器与鉴别器的损失函数变化情况如图4所示,由图4可知,本文提出的鉴别器网络模型在迭代10000次的时候就降低到一个比较稳定的范围,而生成器一直处于稳中求降的状态,并在迭代50000次的时候逐渐收敛。为了试验此模型的通用性与健壮性,在Cityscapes数据集上再进行一次实验,由于此数据集的数量是Facades数量的6倍,所以在Cityscapes数据集上迭代400个周期,每一个周期训练400次,其他参数不变,生成器大约在14000次时收敛,鉴别器在迭代8000次时到达一个稳定状态。2个数据集上的实验结果如图5所示,可知基于EBGAN的图像风格化技术具有较好的健壮性。

图4 Facades数据集上生成器与鉴别器损失函数变化情况

图5 实验结果展示图

3.2 实验结果分析

3.2.1 一致性损失的重要性分析

由于本实验的数据集为成对数据集,故一致性损失的存在能够指导生成器尽可能生成接近目标样本的图像,为了验证此项损失函数对生成的图像的影响,将一致性损失的权重分别设置为100与0来对比实验的效果。实验对比结果如图6所示。

图6 添加一致性损失与否的对比图

从图6可以看出,不添加一致性损失的图像转换效果较差,细节部分相当模糊,这表明添加此类损失的重要。

3.2.2 风格转换效果对比

将本文网络模型的生成结果与Isola所使用的Pix2Pix网络模型所生成的结果进行对比。为了能够定量分析图像分别率,本文使用峰值信号比(PSNR)[23]为指标进行对比。PSNR是一种基于误差敏感的图像质量评价,计算的是生成图像与目标图像之间的偏离程度,偏离程度越小,PSNR值越大,但是因人眼视觉特性的因素,即使看到的图片质量较好,实际上得到的PSNR值不一定越高,但是这仍然可以作为一个衡量图像质量的参考标准。

从Facades数据集中随机任选20幅图像进行测试,分别计算经过2个网络模型后的图像的PSNR值,并以折线图的形式在图7中将结果显示出来,便于观察比较。从图7可以清楚看出,本文网络模型生成的图像与Isola的模型生成的图像PSNR值相比总体偏高。PSNR越高代表失真越小,故可得出结论,本文网络模型的图像风格转换效果更好。用于定性分析的对比如图8所示。

图7 PSNR值的对比

图8 2种网络结构生成的图像对比

3.2.3 多样性分析

为了验证本文模型能够使得生成器生成的图片更具有多样性,选取一组测试图片进行多次生成,生成图片集如图9所示,上下2行图像分别是不同生成批次中选取的图像,从中可以清楚看出,加入正交控制项的网络模型生成的图片色彩更多样化,在细节部分也有更丰富的表现。

图9 多样性效果展示图

4 结束语

本文提出了一种网络模型来完成图像风格转换的过程。在生成器中,使用基于U-Net的生成网络模型,并在其中加入跳跃连接,便于特征共享;将能量函数思想加入鉴别器的设计里,降低鉴别器网络的复杂度。同时,在鉴别器的解码中加入正交控制项,扩大两两向量间的差距。实验表明,该方法能够顺利完成图像风格转换,并且生成的图片在分辨率和多样性上均有较好的效果。虽然图片整体生成效果不错,但是对于一些较为复杂的线条的生成效果还存在模糊的情况,所以怎样解决复杂线条的重现将是下一步研究的重点。

猜你喜欢
鉴别器编码器损失
基于多鉴别器生成对抗网络的时间序列生成模型
基于双鉴别器生成对抗网络的单目深度估计方法
融合CNN和Transformer编码器的变声语音鉴别与还原
胖胖损失了多少元
玉米抽穗前倒伏怎么办?怎么减少损失?
基于双增量码道的绝对式编码器设计
应用旋转磁场编码器实现角度测量
阵列天线DOA跟踪环路鉴别器性能分析
基于数字信号处理的脉冲编码器
菜烧好了应该尽量马上吃