基于CycleGAN的真实场景到动漫风格图的转换应用

2021-12-17 11:18张格格李丹
电子测试 2021年22期
关键词:动漫一致性损失

张格格,李丹

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

1 介绍

CycleGAN是一个可以用于未配对数据的转换的对抗网络。它做的事情是在一个图片集中捕获出特殊的特征,然后将这些特征转移到其他图片集上。可以将这个问题描述为图像到图像的转换或翻译。它是从一个给定场景的表示形式中转换图像,例如将现实生活中的场景转化为某一种风格的画作(例如将玫瑰花照片转换为梵高风格画作的图片)。虽然CV研究图像加工、计算摄影技术和图像学经过多年的研究,在有监督的情况下已经产生了强大的可用成对出现的样本图片转换系统[1]。但获得配对好的图像数据于我们而言是一件困难且需要耗费很大成本的事情,而现有的CycleGAN可以实现任意类似数据图像的转换。因此我们可以将CycleGAN模型用于此方面的转换,或者运镜时的视频转换。而此篇文章主要是使用CycleGAN来实现现实世界中的场景到动漫风格图片的转换。

2 相关工作

2.1 生成性对抗网络

生成性对抗网络在图像生成[2,3]、图像编辑[4]和表示法学习[3,5,6]上早已获得令人赞叹的结果,而生成性对抗网络成功的关键是对抗性损失想法的提出,即强迫生成图像在一次次的训练中逼近真实图片,使得鉴别器无法将生成图像成功的鉴别为假。这个损失在图像生成任务中的功能很强,而循环一致性对抗网络就采用了一个对抗损失来学习这个映射,从而使得生成图像很逼真。

2.2 图像到图像的转换

Hertzmann等人提出的图像类比[7]推动了人们对图像到图像的转换的想法。他们是在一个单一输入输出的训练图像对上使用一个非参数化的纹理模型,而循环一致性对抗网络则是在建立在Isola等人的pix2pix框架基础之上提出的。pix2pix也是在成对的数据集上进行,它使用了一个条件式对抗网络来学习一个输入图像到输出图像的映射。

2.3 未配对图像之间的转换

除了CycleGAN之外,也有其他的方法可以处理未配对的情况。这些方法的目标都是关联两个数据域X和Y。而CycleGAN作者的构想不依赖于任何任务的特异性。即在输入和输出间的预定义的相似度函数中,并不假设输入和输出处于相同的低维嵌入空间。这样一来,CycleGAN就成为了许多视觉和图形任务的通用解决方案。

2.4 循环一致性

循环一致性使用传递性作为规划结构数据的方式已经有了很长的一段历史。CycleGAN则是使用了类似于一个循环一致性损失作为用传递性来监督CNN训练的途径[8,9]的损失去推动G和F的一致性。

2.5 图像风格迁移

它基于匹配预训练的深度特征的Gram矩阵统计数据来将一个图像的内容和另一个图像的风格进行结合来综合出一个新的图像。而CycleGAN则是把重点放在两个图像集的映射而不是两个特定的图像。这也为我将现实场景转换为动漫风格图像提供了条件。

2.6 AnimeGAN和AnimeGANv2

AnimeGAN[10]是基于CartoonGAN[11]的改进,它可以将现实场景进行动漫画风的图像转换。它提出了一个更加轻量级的生成器结构,也提出了三个全新的损失函数(灰度风格损失、灰度对抗损失、颜色重建损失)用来提升风格化的动漫视觉效果。

AnimeGANv2则是基于AnimeGAN的改进,与后者相比,它的生成器网络的参数数量更少。它目前支持宫崎骏、新海诚和今敏的三种画风的风格迁移,同时也支持视频图像的风格转换。而CycleGAN相较于它们有更广泛的图像风格转换空间。

3 所用公式

循环一致性对抗网络中的关键在于他的循环损失计算,总循环损失公式为:

来计算出由域X生成的图像G(x)与域Y的目标风格图像的差值损失,鉴别器Y则用于鉴别G(x)和域Y的图像哪个为真哪个为假。生成器与鉴别器的对抗网络使得该损失不断的降低。这样不断的对抗训练可以使得生成器G能够产生更加逼近真实图像的图像。反之理论一样。循环一致性对抗网络希望找到能使该循环损失降到最低的情况,这样就能使由域X和域Y生成的图像越来越逼近于真实图像。

理论上来说,对抗性训练可以学习映射函数G和F,使它们分别产生与目标域Y和X相同分布的输出。严格来说,需要的G和F是随机的函数[16]。然而当具有足够大的容量时,对抗网络可以将相同的一组输入图像映射到目标域中任意随机排列的图像,其中任何学习过的映射都可以产生与目标分布相匹配的输出分布。因此,只有对抗性损失并不能保证学习过的好的函数可以将单独的输入xi映射到需要的输出yi。

