这脸啊,我算是玩明白了!
大家好,我是干货不断的 Jack。
昨天,上班改了一天的 bug,头秃的那种,晚饭没来得及吃。
加班到晚上 10 点多,坐着没几个人的末班车地铁回家了。
猜猜这是北京地铁,几号线?
到家 11 点多了,吃了碗泡面,就开始给大家写文了~
一天天贼充实!
不说废话了,今天给大家分享一个新算法 「HyperStyle」。
算法功能和之前分享过的「StyleFlow」类似。
「HyperStyle」还要更逼真一些,直接上效果:
一个美女:
算法可以一键"返老还童":
这效果,你打几分?
可以变年轻,当然也可以反向操作。
一键变老:
再比如换个发型:
最后放一张整体效果图吧:
除了这些,还能进行直接的人脸编辑,戴个眼镜,调整个脸的角度,去个皱纹啥的都可以。
还可以进行动漫风格迁移:
HyperStyle
算法刚开源一周,我就马不停蹄地分享给大家了。
项目地址:
https://github.com/yuval-alaluf/hyperstyle
这脸啊,我算是玩明白了!
这类算法,都是基于 StyleGAN v2 实现的。
为了照顾一些新朋友,这里再说下,我曾经讲解过的基本原理。
整个算法的思想就是,在隐空间(latent space)控制隐藏特征(latent code)来控制图片的属性。
简单点解释就是,一副人脸图片,是由多维特征组成的,比如年龄、性别、光照、肤色、发质等。
为了更好的对数据进行分类或生成,需要对数据的特征进行表示,但是数据有很多特征。
这些特征之间相互关联,耦合性较高,导致模型很难弄清楚它们之间的关联,使得学习效率低下,因此需要寻找到这些表面特征之下隐藏的深层次的关系,将这些关系进行解耦,得到的隐藏特征,即 latent code。
由 latent code 组成的空间就是 latent space。
HyperStyle 就做了这么一件事,解耦特征,控制特征。
算法运行
算法运行,有一定基础的话,很简单。
搭建环境、下载权重、运行算法。
配置好,就可以直接运行了:
python scripts/run_domain_adaptation.py \
--exp_dir /path/to/experiment \
--checkpoint_path=experiment/checkpoints/best_model.pt \
--data_path=/path/to/test_data \
--test_batch_size=4 \
--test_workers=4 \
--load_w_encoder \
--w_encoder_checkpoint_path=pretrained_models/faces_w_encoder.pt \
--restyle_checkpoint_path=pretrained_models/restyle_e4e_ffhq_encode.pt \
--finetuned_generator_checkpoint_path=pretrained_models/pixar.pt \
--n_iters_per_batch=2 \
--restyle_n_iterations=2
具体的步骤,可以看下项目的 readme。
不想搭建环境的话,作者还提供了 Colab,可以直接使用。
当然,用这个得会科学上网。
环境搭建不会的,可以看我之前写过的教程。
以及这篇文章的环境搭建部分的内容:
如果还是不懂,妥!
等我视频吧,我一定教懂~
总结
熬夜肝文,求个再看啦~
感觉不过瘾,可以到这里看看我的历史文章:
https://github.com/Jack-Cherish/PythonPark
我是 Jack,我们下期见~