BeautyGAN:让小姐姐自动上妆

增长营销云存储MySQL

picture.image

每个不会化妆的小姐姐,都有一个变成小仙女的梦想**”**

01

BeautyGAN

本公众号之前发的文章《如何用 TensorFlow 实现 GAN》有 GAN 的介绍。这篇文章介绍的 BeautyGAN 是清华-伯克利深圳学院、中科院、商汤联合发表的用于自动为脸部上妆的特征迁移网络,输入两张图,一张为没有化妆的人脸图片(non-makeup),另一张为参考人脸图片(reference),经过特征迁移网络后输出上妆后的人脸图片,流程如下图所示:

picture.image

中间特征迁移网络的架构如下图所示:

picture.image

传统意义上的 GAN 只包括一个生成器 G 和一个鉴别器 D,二者在互相对抗中不断提升自身能力。从上图看到,BeautyGAN 包括一个生成器(G)和两个鉴别器(DA,DB)。其中生产器需要先将输入图片和参考图片做一次特征迁移,得到两个输出图片,分别对应输入上妆图和参考卸妆图,鉴别器 DA 用于判断参考卸妆图是否为真实图片,鉴别器 DB 用于判断输入上妆图是否为真实图片。输入上妆图和参考卸妆图再次送入生成器 G,得到重建(或还原)图片,理论上重建的图片应当与原始输入图片、参考图片是完全相同的,将它们之间的差异作为 cycle consistency loss 计入生成器 loss,训练时使之最小化。

BeautyGAN 优势在于实现了端到端训练,效果好,产生的图像能以假乱真。不信可以看看下面这组图片:

picture.image

拿超越小姐姐的图片作为输入(第二行第一列),分别同 9 张不同化妆风格的参考图片(第一行图片)经过 BeautyGAN,生成结果见对应参考图片下方,可以看到生成图片的质量近乎真实照片。那么问题来了,哪种风格最适合超越小姐姐?

02

动手实践

官方网站【1】提供了训练数据 MT DATASET,包括 3834 张图片,其中 1115 张未上妆图片和 2719 张上妆图片,分辨率均为 256 x 256。然而遗憾的是官方没有公开训练代码和模型。热心的知乎网友 @张宏伦 奉献了自己复现该论文的 TensorFlow 工程【2】,可以下载预训练模型,快速搭建一个 demo。

工程代码已放到 Github :https://github.com/Honlan/BeautyGAN

预训练模型已放到百度网盘:https://pan.baidu.com/s/1wngvgT0qzcKJ5LfLMO7m8A,提取码 7lip;下载该模型,在工程目录新建文件夹 model,将模型文件放于其中。

软件环境: Python3.6 + TensorFlow1.9 (实测 TF 1.13 也是可以的)

项目中包括 11 张无妆图片(imgs/no_makeup),以及 9 张有妆图片(imgs/makeup);

工程目录结构如下:

picture.image

运行命令:

python main.py --no_makeup ycy.png

你可以把上面 ycy.png 换成其他人脸图片,看看化妆效果如何。

参考:

【1】 http://liusi-group.com/projects/BeautyGAN

【2】 https://zhuanlan.zhihu.com/p/67523051


picture.image

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论