新的基于GAN的局部写实感漫画图像风格迁移
2022-07-21孙天鹏周宁宁黄国方
孙天鹏,周宁宁,黄国方
1.南京邮电大学 计算机学院,南京 210023
2.国电南瑞科技股份有限公司,南京 211106
动漫是现在非常流行的一种艺术表现形式,这种艺术形式广泛地应用在社会的诸多方面,包括广告、游戏、影视作品和摄影等多个方面。现在这个时代的年轻人大多受到过日本漫画的影响,而日本漫画也确实在全世界有很大的影响力,但是由于漫画的绘制和生成大多采用的是手工绘图后再通过电脑渲染来制作,花费的时间和人力都相对较多,这对于一般没有绘图基础的人将无法完成制作。因此希望可以通过电脑将现实世界的图片自动转换为具有漫画风格的图片。同时可以人为地调控其是对人像或者是背景进行风格迁移以满足不同人对图片的要求。
伴随着人们不断摸索和对将身边的实景转化为动漫影像的方法的研究,从最开始的传统算法NPR(nonphotorealistic rendering)到后来由Gatys提出基于卷积神经网络的风格迁移算法,经由人们对Gatys算法的不断改进最后在近几年人们研究出GAN(generative adversarial network)可以将实景的转换从简单的纹理转变到纹理的生成,开创了全新的图像风格迁移的研究方向[1]。
最开始人们开发了很多自动的NPR算法来模仿包括卡通在内的特定艺术风格。一些作品以简答的阴影渲染3D形状,从而产生类似卡通的效果。这种称为着色的技术可以为艺术家节省大量时间,但是将现有的图片或者视频转换成卡通片则效果不佳[2]。现有开发的方法为创建具有平面阴影的图像来模仿卡通风格,这种方法在优化问题上商用图像过滤或者公式化。但是使用简单的数学公式很难捕捉丰富的艺术风格。特别是在对整个图像均匀地应用过滤或者优化并不能提供艺术家通常做的高级抽象,例如使对象边界清晰。同时NPR算法在面对不同的需求时需要花费大量的精力来制作特定的NPR算法。
目前,基于深度学习的图像风格迁移已经取得了相对较好的效果,所以深度学习成为了目前图像到图像转换的常用方法[3]。该方法通过对风格图像的样式学习,将学习的样式应用于输入的内容图像以生成结合了内容图像的内容和风格图像的风格的新图像。这些方法主要利用深度特征之间的相关性和基于优化方法对图像的视觉风格进行编码。
2016年Gatys等人率先采用深度学习提出了Neural Style的方法,其方法主要通过模拟人类视觉的处理方式,结合训练多层卷积神经网络(CNN),使计算机辨别并且学会艺术风格,从而用到原始图像上,使原始图像富有艺术感[4]。方法很好地达到了风格迁移的目的但是迁移效果较为僵硬且会出现内容扭曲同时生成速度较慢。于是Johnson等人在2016年对Gatys等人提出的方法进行了改进,Johnson等人提出Fast Neural Style方法,其训练好一个风格模型后可以在极短的时间内生成迁移后的艺术图像,但是该方法仅仅改善了生成的速度但是在图像生成的质量方面仍然没有显著的提高[5]。在2017年,Luan等人在Gatys的工作基础上加强改进,控制了风格迁移的内容细节[6],与此同时Li等人采用马尔可夫随机场模型和训练过的DCNN网络组合算法,大大减少了不准确的特征转移来保留原始图像的具体特征[7]。同样是在2017年Huang等人通过编码-解码结果加速了风格迁移[8],但由于自编码器的构造中解码器信息损失严重,导致图像的迁移结果中纹理呈现“块状”,在分割边缘上尤其明显。2017年Li等人对自适应实例规范化添加了白迁移和颜色迁移合称为(WCT),WCT使风格迁移在特征的选取和色彩的校正上有了一定改观[9]。但是无论方法如何改进,通过其方法生成的图像还是简单地停留在简单的纹理转变中无法从本质上凸显出特有的风格特点。
Radford和Metz等人在2015年所提出基于卷积生成对抗网络的无监督学习方法为人们在图像风格迁移提供了新的研究方法,经由实验发现该方法在图像数据集上进行训练所得出的处理结果有着十分不错的效果[10]。但是由于该网络需要成对的数据集,而且获取转移的对应图像是十分困难的所以该模型显得不切实际,为了解决这个问题在后续提出了CycleGAN,CycleGAN是一个能够采用不成对训练数据进行训练的图像翻译架构,同时在2017年由Zhu等人率先采用周期一致的对抗网络进行不成对图像到图像的翻译,从而解决了诸多训练数据集不匹配的问题[11]。但是CycleGAN的样式化不能很好地捕捉卡通图案,输出的图像对输入图的语义内容不能充分地保留。
2018年Chen等人在对抗生成网络的基础上提出了CartoonGAN[12],其采用了新颖的网络架构,其网络结构可以使用不成对的数据集进行训练同时能在最大程度上呈现出漫画的风格特点。但是CartoonGAN所生成的图像在人像方面会出现严重的歧义色块导致。于是在2019年由Chen等人对其进行改进并且提出了Anime-GAN[13],其引入了灰度图像并且更改了原CartoonGAN所采用的损失函数消除了人物出现歧义色块的问题,但是其为了保证颜色的真实性导致人像和风景部分在风格迁移过程中的诸多细节丢失,包括人脸部分的众多重要的纹理特征丢失。
以上方法均是基于深度学习的迁移方法,而样本迁移学习是可以和深度学习结合使用的[14]。如果网络中的特征是通用的,则迁移学习可以在基础数据集中训练好基础网络后将其迁移到后续网络中进行使用,从而起到很好的效果。但是这对数据集有着较高的要求,由于实验中的动漫数据集是通过视频随机帧截取的方式进行数据集制作的,这使得数据集中的数据具有极高的随机性,数据集中包含着动漫人物和风景,同时不同的动漫角色所绘制的方式也是不十分一致的,由于这些因素对迁移学习十分不友好。其次不同的画家的漫画风格是不同的,所以每次迁移学习都需要重新的训练,从而增加了网络的复杂性,所以最终本文选用样本迁移学习。
深度学习虽然是现阶段图像风格迁移的主要方式,但是类似于Gatys等人在2016年CVPR所提出的image style transfer using convolutional neural network(基于卷积神经网络的图像风格迁移),该方法是通过卷积神经网络将图像的纹理和图像进行融合以达到风格迁移的效果,但是这对于动漫图像是完全不够的,动漫图像中需要凸显出动漫人物的线条以及人物和场景的层次感,而通过此方法是很难达到的。
GAN(对抗生成网络)是现阶段最新的方法之一[15]。首先GAN框架主要由生成器和鉴别器组成,生成器将生成图像输入到鉴别器中欺骗鉴别器,从而达到将真实图像去拟合动漫图像线条和纹理的效果,这样既不会损失原始图像的内容同时可以生成动漫图像。其次GAN的生成网络其参数更新来自于鉴别器的反向传播而不是数据样本,这样可以大大减少参数保存,从而降低内存的需求。鉴于以上原因本文选择采用GAN进行图像风格迁移。
针对目前流行的基于GAN的漫画生成对抗网络框架AnimeGAN和CartoonGAN在图像迁移中存在细节丢失严重、色彩失真、合成痕迹明显等问题。
本文首先通过引入可以实现通道注意力机制的Squeeze-Excitation-Residual-Block(挤压激励残差块)和漫画脸部检测机制,提出全新的ExpressionGAN,并新定义了融合内容损失、对抗损失和颜色重建损失等因素的损失函数,解决了AnimeGAN在人物脸部细节丢失严重、色彩失真的问题。
接着通过加入DSConv(分布偏移卷积)提出了新的SceneryGAN,加快了原始训练速度并消除了Cartoon-GAN生成的迁移图像中的歧义像素块。
通过卷积的手段优化了Deeplabv3+生成图像在融合时边界过于明显的问题。最后,提出结合ExpressionGAN、SceneryGAN和优化后的Deeplabv3+的一种全新的对原始图像人物和环境分别处理并融合的局部写实感漫画风格迁移模型。实验结果表明,与AnimeGAN和CartoonGAN相比,本文的方法在训练速度、漫画图像生成质量和图像局部写实感方面都有了明显的提升。
1 算法概述
1.1 局部写实主义动漫模型
本文提出了一个全新的可以控制图片进行局部风格迁移的模型——局部写实主义动漫模型,模型主要由三个深度学习的网络框架组成。三个网络分别为ExpressionGAN、SceneryGAN和Deeplabv3+。模型通过ExpressionGAN实现人像部分的风格迁移,通过Scenery-GAN实现人物背景的风格迁移,采用Deeplabv3+将图片中的人像和背景进行分割,最后通过融合算法将两者分别进行融合。具体框架如图1所示。
图1 局部写实主义动漫模型Fig.1 Partial realistic animation model
1.2 ExpressionGAN
本文提出了全新的ExpressionG AN,ExpressionGAN选用挤压激励残差块代替AnimeGAN中的反转残差块。反转残差块是在残差块的基础上进行了一定的修改,但是其卷积操作的运算仍然是通过在局部接收域内将空间和通道信息加以融合从而提取出特征信息。由于ExpressionGAN和AnimeGAN实质上的训练图像和应用场景均包含人物和背景场景,所以本文希望可以通过添加通道注意力机制,来增强网络的表示能力,让网络能够尽可能地强调人物特征同时可以抑制背景特征所带来的影响,从而达到优化网络对人物进行风格迁移的效果。
1.2.1 加入通道注意力机制
本文所采用的SE-Residual-Block是在残差块中添加了SE-Module(挤压激励模块)来实现通道注意力机制[16]。无论是残差块还是反转残差块对于每个通道都是一视同仁的,并没有区分每个通道的重要性。这使得一些不太有用的信息会影响到重要的特征信息,同时也会存在在暴力筛选中将重要信息丢失的现象。SE-Module(挤压激励模块)则相当于给网络在特征提取时添加了重新校准的机制,通过该机制网络可以学习和使用全局信息来给每个通道赋予不一样的权值,从而达到选择性地强调重要特征信息并且抑制不太有用的特征信息的效果。
SE-Residual-Block和Inverted-Residual-Block具体结构如图2所示。
图2中虚线部分为SE-Module,SE-Residual-Block由标准卷积(Conv-Block)、全局平均池化层(Global pooling)、全连接层(FC)、LRelu激活函数、全连接层(FC)、Sigmoid函数和实例归一化层(Inst-Norm)构成。
图3 挤压激励模块结构图Fig.3 Squeeze and excitation structure chart
SE-Module(挤压激励模块)主要分为Squeeze(挤压)和Excitation(激励)两个部分。
Squeeze(挤压)部分:通过对上层卷积传入的特征图U采用全局池化操作,通过对特征图进行聚合,生成通道描述符,该描述符嵌入了通道方式特征响应的全局分布,使得来自网络全局接收域信息能够被下一层利用。
Excitation(激励)部分:通过基于通道之间的关系进行学习计算出每个通道的权值,随后对特征图U进行加权,作为最后的输出传入后续网络。
SE-Module(挤压激励模块)具体结构如图3所示。其中X为输入数据,H′、W′、C′分别为输入数据的高度、宽度和通道数。X通过Ftr卷积操作得到特征图U。其中H、W、C分别为特征图的高度、宽度和卷积核的数量。Fsq(·)为挤压函数,Fex(·,W)为激励函数,Fscale(·,·)为加权函数,为加权输出。
SE-Module具体流程介绍:
输入数据X通过卷积核V=[V1,V2,…,Vc]进行卷积操作得到U=[U1,U2,…,Uc],其中Ftr具体公式如公式(1):
其中,Vc表示第C个卷积核,S表示通道,Uc为通过Vc卷积得到的第C个特征图。
由于在卷积运算中所有的通道相关性和通道捕捉的信息是相加从而纠错在一起的,所以本文希望通过建模通道相互之间的依赖来实现通道权值的不同。
Squeeze(挤压)部分:
由于Uc是通过每个Vc卷积得来的,所以每个卷积核相当于通过局部感受域来获取信息,从而U所获得的信息存在着局限性。于是希望通过将全局信息压缩到一个通道描述符中。所以采用全局池化中的全局平均池化来生成通道统计信息,全局平均池化具体公式如公式(2):
其中,C为卷积核数量,H为高度,W为宽度。zc为全局平均化池得到的通道描述符。
通过Squeeze部分得到C个z值,将C个z值输入到Excitation部分,即图中的1×1×C的输入。全局平均池化将全局的通道信息进行提取,后将信息输入到Excitation部分。
Excitation(激励)部分:
激励部分则是利用挤压操作中获取的全局通道信息进行完全捕获通道之间的依存关系。要求该部分可以在网络中学习通道之间的非线性交互,所以采用了简单的门控系统。其具体公式如公式(3):
其中,δ为Relu激活函数,σ为Sigmoid函数,W1和W2是分别用于两个全连接层的降维和升维的权重,本文中W1=C/16,W2=C。第一个FC层通过W1降维后采用Relu激活后通过第二个FC层的W2进行恢复为原始维度,后将通过Sigmoid函数学习到的值进行归一化将值取于0~1之间,最后将归一化的值乘到原始特征U上公式如公式(4):
通过Squeeze部分将通道信息传入Excitation部分全连接层的学习,随后对原始特征图U进行重新校准,从而加大重要通道信息的权重同时减少不太有用的特征通道的权值。
本文引用发布于2018年ECCV上的论文CBAM:convolutional block attention module的方法[17],将改进后的挤压激励模块和残差块通过Grad-CAM进行可视化对比,具体对比如图4所示。
图4 Grad-CAM激活热力对比图Fig.4 Grad-CAM activation thermal contrast diagram
图4中Photo为输入原始图像,ResNet为残差网络,SE-ResNet为挤压激励残差网络。
通过热力图可以直观地看出在添加了挤压激励机制后网络在特征提取和中间层的激活中对重要信息更加具有针对性。从而证明本文所添加挤压激励残差块可以在一定程度上增强网络的表示能力,优化网络中对人物特征的提取,同时减少背景图像在特征提取过程中对图像生成带来的影响,最终达到优化图像生成的效果。
本文将SE-Residual-Block(挤压激励残差块)替换AnimeGAN中的Invert-Residual-Block(反转残差块)得到ExpressionGAN,其具体结构如图5所示,图5中红色虚线框选出的为SE-Residual-Block。
图5中结构主要分为鉴别器和生成器,在生成器和鉴别器中,k为卷积核(kernel)大小,n为特征图(feature map)个数,s为步长。其中k7n64s1则表示为卷积核大小为7,特征图数量为64,步长为1。生成器输入为真实图像,鉴别器输入为真实图像,生成器生成图像,动漫图像,动漫灰度图,去线条化动漫图像,去线条画动漫灰度图。其中a为动漫图像,x为动漫灰度图,e为去线条化动漫图像,y为去线条画动漫灰度图,G(p)为生成器生成图。
原始图像输入生成器首先通过人脸检测机制对数据集中的随机图片进行筛选将检测到的人脸图片输入到生成网络,ExpressionGAN的生成器可以看作一个编解码器网络,它主要由标准卷积、深度可分离卷积、挤压激励残差块(SE-Residual Block)、上采样和下采样模块组成。最后一个卷积层则是采用tanh非线性激活函数代替归一化层。
在鉴别器中通过添加本文提出的漫画人脸检测机制,通过该机制将漫画脸部对视频随机选取的漫画图像进行检测,将检测到漫画脸的图片选取到鉴别网络中,相当于给漫画图像数据进行了预处理,可以进一步地提高网络训练的针对性。
1.2.2 ExpressionGAN损失函数
ExpressionGAN的损失函数是在AnimeGAN的基础上进行了修改。AnimeGAN通过使用灰度矩阵将原始卡通图像转换为灰度图像,这样做的目的在保留图像纹理的同时可以消除暗色干扰。但AnimeGAN虽然解决了色块的问题还是无法改善图片颜色偏暗的问题。所以本文在其颜色重建损失中进行了修改。
ExpressionGAN损失函数定义如公式(5):
其中,G代表生成器,D代表鉴别器Ladv(G,D)和Lcon(G,D)为对抗损失和内容损失。Lgra(G,D)为生成图像在纹理和线条上漫画风格的灰度对抗损失。Lcol(G,D)为恢复灰度图像所构造的颜色重建损失。ωadv、ωcon、ωgra、ωcol分别为各个损失函数权重,经实验其中ωadv=300,ωcon=1.5,ωgra=3,ωcol=10时达到最好效果。
本文中真实图片数据定义为Sdata(p)={pi|i=1,2,…,N},动漫图片数据定义为Sdata(a)={ai|i=1,2,…,M},动漫灰度图定义为Sdata(x)={xi|i=1,2,…,M},去线条化动漫图像为Sdata(e)={ei|i=1,2,…,M},去线条化灰度图定义为Sdata(y)={yi|i=1,2,…,M}。
其中灰度对抗损失具体如公式(6):
其中,Gram表示特征的Gram矩阵。pi表示输入图片,G(pi)表示生成图片,VGG(xi)则表示VGG中第一层的输入的特征图。
图5 ExpressionGAN网络结构图Fig.5 ExpressionGAN network structure diagram
内容损失具体定义如公式(7):
其中,VGGl()为VGG第l层的特征图,pi表示输入图片,G(pi)表示生成图片为输入数据。
灰度对抗损失和内容损失均采用L1稀疏正则化进行损失计算。
为了消除AnimeGAN生成图片颜色偏暗的问题,本文尝试将原先的YUV格式的图像转换为LAB格式来构造颜色重建损失Lcol(G,D),其中L通道使用L1损失,A和B通道则使用Huber损失。颜色重建损失可表示为公式(8):
最后生成器损失定义为公式(9):
鉴别器的损失函数为公式(10):
1.3 SceneryGAN
SceneryGAN是由两个卷积神经网络构成的:一个生成器G,用于将现实世界图片转换为漫画图片;另一个为鉴别器,鉴别器延用了CartoonGAN所采用的鉴别器。SceneryGAN是在CartoonGAN生成器的基础上引入DSConv(分布偏移卷积)。来代替原生成器中的标准卷积。SceneryGAN具体结构如图6所示。
图6为SceneryGAN的生成器,其中k为卷积核(kernel)大小,n为特征图(feature map)个数,s为步长,红色虚线框中的内容为替换标准卷积的DSConv(分布偏移卷积)[18]。
分布偏移卷积(DSConv)是标准卷积层的一种变体,其可以很好地替代原有的标准卷积,DSConv将传统的卷积内核分解为两个组件:可变量化内核(VQK)和分布偏移。通过在VQK中存储整数值来实现较低的存储器使用和较高的速度,同时通过应用基于内核和基于通道的分布偏移来保持和原始卷积相同的输出。经过反复的训练发现通过DSConv的替换,在网络训练过程中速度得到了明显的提升,同时改善了原有模型会在迁移后图片出现部分乱码的现象。
1.4 Deeplabv3+图像分割和图像融合优化
经过多次对比本文最后采用Deeplabv3+来对现实图片进行人像分割,实验选用百度飞桨所提供的API对图片进行分割得出背景和人像的mask图。经过人像切割可以很好地对人像部分和背景部分进行分离和切割,但是在人物的边界处存在着锯齿状的像素块,导致在将局部原始图片和局部风格迁移图片进行图像融合时存在着边界过于明显的现象。由此本文采用卷积的方法,在图像进行融合时通过一个5×5的卷积核对分割后的局部图像进行边缘模糊从而改善其边缘的锯齿状现象,更加自然地将图片进行融合。
2 实验结果与分析
本文使用Pytorch和lua语言实现ExpressionGAN、SceneryGAN、动漫脸部检测和图像边缘优化。实验中得出的实验模型可以提供给后续其他人工作使用以便做出改进。所有实验均在NVIDIA 1080ti GPU上进行。
图6 SceneryGAN结构图Fig.6 SceneryGAN network structure diagram
由于ExpressionGAN和SceneryGAN两个网络模型对数据集中图像不需要做到一一匹配,所以数据集可以由作者根据不同的漫画艺术家风格进行自行选取。同时由于本文所设计的动漫人脸检测有着很高的泛用性所以对于动漫图片数据集的要求可以进一步地缩小。
为了更好地将ExpressionGAN、SceneryGAN以及局部风格迁移后的图像与最新技术进行比较,本文在2.1节中介绍训练和测试数据。在2.2节中,将改进后实验结果与先前的AnimeGAN和CartoonGAN实验结果进行比较。在2.3节中,将优化后的局部风格迁移图像进行展示以呈现整体模型的图片效果。在2.4节中展示了局部风格迁移图。
2.1 数据集介绍
训练数据包含真实图像和卡通图像,测试图像则仅包含真实图像。为了可以更好地展示出本文改进的网络效果,实验延用了CartoonGAN和AnimeGAN所选取的数据集。在ExpressionGAN中采用6 656张256×256真实图像以及其中5 890张图像用于训练,776张图像用于测试。在SceneryGAN中从Flickr网站中下载的6 153张真实图像,其中5 402张用于训练,其余真实图像用于测试。在ExpressionGAN和SceneryGAN中选用同样的漫画图像数据集,数据集来自宫崎骏和新海诚两人的《千与千寻》《你的名字》和《起风了》三部动漫电影,通过随机帧截取的方式对其进行截取,分别获得4 573和4 212张两位画家作品的动漫图像。
2.2 实验结果对比
实验结果对比主要有四个部分,分为:(1)与2019年ISICA上发表的AnimeGAN进行人像部分迁移的比较。(2)与2018年在CVPR上提出的CartoonGAN进行场景部分的比较。(3)将进行边缘优化后的分割图像与未优化的分割的图像进行对比。(4)呈现整体框架生成的局部风格迁移图。为了公平起见,在进行对比实验中两两对比的网络均采用相同的数据集以及相同的训练轮数。
2.2.1 ExpressionGAN与AnimeGAN实验结果对比
实验率先对原始的AnimeGAN以及CartoonGAN进行训练,随后通过测试发现AnimeGAN虽然解决了CartoonGAN在风格迁移过程中局部颜色出现歧义的现象,但是从最终呈现结果可以看出AnimeGAN在人物和场景的迁移中丢失了很多重要的细节,例如说人像脸部的五官,而在风景图片迁移时则会出现线条的扭曲以及细节纹理的丢失。所以本文在AnimeGAN基础上引入了一系列改进措施在很大程度上恢复了其在人脸部风格迁移时人物脸部特征的丢失的问题。
由图7可以看出CartoonGAN在对于人物的风格迁移中有着很大的缺点,会出现十分明显的歧义颜色,导致人物的皮肤呈现十分不合理的颜色,同时其人物漫画的程度过小很难显现出漫画的特点。AnimeGAN虽然改善了颜色歧义的问题,但是AnimeGAN在人物脸部细节中有着很大的缺陷,人物脸部的五官等重要纹理出现了严重的丢失,而且整体图像颜色偏暗。ExpressionGAN在整体上可以看出其可以鲜明地看出人物的脸部五官特征同时颜色方面也有了显著的增强。
图7 CartoonGAN、AnimeGAN和ExpressionGAN对比图Fig.7 CartoonGAN,AnimeGAN and ExpressionGAN contrast figure
处理对网络和损失函数的优化本文还对图像进行了预处理工作,通过选用OpenCV中的对象检测器OpenCV_traincascade对动漫人物图像进行训练使其可以框选含有动漫人物的动漫图像。具体框选效果如图8。
图8 漫画人物框选图Fig.8 Comic character box selection
由于本文是希望生成类似于新海诚和宫崎骏所描绘的写实感的动漫风格,所以人物脸部特征尤为重要,本文将ExpressionGAN和AnimeGAN人脸脸部特征进行了详细的对比,对比结果如图9所示。
图9中红色虚线框选为人物脸部重要特征的效果对比。可以明显看出AnimeGAN在对人物进行风格迁移过程中人物脸部的很多重要特征会出现丢失的现象,从而无法达到理想的迁移效果。ExpressionGAN将人物脸部特征很好地还原,同时改进了AnimeGAN迁移图像偏暗的问题。
由于每个风格迁移的风格不相同,其迁移后的效果没有十分明确的指标进行硬性衡量。考虑到本文是进行写实感漫画风格迁移,于是本文在能区分漫画图像和真实图像的基础上对生成的人物迁移图像和原始人物进行相似度对比。其中对比工具采用百度飞桨提供的人物脸部对比API。具体对比数据如表1所示。
图9 AnimeGAN和ExpressionGAN人物脸部详细对比图Fig.9 Face detailed comparison of AnimeGAN and ExpressionGAN
表1 ExpressionGAN和AnimeGAN迁移图像的真实度对比Table 1 Authenticity comparison of migration image of ExpressionGAN and AnimeGAN
表1中photos为150张真实图像,并将这150张真实图像通过ExpressionGAN和AnimeGAN各生成150张迁移图像,分为3组,每组50张,通过将迁移图像和真实图像进行一一对比计算出每轮50此相似度的平均值。通过相似度可以看出由于ExpressionGAN脸部纹理的恢复,相较于AnimeGAN在写实感漫画特点方面有着较为明显的提升。
2.2.2 SceneryGAN与CartoonGAN实验结果对比
在实验中发现CartoonGAN在进行风格迁移时较为良好地保留了现实图片的重要细节特征且对风景迁移中有着更为真实且良好的表现,满足了现在写实感漫画风格的场景需求,但是在训练过程发现CartoonGAN所生成的效果会存在一些不稳定的像素块,同时训练的速度较为缓慢,所以本文在CartoonGAN中引入分布偏移卷积(DSConv)得到SceneryGAN。将原始的CartoonGAN和SceneryGAN都进行200轮的训练,结果发现速度有了很大的提升,同时解决了生成图片出现乱码的现象。具体对比如表2和图10所示。
表2 CartoonGAN和SceneryGAN训练时间对比Table 2 Comparison of training times between CartoonGAN and SceneryGAN
图10 SceneryGAN和CartoonGAN对比图Fig10 SceneryGANand CartoonGAN contrast figure
表2中SceneryGAN和CartoonGAN采用相同数据集进行训练,可以看出SceneryGAN在训练速度方面有了很大提升。本文使用原始CartoonGAN进行多次训练,发现在相同设备下仍然无法消除不稳定的像素块,通过DSConv的引入由于高效卷积在提升训练速度的同时,消除了像素块的问题。
2.3 使用Deeplabv3+进行图像分割和图像边缘优化
实验需要将人像与背景风景通过不同的网络分别进行风格迁移,通过本文的研究决定采用Deeplabv3+来对图像进行分割,由于Deeplabv3+技术相对成熟,并且其人像切割的结果相较于其他网络有着十分出色的表现,所以实验直接选用了Deeplabv3+的人像切割API。但是由于设备的局限性,本文采用的是256×256的图片大小来进行图片的训练。所以在进行人像切割后在人像边缘处有着十分明显的锯齿状边界。具体分割图像如图11所示。
图11 Deeplabv3+分割图Fig.11 Deeplabv3+segmentation image
经过多次实验发现Deeplabv3+对人像切割的效果最为出色,通过其得出的Mask图将背景和人像贴上0和1的标签,后通过图像融合时对0和1标签的交替得到背景或在人像的局部迁移效果图。但是由于存在锯齿状边界的原有人像图和背景图片迁移后融合会出现明显的边界,所以本文考虑通过引入5×5卷积核对图像进行卷积的方式对分割图像进行了优化,具体优化对比效果如图12。
通过图12可以看出通过优化器边缘的锯齿状边界得以模糊,明显改善了图片融合后出现鲜明边界的问题,这样使得图像在切割后与背景进行融合时显得更加自然,使得融合后的整体图片更加优秀。
图12 边缘优化前后对比图Fig.12 Comparison before and after edge optimization
2.4 局部风格迁移图
该部分将展示通过上述内容结合完成的局部风格迁移图像,其主要分为背景局部风格迁移和人像局部风格迁移。背景风格迁移为现实图片中的人像保持原有样式不变,图片背景的风景进行风格迁移。人像风格迁移为现实图片中的人物背景保持原有样式不变,图片中人物进行风格迁移。具体实验结果如图13。
图13 局部写实感漫画风格迁移图Fig.13 Transference diagram of partial realistic comic style
通过三部分的展示很好地实现了图像局部风格迁移。证明了该模型可以自由地控制图片中人像或者背景部分的风格迁移,同时用户可以自由地将两者进行切换,很好地丰富了风格迁移的使用方法。
3 结语
本文提出了ExpressionGAN和SceneryGAN,并且提出了全新的局部写实主义动漫模型将ExpressionGAN和SceneryGAN结合运用到模型中实现局部风格迁移。ExpressionGAN针对AnimeGAN改进如下:
(1)ExpressionGAN将AnimeGAN中的反向残差块(Inverted-Residual-Block)改为挤压激励残差块(Squeezeand-Excitation-Residual-Block)。
(2)ExpressionGAN更改了AnimeGAN所提出的损失函数,将原文中所采用的YUV通道输入转变为LAB通道输入。
(3)ExpressionGAN在AnimeGAN网络中的生成器和鉴别器分别添加漫画人脸检测机制。通过上述方法很好地改善AnimeGAN生成图片中人物脸部特征丢失和生成图片偏暗的问题。
提出的SceneryGAN针对CartoonGAN改进为:将原网络中的标准卷积块(Conv)替换为深度可分离卷积(DSConv)。通过改进大大加快了CartoonGAN训练速度,同时消除了训练过程中生成图片出现不稳定像素块的问题。
本文所提出的新模型架构运用了Deeplabv3+对输入的内容图片进行人像切割,随后经过边缘优化处理得出优化后的mask图。将内容图像分别经过ExpressionGAN和SceneryGAN得出整体风格迁移图,得到整体风格迁移图后将整体风格迁移图像和mask图进行图像融合,得出局部人像风格迁移图像和局部背景风格迁移图像。最后将局部的人像迁移图片或者局部的背景迁移图片和原输入图片相融合得到局部风格迁移图。
虽然本文的改进有着不错的效果,但是仍然存在着一些缺陷有待后续改进,例如:人物脸部细节中线条过粗不能精细地还原原始图片人物的脸部特点。同时本文方法现在仅局限于图片,希望未来通过改进可以将这个方法使用于视频文件中,这样可以更好地投入实际应用。