基于CycleGAN的中国传统绘画风格游戏图片生成

2022-01-22 11:21赵欣李丹
电子测试 2021年24期
关键词:对抗性损失绘画

赵欣,李丹

(四川大学锦城学院,四川成都,611731)

1 理论介绍

CycleGAN提出了一种理论:抓取一个图像集的特征,指出如何将这些特征转换为其他图像集,并且所有的工作都是在没有任何成对的训练样本的情况下进行的。

这个问题可以称作图像到图像的转换[3],从一个给定场景的表示形式x转换到另一种表示形式y,比如灰度图转彩色图,图像转语义标签等。在多年的计算机视觉的研究中,图像加工、计算摄影技术以及制图学在有监督的情况下已经产生了很不错的成果,以上需要的是成对的数据集。但是,获得成对的数据集并不容易。在艺术风格化这样的图形处理任务中获取输入-输出图像集更加困难,因为需要的输出是非常复杂的,通常还需要艺术创作。在物体变形任务中,需要的输出甚至没有明确的定义。

因此,我们需要一种可以在不成对的数据集中进行转换的算法。在此算法中训练一个映射G:X→Y,通过对抗训练使得G(x)和y尽量相似。但这样单方面转换不能保证x和输出G(x)以一种有意义的方式配对。而且单独优化对抗目标是不太容易的:一般程序总是出现模式崩溃问题[1]。

CycleGAN利用了转换应该是“循环一致”的特性,比如把一个句子从中文翻译成法语,再从法语翻译回中文,应该翻译回原来的句子。从数学角度上来说,如果有一个转换器G:X→F和另一个转换器F:Y→X,G和F应该是相互逆转的。CycleGAN应用了以上假设的结构同时训练映射G和F,并且添加了循环一致性损失[5]促进F(G(x))≈x以及G(F(y))≈y。此外,CycleGAN还添加了identity损失。对于生成器G:X→Y,将图片x传入G得到的是Y风格的图片,那么直接将图片y传入G,从理论上讲得到的应该还是y,这一损失则是计算G(y)与y之间的差距。将以上三种损失相结合作为完整的目标函数[10]。

2 公式

CycleGAN的目标是在两个域X和Y之间训练映射函数,模型中包括两个生成器G:X→Y和F:Y→X,以及两个对抗性的判别器DX和DY。DX用来区分图像集{x}和转换后的图像集{F(y)},同样地,DY用来区分图像集{y}和转换后的图像集{G(x)}。CycleGAN目标函数中包含了三种类型:对抗性损失[2]用来匹配生成图像到目标域的分;循环一致性损失用来防止训练的G和F相互矛盾;identity损失有助于保存输入图像的颜色。

2.1 对抗性损失

CycleGAN为两个映射函数都应用了对抗性损失[2]。对于映射函数G:X→Y和它的判别器DY,目标函数表示为:

