【论文笔记】WarpGAN: Automatic Caricature Generation
WarpGAN: Automatic Caricature Generation
这篇论文因为是新发布不久的,网上能找到的资料都还比较少,再加上本人新手上路,感觉对于此篇文章还有很多理解不到位的,希望大家能够留言指正!
warpGan是一种全自动网络,它可以给定输入的人脸照片生成漫画。除了可以转换丰富的纹理样式,它还可以学会自动预测一组控制点,这些控制点可以使照片变形成漫画,同时保持原照片的身份信息。本文介绍了identity-preserving adversarial los,并将此加入到discriminator中去区分不同的个体。并且WarpGAN允许通过控制夸张程度和视觉样式来定制生成的漫画。
在本文的工作中,我们主要去创建一个完全自动化的可以通过CNNS和GANs将人脸照片变成漫画的系统。
和以往的漫画生成和风格转换不同,我们强调了在本文中的一些挑战:
- 漫画生成包含纹理变化和形状变形;
- 经过变形的脸依旧能够被辨认;
- 卡通图片样本以不同的视觉和艺术风格存在。
为了解决以上挑战,本文提出了WarpGAN。在generator中可以自动预测control points,这些控制点将输入的人脸照片转换到最接近某一目标的漫画,还通过非线性滤波传递纹理样式。 Discriminator是通过identity-preserving adversarial loss来训练的,以区分不同的身份和风格,并鼓励generator在合成各种不同的漫画,同时自动夸大特定于身份的面部特征。
本论文的主要贡献是:
- 一种domain transfer network ,它通过自动估计一组稀疏控制点对图像进行纹理样式和几何形状的decouple(解耦)。
- 具有adversarial loss的domain transfer的texture style transfer和 image warping的联合学习
- 通过对人脸识别性能的定量评价表明,该方法在传递纹理样式和变形后保留了识别信息。
2.related work
2.1 Automatic Image Warping
Parametric methods估计了少量的全局变换参数,因此不能处理fine-grained local的形变。
dense deformation需要预测变形网格中的所有变形,其中大部分是无用的,很难估计。
Landmark-based:their method requires pre-detected landmarks as input.
2.3 Caricature Generation
近年来,随着GANs的成功,一些工作尝试将style transfer networks应用于image-to-image caricature generation,如[1],[2]。然而,由于这些网络不适用于large spatial variation的问题,它们的结果存在视觉质量差的问题。
3.Methodology
文中提到的各个符号的含义:
3.1 Generator
- 生成器一共包含三个部分:content encoder Ec,decoder R,warp controller.
- image
Texture Style Transfer
我们采用无监督的方法从feature map 中disentangle风格表示,这样我们可以将输入的照片转换为在漫画中呈现的不同的纹理样式。在训练中latent style code s是正态分布的随机取样。R中的multi-layer perceptron解码s以生成R中的自适应实例标准化(AdaIN)层的参数。
为了防止和R在纹理渲染过程中丢失语义信息,我们结合了 identity mapping loss和reconstruction loss去规范和R。
Automatic Image Warping
warp controller是两个完全连接层的子网。其输入是,这个控制器学习去估计k个控制点和residual flow(???),其中和是在u-v space(???) 中的二维向量。 使我们的目的点,其中。然后可以通过thin-plate spline interpolation(薄板样条插值)计算大小为H×W的grid sampler(网格采样器):
- q:表示target image中像素的u-v location
- f(q):给出original image中像素q的逆映射
- ,是一个核函数。
- w,v,b 是的最小化。
利用逆映射函数f(Q)构造网格样本,变形的图片为,这可以通过 bi-linear sampling去生成。
###3.2 Discriminator(感觉理解会有偏差)
Patch Adversarial Loss
(适合学习视觉风格转换)
(具有3个滤波器、步幅为1的1×1卷积层的单独分支连接到鉴别器的最后卷积层,以输出D1,D2,D3用于patch adversarial loss。)
我们使用一个全卷积网络作为一个patch discriminator。它被训练为3级分类器,以扩大生成的图像和真实照片的样式之间的差异。设D1,D2和D3分别表示漫画,照片和生成图像这三类的对数。
Identity-Preservation Adversarial Loss
虽然patch discriminator适合学习视觉风格转换,它未能捕捉到不同身份的显著特征。根据不同的人的面部特征,不同的人实际上会有不同的风格。为了结合身份保留与风格学习,我们提出了将鉴别器培养为3M级分类器,(M是人身份的数量)第一,第二和第三M类对应于真实照片、真实漫画和假漫画的不同身份。表示真实照片和卡通图的labels。
(D(y; x)表示给定图像x的类y的对数。)
这鉴别器以告知真实照片,真实漫画,生成的漫画以及图像中的身份之间的差异。
最后,利用以下目标函数对系统进行端到端优化:
4 Experiments
Dataset
我们使用的是WebCaricature数据集,包含6042张漫画和5974张人脸照片。首先我们将该数据集里的图片按照左眼、右眼、鼻子、左嘴角、右嘴角这五个点进行对齐处理。(由于原数据集中的17个landmarks中含有的坐标是左眼左角、左眼右角,所以将其两个值进行平均来得到左眼坐标。右眼坐标处理方式相同。)接着我们将图片resizes到256×256。
在训练是本文使用的是126个人物(3016张人物照片和3112张漫画),在测试是使用剩余的126个人物(2958张人物照片和2930张漫画)
实验细节
我们的网络结构是在MUNIT[3]模型上修改的。
下图表示为上图中各个符号的具体操作:
-
我们在content encoder中使用 Instance Normalization (IN)
-
在decoder中使用Adaptive Instance
Normalization (AdaIN) ,但是在style encoder中没有使用归一化. -
style decoder (多层感知器)具有两个隐藏的完全连接的128个滤波器层,没有归一化,并且warp controller只有一个隐藏的完全连接的128个滤波器层,具有Layer Normalization
-
我们在discriminator中使用Leaky Relu(slope=0.2),但是在其他模块中使用ReLU
-
在tensorflow中使用Adam优化器,
-
训练的step为100000
-
学习率设置为0.0001,并且在step为50000时线性地降到0。
-
-
控制点(control points)k=16
[1].Photo-to-caricature translation on faces in the wild.
[2].CariGAN: Caricature Generation through Weakly Paired Adversarial Learning.
[3].Multimodal unsupervised image-to-image translation