2021-06-15

听说堂妹用AI技术给自己改头换面?

本文章同步更新在个人微信公众号“九点澡堂子”,原创:九点澡堂子

  各位客官好,我是堂妹。
  大家知道,我现在的文章封面基本都是自己的照骗,还是不露正脸的那种。
  俗称"背影杀手"。
  一般这样的,没有别的原因,就是因为丑,起码对于我这样。
  当然,我不仅因为丑,还因为手残。
  作为程序媛,我属于化妆上班那一趴,
  但基本仅限于粉底、口红、眉毛,顶多加个腮红🤷‍♀️。
  十年如一日,没有任何花样。
  再看看我身边的学公关、艺术、人文等专业的女朋友们,
  每天一个妆容,各种风格各式花样,
  再看看自己,约等于没有化妆。
  正常女生,大概率会在有空的时候去B站大学"美妆区"潜心修炼,
  我也曾想去进修过,比如看看我党妹,
  几个小时下来,我发现:「堂」妹和「党」妹,差了不止一个字。
  手残的我,选择放弃。可是我又想看看自己在各式妆容下是什么模样。
  作为程序媛的我,怎能被难倒?
  既然自己干不了,就让AI来替堂妹干!!!
先放一下我在「冰冰老婆」脸上的实验结果。冰冰真的美~**

在这里插入图片描述
看着实验结果,我想了下,从原图的风格,到冰冰脸上,虽说有脸型,发型,还有五官适应性的区别,导致有些妆容打了折扣,但冰冰整体扛的住。

如果原图是100分,冰冰大概是80-90,

我想我自己大概60分就够。

结局,裂开。

看着我自己的效果图,原来AI技术也"手残"。

在我贡献自己的"丑图"前,我们先来学习一下这个「AI妆容迁移」背后的原理!

!!!不许直接拉到最后看答案!!!

项目简介

用GAN对人脸图像按指定的风格进行上妆。项目来源于ACM MM2018。

[BeautyGAN:Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network]

点击此处跳转到论文地址

官网仅仅提供了论文原文和数据集,本文参考的是另一位小哥哥的复现工作。点击此处跳转到代码地址

论文中给出的妆容迁移的结果:
在这里插入图片描述
看上去其实还是挺不错的!!!

原理简介

下面简单介绍一下文章的思路,先上图!!!
在这里插入图片描述
上图就是这篇文章的模型「BeautyGAN」,乍一看有点懵,让我来给各位分析一下~

作者采用的是循环一致性损失,循环一致性呢 ,就像《我侬词》中写的一样:

*你侬我侬,忒煞情多,情多处,热如火。把一块泥,捻一个你,塑一个我。
将咱两个,一齐打破,用水调和。再捻一个你,再塑一个我。
我中有你,你中有我。与你生同一个衾,死同一个椁。”*

说人话就是:A能生成B,B也能重建成A。

在这里A是素颜照,B是上妆照,还能再重建回素颜照,所以循环一致。

论文就是按照这个思想写的,具体如下:

生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,

是近年来复杂分布上无监督学习最具前景的方法之一。

在GAN网络中,生成器想生成以假乱真的图片,鉴别器想鉴别生成器生成的假图片,如此动态博弈就是GAN的核心思想。

首先左边的素颜图像和妆容图像经过生成器模型,得到素颜的“上妆”图和妆容的“卸妆”图。

然后经过两个判别器判断是否为真实的带妆图或者真实的素颜图。

后面再经过相同的生成器模型重建回原图像。

化妆嘛,最重要的肯定是上妆。

那么素颜图像要通过模型不仅要学习到妆容图像的“妆容”还得保持自己的形态不变呀,不然就变成了换脸了。

作者通过PSPNet网络(巧了,该网络我司出品)将素颜照,妆容照和上妆照进行分割,得到面部不同的位置。

然后通过将素颜照的不同位置的内容和妆容照不同位置的颜色结合,得到上妆照(不得不感叹,作者的想法真的是太棒了~)

具体细节可以参考论文哦~

食用指南

1. 环境配置:
python3.6
TensorFlow1.9 #现在只能源码编译了好像,如果大家pip install的话建议用1.13.0的版本
2. Git clone:
git clone https://github.com/Honlan/BeautyGAN.git
3. 预训练模型下载:
https://pan.baidu.com/s/1jhKvpDrLTgKgZSECBl-8vQ
公众号后台回复:「BeautyGAN」获取提取码可直接下载
4. 运行命令:
#进入主目录,xxx为素颜照路径
python main.py --no_makeup xxx.xxx

直接用作者的给的样例,运行结果是这样的:
在这里插入图片描述

害,真的是人美换啥妆容都好看!!!
姐妹们,如果你跟堂妹一样比较手残,只会画一种妆,
那么不妨用这个模型试试其他的妆容,看看哪个风格更合适自己!
兄弟们,拿对象的照片尝试一下,这么多的口红色号供参考.
下次给女朋友买礼物不怕踩雷了!
有人会问,我想换其他妆容可以吗,比如我想要个钮钴禄·甄嬛?
搞起。

(其实差别不大,没找到甄嬛很浓的效果图,这里就皮一下~)

(其实差别不大,没找到甄嬛很浓的效果图,这里就皮一下~)
在这里插入图片描述

实操中需要简单修改几处代码,具体如下:
第12行加入一行代码

parser.add_argument('--makeup', type=str, default=os.path.join('imgs','makeup','vFG56.png'))

在26行左右将

makeups = glob.glob(os.path.join('imgs', 'makeup', '*.*'))

替换为:

makeups = [args.makeup]

运行代码改为:

python main.py --no_makeup xxx.xxx --makeup xxx.xxx
好了,最后给大家show一下我59分的自我实验结果吧,
选了几张不会吓到你们的,过分吓人的留给我自己吧。

在这里插入图片描述

原谅我没有办法说服自己露脸

主要的妆容迁移效果体现在口红和眼影,
大家体验AI技术的魅力即可。

牺牲自己,"娱乐"大家。
希望大家有体会到一点点GAN这个研究方向带来的乐趣,
后续的技术相关文章会附带一些入门论文供大家参考学习。

好啦…今天的文章分享就到这里了,如果想看更多可以移步到微信公众号九点澡堂子 哦~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值