DY旨在鉴别出转换后的样本G(x)和真实的样本y,G尝试生成与Y域中的图像相似的G(x)。G的目的是使目标函数最小化,同时DY目的是使目标函数最大化,即minG m ax DYLGAN((G,D Y,X,Y)。同样地,对于映射函数F:Y→X和它的判别器DX使用同样的对抗性损失函数,即minF m ax DXL G AN(F,DX,Y,X )。

2.2 循环一致性损失

在理论上,对抗性损失可以训练出映射G和F,产生的输出分别和目标域Y和X的分布相同[1]。然而,如果网络训练得足够好,则可以将相同的输入图像映射为目标域中任何随机的图像,其中任何训练的映射都可以使得输出分布与目标分布相匹配,输出图像与目标域匹配度高,但不一定能与输入图像对应起来。因此,只有对抗性损失是不能保证学习的函数能将单个的输入xi映射到一个期望的输出yi。因此,CycleGAN表示训练的映射函数应该具有周期一致性:对于每个X域中的图像x,图像的循环转换应该将x转换回原始的图像,即x→G(x)→F(G(x))≈x。这个循环称为前向循环一致性。同样地,对于每一个Y域的图像y,G和F也应该满足反向循环一致性:y→F(y)→G(F(y))≈y。为达到这一目的,CycleGAN中的损失函数定义为:

2.3 identity损失

对于映射G:X→Y,输入x通过G得到的G(x)应该与目标域Y中的图像相似,如果将输入y送入生成器G得到G(y),则G(y)应该与原图一致。使用identity损失能一定程度上保留输入图像的颜色。损失函数定义为:

2.4 完整的损失函数

完整的损失函数表示为:

其中λ和λIdt控制该损失项在完整损失函数中的重要性。

Jun-Yan Zhu[11]等人在定义完整损失函数时做了一些比较,包括单独使用对抗性损失和循环一致性损失,结果表明,这两种目标函数在得到高质量的结果上起着关键性的作用。

3 训练

3.1 CycleGAN网络结构

生成器的网络结构包含了三个卷积层,一些残差块[6],两个步长为二分之一的反卷积层以及一个将特征映射为RGB的卷积层。对于大小为128*128的图像使用6个残差块,对于大小为256*256的图像使用9个残差块[7],同时使用实例归一化。判别器的网络结构使用70*70的PatchGANs[3],它将70*70的部分重叠的图像块鉴定为真的还是假的。这样对块进行分类的结构比对整个图像进行分类的结构参数更少,并且可以以全卷积的方式作用在任意尺寸的图像上[3]。

3.2 训练细节

CycleGAN使用了两项技术来使模型训练更加稳定。

首先是对于对抗性损失函数,使用最小二乘损失函数[8]来替代负对数似然函数。这个损失函数能使训练更加稳定,也能产生质量更高的结果。对于对抗性损失函数LGAN(G, D,X,Y),训练生成器G使得Ex~Pdata(x)[(D(G(x))-1)2]最小化,训练判别器 D 使得 Ey~Pdata(y)[(D(y)-1)2]+Ex~Pdata(x)[D(G(x))2] 最小化。

其次,为了减少模型震荡[1],使用之前生成的旧数据更新判别器而不是最近生成的新数据[9]。训练中使用了一个图像缓冲区存储50张之前生成的图像。在每轮训练中,随机更新缓冲区的部分图像,同时结合新生成的图像和缓冲区中的图像计算判别器损失值。

在训练中设置λ=10,λIdt=0.5,使用批处理大小为1的Adam优化器[4]。所有网络都从0.0002的学习率开始训练。共训练150轮,在前100轮都保持0.002的学习率,后50轮线性减少学习率。

3.3 改进CycleGAN模型及训练细节

为了使中国传统绘画风格的图像转换更逼真,本文对原有的CycleGAN模型及训练参数做了修改。对于生成器模型,修改残差块的个数为6,这样能减少输出图像中保留原有的输入图像的特征,使得结果不仅有真实图像的结构,也更加贴合中国传统绘画的风格。此外,为了提高生成图像的质量,将控制前向循环损失重要性的参数λ设置设为20,提高生成器G:X->Y的质量。同时将控制identit损失重要性的参数λIdt设置为0.1,减少输出图像中保留的输入图像的颜色,使得输出更贴近中国传统绘画的风格。

3.4 数据集

数据集的一部分选自Neural abstract style trans fer for Chinese traditional painting。Bo Li等人收集了1000张适应中国传统绘画内容的图像,这些图像都是从网络搜索引擎收集而来的。它们大多是长江南部的山、湖、河、桥和建筑的真实场景。数据集中除了了中国的场景,还有莱茵河、阿尔卑斯山、黄石、大峡谷等地的图像。除了这些真实场景,还包含100张传统国画[11]。本次训练中随机选择了600张真实的风景图和100张中国传统绘画。

另一部分选自End-to-End Chinese Landscape Painting Creation Using Generative Adversarial Netw orks。这些传统的中国山水画来自开放的博物馆画廊:大都会艺术博物馆、普林斯顿大学艺术博物馆、哈佛大学艺术博物馆、史密森尼佛里尔画廊。并且过滤非风景画的图像,手动裁剪图像中的书法或者丝绸边框[12]。本次训练中随机选取了450张中国传统绘画。

训练时采用了500张真实风景图像和500张中国传统绘画风格的图像,测试时使用了50张真实风景图像。因为CycleGAN不需要成对的输入-输出图像,所以实际测试时未使用中国传统绘画风格的图像。

4 结果

对于CycleGAN模型和改进CycleGAN模型中的对抗性损失、循环一致性损失曲线对比如图1。

图1 损失曲线

可以看出,对于CycleGAN模型,损失曲线的走向并不能很好地反映出模型的性能,甚至在cycle_x的损失曲线比较中,整体损失值还有所上升。因此,本文同时采用了PSNR和SSIM作为评估指标。PSNR计算输入图像和输出图像的差距,评估输出图像的质量。SSIM用来衡量输入图像和输出图像相似的程度,其结果与人眼的评估效果更加相似。在训练好的模型上使用50张真实风景图生成中国传统绘画风格的图像,计算50张图像的PNSR和SSIM取平均值。表1是两种模型的PSNR和SSIM对比。

表1 PSNR及SSIM评估

由表1可以看出,改进后的CycleGAN模型PSNR指标上升了0.262,SSIM指标上升了0.1。

除了上述指标,图像在人眼中呈现的效果同样重要,图2是两种模型生成的中国传统绘画风格图像的对比。可以看出,改进后的CycleGAN模型在颜色处理方面要更贴近于中国传统绘画风格。

5 图像制作工具

对于一款游戏来说,用户体验是非常重要的,在主打中国绘画风格的游戏中,单一的游戏画面和不协调的构图会显得枯燥乏味,大大降低用户体验。在基于CycleGAN的图像制作工具中,只要传入真实图像,选定风格为中国传统绘画风格,便可以得到转换后的图像。

图2 图像转换实例

如图2,CycleGAN模型能够把任意的真实场景图像转换为具有中国传统绘画风格的图像,并且具有逼真的色彩和线条。得到生成图像后,可在此基础上作人为的修改或者直接使用图像。使用CycleGAN模型生成图像能很好地解决游戏画面单一的问题,不仅能高效生成图像,因为生成图像是由真实场景变化来,因此更加合理自然。

6 结语

经过实验对比,对于中国传统绘画风格的图像,改进后的CycleGAN模型生成的图像要比原CycleGAN模型质量更高。将任意一张真实场景的图像输入图像制作软件就可以利用软件内置的模型生成中国传统绘画风格的图像。

猜你喜欢
对抗性损失绘画
技能主导类隔网对抗性项群运动训练特征和实战技巧研究——以网球为例
胖胖损失了多少元
玉米抽穗前倒伏怎么办?怎么减少损失?
关于羽毛球教学中多球训练的探讨
技战能主导类格斗对抗性项群的竞技特点与训练要求
一般自由碰撞的最大动能损失
损失
欢乐绘画秀
欢乐绘画秀
欢乐绘画秀