【论文笔记】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 Rwarp controller.
  • image x R H × W × C x \in R^{H×W×C}

Texture Style Transfer

我们采用无监督的方法从feature map E c ( x ) E_c(x) 中disentangle风格表示,这样我们可以将输入的照片转换为在漫画中呈现的不同的纹理样式。在训练中latent style code s N ( 0 , I ) \sim N(0,I) 是正态分布的随机取样。R中的multi-layer perceptron解码s以生成R中的自适应实例标准化(AdaIN)层的参数。

为了防止 E c E_c 和R在纹理渲染过程中丢失语义信息,我们结合了 identity mapping loss和reconstruction loss去规范 E c E_c 和R。
L i d t p = E x p X p [ R ( E c ( x p ) , E s ( x p ) ) x p 1 ] L_{idt}^p = E_{x^p \in X^p}[||R(E_c(x^p),E_s(x^p))-x^p||_1]
L i d t c = E x c X c [ R ( E c ( x c ) , E s ( x c ) ) x c 1 ] L_{idt}^c = E_{x^c \in X^c}[||R(E_c(x^c),E_s(x^c))-x^c||_1]

Automatic Image Warping

warp controller是两个完全连接层的子网。其输入是 E c ( x ) E_c(x) ,这个控制器学习去估计k个控制点 p = p 1 , p 2 , . . . , p k p={p_1,p_2,...,p_k} residual flow(???) Δ p = Δ p 1 , Δ p 2 , . . . , Δ p k \Delta p={\Delta p_1,\Delta p_2,...,\Delta p_k} ,其中 p i p_i Δ p i \Delta p_i 是在u-v space(???) 中的二维向量。 p = p 1 , p 2 , . . . , p k p \prime={p_1\prime,p_2\prime,...,p_k\prime} 使我们的目的点,其中 p i = p i + Δ p i p_i\prime=p_i+\Delta p_i 。然后可以通过thin-plate spline interpolation(薄板样条插值)计算大小为H×W的grid sampler(网格采样器):
f ( q ) = i = 1 k w i ϕ ( q p i ) + v T q + b f(q)=\sum_{i=1}^{k}w_i\phi (||q-p_i\prime ||)+v^Tq+b

  • q:表示target image中像素的u-v location
  • f(q):给出original image中像素q的逆映射
  • ϕ ( r ) = r 2 l o g ( r ) \phi (r)=r^2log(r) ,是一个核函数。
  • w,v,b 是 j H × W f ( p j ) p j 2 \sum_{j}^{H×W}||f(p_j\prime)-p_j||^2 的最小化。

利用逆映射函数f(Q)构造网格样本,变形的图片为 G ( x , s ) = W a r p ( R ( E c ( x ) , s ) , p , Δ p ) G(x,s)=Warp(R(E_c(x),s),p,\Delta p) ,这可以通过 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分别表示漫画,照片和生成图像这三类的对数。
L p G = E x p X p , s S [ l o g D 1 ( G ( x p , s ) ) ] L_p^G=-E_{x^p \in X^p,s\in S}[logD_1(G(x_p,s))]
L p D = E x c X c [ l o g D 1 ( x c ) ] E x p X p [ l o g D 2 ( x p ) ] E x p X p , s S [ l o g D 3 ( G ( x p , s ) ) ] L_p^D=-E_{x^c\in X^c}[logD_1(x_c)]-E_{x^p\in X^p}[logD_2(x_p)]-E_{x^p\in X^p,s\in S}[logD_3(G(x_p,s))]

Identity-Preservation Adversarial Loss

虽然patch discriminator适合学习视觉风格转换,它未能捕捉到不同身份的显著特征。根据不同的人的面部特征,不同的人实际上会有不同的风格。为了结合身份保留与风格学习,我们提出了将鉴别器培养为3M级分类器,(M是人身份的数量)第一,第二和第三M类对应于真实照片、真实漫画和假漫画的不同身份。 y p , y c 1 , 2 , 3 , . . . , M y^p,y^c\in {1,2,3,...,M} 表示真实照片和卡通图的labels。
L g G = E x p X p , s S [ l o g D ( y p ; G ( x p , s ) ) ] L_g^G=-E_{x^p\in X^p,s\in S}[logD(y_p;G(x_p,s))]
L g D = E x c X c [ l o g D ( y c ; x c ) ] E x p X p [ l o g D ( y p + M ; x p ) ] E x p X p , s S [ l o g D ( y p + 2 M ; G ( x p , s ) ) ] L_g^D=-E_{x^c\in X^c}[logD(y_c;x_c)]-E_{x^p\in X^p}[logD(y_p+M;x_p)]-E_{x^p\in X^p,s\in S}[logD(y_p+2M;G(x_p,s))]
(D(y; x)表示给定图像x的类y的对数。)

这鉴别器以告知真实照片,真实漫画,生成的漫画以及图像中的身份之间的差异。

最后,利用以下目标函数对系统进行端到端优化:
m i n G L G = λ p L p G + λ g L g G + λ i d t ( L i d t c + L i d t p ) min_G L_G=\lambda_pL_p^G+\lambda_gL_g^G+\lambda_{idt}(L_{idt}^c+L_{idt}^p)
m i n D L D = λ p L p D + λ g L g D min_D L_D=\lambda_pL_p^D+\lambda_gL_g^D

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优化器, β 1 = 0.5 , β 2 = 0.9 \beta_1=0.5,\beta_2=0.9

  • 训练的step为100000

  • 学习率设置为0.0001,并且在step为50000时线性地降到0。

  • λ g = 1.0 , λ p = 2.0 , λ i d t = 10.0 , \lambda_g=1.0,\lambda_p=2.0,\lambda_{idt}=10.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

猜你喜欢

转载自blog.csdn.net/weixin_42105640/article/details/88050517