美颜换妆之BeautyGAN

时间:2024-04-13 19:52:48

论文:BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network

官网:http://liusi-group.com/projects/BeautyGAN

Github:https://github.com/Honlan/BeautyGAN

 

美颜换妆之BeautyGAN

论文提出了一种基于GAN的方式的化妆迁移的方法BeautyGAN,效果优于传统的Cycle-GAN。

 

主要贡献:

  1. 基于GAN实现了自动的换装,实验表明,BeautyGAN不仅高效,而且生成质量优于目前最好的方法。
  2. 通过在局部区域应用像素级别的直方图loss,取得了实例级别的风格变换。该实例级别的变换策略也可以应用于风格迁移,属性变换等其他任务。
  3. 贡献了3834张高清图片的换妆数据集Makeup Transfer(MT)

 

网络结构:

美颜换妆之BeautyGAN

生成器G为两个输入和两个输出的网络结构,中间的模块共享权重。生成器G中还使用了IN(instance normalization)模块。生成器的输入图片大小为256*256,输出图片大小也是256*256。

判别器D为70*70的PatchGANs。

 

损失函数:

假设未化妆图片为A,A ⊂ RH×W ×3 

化妆图片为B,B ⊂ RH×W ×3

整个换妆问题可以定义为,

 

美颜换妆之BeautyGAN

Isrc表示需要换妆的人脸图片,表示ID图,

Iref表示化好妆的参考图,

IBsrc表示将原图Isrc进行了图B的操作,即化妆操作,也就是我们真正需要的输出结果。

IAref表示将参考图Iref进行了图片A的操作,即去妆操作

 

BeautyGAN整体loss由4部分loss组成,对抗loss(adversarial loss),循环GAN loss( cycle consistency loss),感知loss( perceptual loss) ,换妆约束loss(makeup constrain loss) 。

美颜换妆之BeautyGAN

其中,α = 1, β = 10,γ = 0.005

 

对抗loss(adversarial loss):

美颜换妆之BeautyGAN

由于生成模型有2个输出组成,所以判别器也是有2个组成,DA和DB。

由于训练过程中,该loss是基于log函数的loss,很容易出现负值,因此,使用MSE loss对DA和DB分别进行优化。

美颜换妆之BeautyGAN

为了使得判别器的训练更加平稳,这里还引入了普归一化spectral normalization,

美颜换妆之BeautyGAN

σ(W ) 表示w的归一化操作。h表示每一层的输入。

 

循环GAN loss( cycle consistency loss):

美颜换妆之BeautyGAN

整个的训练过程,先通过输入的图片(Isrc,Iref)生成妆容风格互换后的图片G(Isrc,Iref)。然后将互换妆容风格的图片再输入生成器中,就会将妆容风格又互换回来G(G(Isrc,Iref)),也就是说经过2次互换,又回到了原始的输入图片。

Cycle loss的目的就是保证2次换妆后的输出和原始输入一样。

美颜换妆之BeautyGAN

其中,dist表示L1或者L2。

 

感知loss( perceptual loss):

美颜换妆之BeautyGAN

Flijk 表示模型的第l层,位置<j,k>处的第i个滤波器。

 

换妆约束loss(makeup constrain loss):

首先使用PSPNet 这样的分割模型,对人脸区域进行分割,即Face parsing 。可以分别提取出嘴巴,眼睛,人脸这3个部位。然后分别对这3个部位进行直方图Histogram loss的计算。

美颜换妆之BeautyGAN

其中,λl = 1, λs =1, λf = 0.1

◦ 表示elemetwise的乘法操作,

item表示{lips, shadow, f ace}

 

为什么要进行Face parsing操作?

  1. 背景和头发区域的像素和换妆是没有关系的。
  2. 人脸换妆不仅是一个全局的风格变换,更是人脸不同区域的独立风格的变换。

First, pixels in background and hairs have no relationship with makeup. If we do not separate them apart, they
will disturb the correct color distribution. Second, facial makeup is beyond a global style but a collection of several independent styles in different cosmetics regions.

为什么要使用Histogram loss,而不是MSE loss?

If we directly adopt MSE loss on pixel-level histograms of two images, the gradient will be zero, owning to the indicator function, thus makes no contribution to optimization process. Therefore, we adopt histogram matching strategy that generates a ground truth remapping image in advance.

 

Makeup Transfer(MT) 数据集:

美颜换妆之BeautyGAN

该数据集一共包含3834张图片,其中1115 张没有化妆,2719 张有化妆。图片大小为361*361。从里面随机选出100张未化妆的,250张化妆的作为测试集。并且附带分割的mask图片。

美颜换妆之BeautyGAN

 

实验结果:

美颜换妆之BeautyGAN