CariGAN: Caricature Generation through Weakly Paired Adversarial Learning论文笔记

CariGAN: Caricature Generation through Weakly Paired Adversarial Learning

CariGAN: Caricature Generation through Weakly Paired Adversarial Learning

传统的漫画生成方法主要采用低层次的几何变换(如图像扭曲)来生成夸张的图像,但在内容和风格上缺乏丰富性和多样性。在本论文中,为了实现合理的夸张和面部变形,采用facial land marks作为约束生成图像的附加条件。此外,我们还设计了一种image fusion mechanism,以鼓励我们的模型将重点放在关键的面部部位,以便在这些区域生成更生动的细节。最后,提出了一个diversity loss,以鼓励模型产生不同的结果,以帮助缓解传统GaN模型的“mode collapse”问题。
在本文中,给出一个人的任意面部形象,我们的首要目标是用合理的夸张和适当的漫画风格来生成令人满意或可信的漫画。

在漫画生成中需要考虑的四个关键方面:

  • Identity Preservation
  • Plausibility: 生成的漫画应该在视觉上是令人满意的或可信的;生成图像的风格应该与普通的卡通或漫画相一致。
  • Exaggeration: input face的不同部位应以合理的方式变形,以夸大人脸的突出特征。
  • Diversity: 给定input face,应该生成不同风格的不同漫画。

本文的主要贡献如下:

  • 由于获取严格paired training data,的困难,我们引入了一种新的Gans训练环境,即weakly paired training(一对输入人脸和地面真实漫画只有相同的身份,但没有像素对像素的对应或姿态对姿态的对应)。
  • 我们提出了一种新的 image fusion mechanism,以鼓励模型同时关注生成的图像的全局和局部外观,并更多地关注人脸的关键部位。
  • 我们提出了一个新的diversity loss,以鼓励我们的模型在风格、颜色和内容上创造出更多样性的漫画。注:diversity loss使输出图像之间的差异成为输入随机噪声差的线性函数。

cGAN:

  • Caricature generation可以看作是一个图像翻译问题,因此可以用条件生成的对抗性网络来建模。
  • cGAN的一个主要问题是模式崩溃问题。解决这个问题关键在于如何学习更丰富的输出模式,并避免多个输入被映射到相同的输出。

3 our model

CariGAN: Caricature Generation through Weakly Paired Adversarial Learning论文笔记

3.1 Adversarial Learning with Weak Pairs(弱对抗性学习)

  • Weakly paired training setting:(x, y) 是一对训练数据,其中x是输入人脸图像,y是对应的漫画;X和y图像大小为256×256,属于同一个人,但两个可以是不同姿势。

  • Adversarial loss: 我们的任务是将一个输入的人脸图像x映射到一个漫画图像xˆ上,使得变量xˆ的分布接近于弱配对地真实卡通图像y的分布。noise:我们首先从高斯分布中提取长度为4的噪声矢量。然后在空间位置重复256×256次,得到 4×256×256的噪声系数Z,然后我们直接连接x和z作为生成器的输入。这种有条件的GaN的对抗性损失可以表述为:
    Ladv=E[logD(y)]+E[log(1D(G(x,z)))]L_{adv}=E[logD(y)]+E[log(1-D(G(x,z)))](此公式非完整)

  • Facial mask as an additional condition
    仅在输入面上进行调节使得很难在输出漫画中学习合理的夸张,所以我们使用facial mask p作为附加条件,并将其与x一起输入生成器G中。facial mask是由17个面部标志组成的二值图像。在掩码中,每个landmark用11×11平方块表示,我们用1填充块中的像素,用0填充背景像素。
    在训练中,我们直接使用真实的卡通图像y的facial mask作为输入,并约束G的输出xˆ在面部夸张和观点上与y相似。具体来说,我们直接连接x,p和z,形成一个8通道映射作为我们生成器的输入。当facial mask作为额外输入时,我们的模型的adversarial loss如下:
    Ladv=E[logD(p,y)]+E[log(1D(p,G(x,p,z)))]L_{adv}=E[logD(p,y)]+E[log(1-D(p,G(x,p,z)))]

  • Content loss: 之前的cGAN是使用L1loss来计算fake image 和 ground-true之间的损失的。虽然我们的cariGAN并不是bijective maping,但是发现使用这个L1loss可以稳定训练,故在我们的carigan中也是用上L1loss,公式如下:
    Lcon=yG(x,p,z)1L_{con}=||y-G(x,p,z)||_1