为了防止生成器学习到具有欺骗性的造假数据(不是根据输入得到的生成图),以及进一步减少可能的映射函数的区间,学习过的映射函数就应该是循环一致的,如图1(b)中显示的那样,对于每个X域中的图片x,应该确保图像循环转换应该能让x回到原来的图像,即x→G(x)→F(G(x))≈x。将其称为前向循环一致性。同样地,对于每个Y域的图像y,G和F也应该满足反向循环一致性:y→F(y)→G(F(y))≈y。因此,使用循环一致性损失函数Lcyc(G,F)来得到这样的表现:

图1 循环一致损失

该循环损失约束了生成的图像要尽力的去保留源域的内容和贴近目标域的风格,以不致生成的图像丢失了源域的内容而只是去盲目地贴合目标域的风格。

4 网络体系结构与训练细节

CycleGAN的网络结构来自Johnson等人的可生成式网络结构。CycleGAN网络使用6个128x128的图像块和9个256x256的图像块以及高分辨率的训练图像,同后者一样使用归一化的实例进行研究。CycleGAN的鉴别器网络是70*70的PatchGANs[12,13,14],PatchGANs主要是对70*70大小的重叠的图像斑块的真假进行分类。

模型的训练从开始到稳定,一共用了两个过程,首先对于方程式(2),它用一个最小二乘函数替换了负数对数的客观存在二点可能性。这使得训练过程更加稳定,生成结果有更高的质量。第二,为了减少模型的震荡,CycleGAN引用了Shrivastava等人的策略,使用由最新生成器产生的图片更新鉴别器。CycleGAN使用了一个缓冲区来存储50张之前的生成图片,在方程式(1)中设置λ的值为10,使用批处理大小为1的Adam求解程序[15]。所有的网络都从学习率为0.0002开始训练,在前100个轮次里保持相同的学习率,并在接下来的100轮将速率线性降低至零。

图2 训练过程的损失折线图

在我这次所做的将实物场景图转换为动漫风格图像过程中,我在netG参数中新加了一个ResnetGenerator_1网络,它与原来的ResnetGenerator网络的差别在于,我将上采样由两层改为一层,并将λA的值由10改为30,这样做的结果可以使生成图像更加清晰和契合目标图像的风格,原模型与改进后的模型训练过程损失值变动如图3所示。

图3 测试结果图展示

5 结果

图3中展示了原图与原CycleGAN模型以及和我改动部分参数之后的模型测试结果图。图中可以很清楚地看出,改动参数之后的模型产生的图像比原模型的生成图像更加符合目标图像设想。

6 使用两个指标的结果评价

PSNR,即峰值信噪比,它是最普遍和使用最广泛的一种评价图像的客观标准,但它是基于对应像素点间的误差,也就是说是基于误差敏感的图像质量评价。因为它并不考虑人眼的视觉特性,因此它的评价结果与人的感觉常常不一致。

SSIM,结构相似性,它用于衡量两幅图像的相似度,它使用一张未经压缩的无失真图像和一张失真后的图像。取值的范围为-1到1。它的公式基于样本x和y之间的亮度、对比度和结构的比较衡量。

表1展示了PSNR和SSIM两个指标对原模型和我改动参数后的模型进行评价的结果。我在改动模型参数后,两个指标都有所提升。

表1 PSNR和SSIM指标的评价结果

虽然改动后的模型测试结果相较原模型更好,但仍在图像清晰度和图像风格契合度上有所不足。

7 现实场景图转换为动漫风格图的实际应用

在现代生活中,动漫被很多年龄段的人所需求即动漫有着很广泛的市场。且相较于真实演绎的作品而言,动漫的制作更加的依赖于电子产品。而制作动漫往往要消耗很多精力和时间。联想到很多现实世界中的场景效果是可以直接或者稍加修改之后放到动漫中使用的。图4展示了该算法在实例中的实现流程,即:首先对现实场景进行拍摄,然后使用CycleGAN算法对其进行动漫风格的转换,之后将其应用到具体动漫的制作过程中。如此一来就可以使得动漫中部分过程的制作变得简单,使整个动漫的制作变得相对轻松一点。通过将现实中的场景照片转化为动漫风格的照片可以在一定程度上节约资源,也便于更多的场景联想。

图4 转换应用流程图

猜你喜欢
动漫一致性损失
关注减污降碳协同的一致性和整体性
注重教、学、评一致性 提高一轮复习效率
IOl-master 700和Pentacam测量Kappa角一致性分析
胖胖损失了多少元
玉米抽穗前倒伏怎么办?怎么减少损失?
动漫二次元
锋绘动漫
开口笑
锋绘动漫
基于事件触发的多智能体输入饱和一致性控制