先来猜猜看。
下面这张照片中的人,是真实存在的,还是算法生成的?
答案是通过StyleGAN算法生成的。
这个人,在世界上并不存在。
没错——
头发、皱纹、光线、表情等等,都是AI算法自己生成的。
完全看不出跟真人有什么区别。
这就是人脸属性编辑算法的强大之处。
大家可以登录下面这个网站直接体验。
https://thispersondoesnotexist.com/
每刷新一次,都会随机生成这么一张照片。
抖音上很火的性别转换特效,还有变老人、变小孩特效。
都是这种人脸属性编辑算法实现的。
StyleFlow 算法介绍
今天我们来讲讲 StyleFlow 算法,是基于 StyleGAN 算法的。
也是一个非常牛逼的人脸属性编辑算法。
不仅可以瘦脸、美白。
还可以编辑自己的表情、发型、角度、性别等。
先来看看马斯克的各种变脸:
效果非常强大!
算法原理是在隐空间(latent space)控制隐藏特征(latent code)来控制图片的属性。
用人话说就是,将图片的各种属性进行分解,分别编辑,避免一个属性变化影响另外一个属性。
比如我们编辑一张人脸,表情、头发、性别、肤色、年龄、光线等都是照片的属性。
算法将这些属性进行解耦分类,分别控制编辑,得到我们想要的效果。
具体可以查看论文:
https://arxiv.org/abs/2008.02401
运行算法
我们来分别看看linux环境和windows环境,怎样来运行算法。
1、linux环境
第一步:下载代码
项目地址:
https://github.com/RameenAbdal/StyleFlow
第二步:搭建环境
需要配置PyTorch、TensorFlow等。配置信息都在根目录下面的 environment.yml 文件中,我们根据这个文件安装即可。
conda env create -f environment.yml
安装过程中如果碰到插件错误,可以单独安装插件。比如:
# 单独安装torch插件 pip install torch==1.1.0 -f https://download.pytorch.org/whl/torch_stable.html # 单独安装tensorflow-gpu插件 conda install tensorflow-gpu==1.15.0
还要搭建StyleGAN2 的环境,跟上面一样的搭建思路。
项目地址:
https://github.com/NVlabs/stylegan2
第三步:下载训练好的模型权重文件。
实现上方动图的效果。
我们使用的权重文件是stylegan2-ffhq-config-f.pkl,可以实现人脸属性编辑。
文件要登陆谷歌下载,知道大家fq不易,贴心的我给大家放到了百度云盘里面,大家可以直接下载。
链接(提取码:6666):
https://pan.baidu.com/s/10bwCYPLzN7fbu3Dd0Eh3MA
如果想要尝试其他效果,比如编辑汽车属性,可以到下面网址下载对应的权重文件
权重文件:
https://drive.google.com/drive/folders/1QHc-yF5C3DChRwSdZKcx1w6K8JvSxQi7
第四步:运行程序。
python main.py
就会打开下方界面。
2、Windows10环境
如果你是Windows10环境,跟着上面部署,大概率会非常不顺利,别问我是怎么知道的。
那个凌晨4点的晚上——
来看看Windows10环境怎样部署这个算法。
第一步:下载代码
项目地址:
https://github.com/justinjohn0306/StyleFlow-Windows-10
第二步:搭建环境
conda env create -f env_windows.yml conda activate styleflow conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch
继续安装streamlit插件,用来可视化界面
pip install streamlit
第三步:运行项目
cd webui streamlit run app.py
现在就可以编辑自己想要编辑的图片效果了。