玩转StyleGan2:人脸编辑器,操控喜怒哀乐!
StyleGAN虽然看起来很强大,但是这东西到底能干啥?估计不少人都有这样的疑问。今天来介绍下“人脸编辑器” ,也许能发现一些用途。
今天介绍的想项目是 generators–with–stylegan2 ,通过这个项目可以生成各种类型的人脸,并且控制这些人脸的脸部“状态”。这些状态包括,微笑,年龄,抬头低头,左右转,性别,眼睛闭合,喜怒哀乐... 总共21种维度维度。
这个项目的配置和Stylegan2是完全一样滴,所以不再赘述。重点是说说不一样的地方。因为滴滴云到期很久了,这篇文章的演示环境换回了本地电脑。本地显卡为:1070 8G ,系统win10 。本地文件路径为:G:\StyleGAN\ 。然后,话不多少直接开干!
1. 获取源代码
Win+R 打开运行,输入cmd打开命令行,然后输入git命令:
git clone https://github.com/a312863063/generators-with-stylegan2.git faceedit
2. 生成不同类型人脸
获取到源代码之后,打开文件夹可以到如下的目录结构。
先对这些文件做一个简单的介绍。
dnnlib :项目的核心目录
examples: 放了一些生成的例子
latent_directions:控制表情的向量文件。
networks: 模型目录。
results:生成结果目录
edit_photo.py:人脸编辑脚本
main.py:人脸生成脚本
里面还有一个Windows安装使用教程.docx,大家可以参考下!
生成人脸需要三个步骤
第一个:下载Stylegan的模型放置到networks文件夹里面。我这里用的是上一篇中获取Stylegan的默认模型。
第二个:修改配置文件custom_ops.py
箭头这一行,替换成自己的VS2017的路径。
第三个:修改生成脚本main.py
修改49行,这里的名称和你networks下面的模型名称相对应。
修改46、47行, 可以改变保存图片和保存向量文件的目录。
修改50行的数字,可以改变单次生成的图片数量。
修改完成后,打开Anaconda 命令行,激活虚拟环境,我这里用的是base。
cd G:\StyleGAN\faceedit
python main.py
两行命令下去,显卡就心领神会,开始呼啸起来了。
稍等片刻就可以在results下面看到50张高清人脸了。这些人脸是随机生成的,每次运行脚本都会不一样。
除了人脸之外,这个文件夹里还有一个叫geneate_codes这样一个文件夹。
里面是和图片同名的txt文件,打开文件可以看到一堆数字,作者文档里说的是“生成码” (潜码) ,英文是latent vector 。不管叫什么,这个东西对后面的步骤至关重要,可以认为这一串数字就代表特定的人。
如果你想要生成其他类型的人脸。获取对应的模型,然后把名字改为 stylgan2–ffhq–config–f.pkl 就可以使用其他的模型了。比如我这里用了一个可以生成明星脸的模型。
替换模型后重新运行命令 python main.py 就会生成新的头像。
3. 编辑人脸
有了上一步生成的潜码就可以进行人脸编辑了。操作前需要修改一下edit_photo.py文件。
39行,加载的模型。你上面生成的时候用什么模型,这里就用什么模型。
52行,使用的潜码。这里就是根据头像的名称去找到对应的txt文件名。
82行,选择需要调整的属性。黄色字体里面有非常详细的注释,只需要把对应的名字替换箭头所指的地方即可。
修改好上面的代码后,在命令行下面输入命令:
python edit_photo.py
我这里选择的图片如下:
稍等片刻,results文件夹下就会多出一个文件夹。文件夹的命名为就是你调整的属性的名字。切换不同的属性,就会生成不同的文件夹。里面包含了若干张图片。下面就举几个例子!
不同微笑 :
不同侧脸:
睁眼闭眼:
除此之外还有很多属性可以修改。修改完成后的头像依旧是1024x1024的高清图片。如果把这些源代码都变成一个可视化界面的话,感觉也有点意思了。虽然依旧不知道能干嘛,但是比之前单单生成图片已经进了一步了。到了这一步,我们已经可以凭空生成一张高清虚拟人脸,并且能够随意控制她的表情。
既然现在已经能操控虚拟人物的表情了,那么我可以操作现实人物的表情吗?比如随意操控女神的表情,或者让蒙拉丽莎大笑起来么!答案必须是:yes,我们下一篇文章见!
好了,记得把该点的按钮都点一点哦!