3.2 Focus on Important Local Regions

虽然cGan能够产生视觉上吸引人的图像,但输出图像中仍然存在许多局部的伪影,如缺少眼睛等。(传统的cGans只限制生成的图像的全局外观看起来像真实的漫画,但不能保证局部面部的现实性和现实性。),我们提出了一种新的图像融合机制(image fusion mechanism),使模型更多地聚焦于重要的局部区域,不仅可以提高生成的图像在全局外观上的质量,而且可以提高其局部外观的质量。它融合了真实图片y的背景部分生成的假图像x^\hat{x}的关键局部部分生成了一个新的additional fake images x^\hat{x}',如figure3所示。CariGAN: Caricature Generation through Weakly Paired Adversarial Learning论文笔记
x^\hat{x}'的计算公式如下:x^=mx^+(1m)y\hat{x}'=m \odot \hat{x} +(1-m) \odot y

接着 x^\hat{x}'被输入到D中(D不仅要区别来自y的x^\hat{x},也要取分来自y的x^\hat{x}')。现在,对抗性损失改为:
LadvIF=E[logD(,y)]+12E[log(1D(p,x^))]+12E[log(1D(p,x^))]L_{adv}^{IF}= E[logD(,y)]+\frac{1}{2}E[log(1-D(p,\hat{x}))]+\frac{1}{2}E[log(1-D(p,\hat{x}'))]
注:x^\hat{x}x^\hat{x}'有相同的weight,如0.5。他们两者都试图愚弄鉴别器D,而D则试图将他们与真实卡通图盘y区分开来。

通过引入图像融合机制,对content loss进行了相应的修正,如下所示:LconIF=(yG(x,p,z))m1L_{con}^{IF}=||(y-G(x,p,z)) \odot m||_1(m是从facial mask p生成的heatmap。)

3.3 Diversity Loss(多样性损失)

在我们的模型中,随机噪声控制图像的颜色和样式。但是模型有时会出现model collapse的问题,也就是说输入噪声可能不会影响最终结果。为了解决这一问题,我们提出了diversity loss。基本思想是鼓励由两种不同的噪声(但具有相同的输入脸和facial mask)产生的两幅假漫画之间的差异是一种线性函数。

多样性损失公式如下:
CariGAN: Caricature Generation through Weakly Paired Adversarial Learning论文笔记
z1z_1z2z_2是不同的noise,x1^=G(x,p,z1),x2^=G(x,p,z2)\hat{x_1}=G(x,p,z_1),\hat{x_2}=G(x,p,z_2),我们从鉴别器D的最后一个卷积层中提取这两个假漫画的特征,即f1=D(x1^,p),f2=D(x2^,p)f_1=D(\hat{x_1},p),f_2=D(\hat{x_2},p)

我们提出的Carigan模型的总体损失可以表述为:
L=LadvIF+LconIF+LdivL=L_{adv}^{IF}+L_{con}^{IF}+L_{div}
为了使我们的方法更易于理解,我们总结了CariGAN在算法中的整个训练过程。CariGAN: Caricature Generation through Weakly Paired Adversarial Learning论文笔记

4 Experiments

4.1 基本设置

Dataset

  • WebCaricature dataset包含252个名人的5974张照片和6042张漫画图像。200名人的图片被用于train,其余的52位名人用来进行test。
  • 所有图像都根据如下方法进行对齐:1)旋转每幅图像,使两只眼睛成一条水平线。2)调整每幅图像的大小,以保证75个像素的两只眼睛之间的距离。3)将原始面部部分作为人脸图像进行裁剪,并将其大小调整为256×256。

实现细节

  • G是以随机噪声、256×256图像和面罩为输入的U-net。中间卷积层和反卷积层通过跳跃连接。
  • D是由几个卷积层组成。
    注意:
    (1)每个卷积层后面都有一个Batch Normalization层和Leaky ReLU层。
    (2)每个反卷积层后面都有一个Batch Normalization层和ReLU层。我们使用Tanh作为G输出层的**函数,并使用Sigmoid作为D的最后一层。(3)In Adam, β = 0.5 and the momentum is set to 0.9.
    (4)学习率为0.0002,在训练过程中固定。