"变脸"是川剧表演的特技之一,要练就真正的变脸,大概要深厚的基本功,那就是唱,念,做,打都要十分精通,所以想要变脸也不是那么容易的,不过现在好了,有了"facechanging",你想变脸就变脸。
facechanging主要受到神经网络风格迁移的启发,加上一直在做物体检测,最近无聊之中无意间看到一篇论文,Perceptual Losses for Real-Time Style Transfer and Super-Resolution,都是好多年前的了,本着好玩儿打发无聊时间就弄了个变脸,论文提出的风格迁移实现版本是实时的。
只要安装了python3.5以上,配置了tensorflow1.5+和keras,以及opencv就可以跑起来了,虽然tensorflow用的是v1,不过v2也是可以兼容的。
如有时间,后续计划使用QT做个客户端出来,感兴趣的道友欢迎与我联系加入或者github PR
0. 处理方法
原始训练的权重文件每一个大小就有66.4M,由于我只需要推理阶段,所以将loss net从原始网络中移除,同时将权重转换为pb格式,大小骤降到每个风格7.4M,共有四种风格也就不到30M。
所有代码,权重文件和素材都可以从github源码仓库下载,如果使用pip安装,则不需要下载权重文件,已经包含在whl包里面了。
1. 命令行参数
首先通过 pip install facechanging 进行安装,或者直接到笔者的github下载源码和素材。然后在命令行输入facechanging以及几个参数,主要有:
- - 输入类型(-i):支持图像(image),视频(video)或者直接调用摄像头(参数值为camera,默认)
- - 风格类型(-style):原作者提供了四种风格,参数值分别为:des, la, wave, mirror, 其中mirror为默认。各风格如下图所示
- - 图像地址(-img):如果输入类型为image,那么这个参数不能为空,需要指明图像地址
- - 视频地址(-video):如果输入类型为video, 那么这个参数不能为空,需要指明本地视频所在路径
- - 保存地址(-save):可以为空,如果不为空,则转换后的图像或者视频会保存起来,视频后缀名需为mp4,若为空则不保存
由此可见,如果只在命令行输入facechanging那么默认打开摄像头,使用mirror风格,并且不保存视频。
风格
可通过在命令行输入`facechanging -h`查看各个参数详情:
glj@ubuntu:~$ facechanging -h
Using TensorFlow backend.
usage: facechanging [-h] [-i {image,video,camera}]
[-style {des,la,mirror,wave}] [-img IMAGE_PATH]
[-video VIDEO_PATH] [-save SAVE_PATH]
Face Changing Input arguments parser
optional arguments:
-h, --help show this help message and exit
-i {image,video,camera}, --input-type {image,video,camera}
input type
-style {des,la,mirror,wave}, --style {des,la,mirror,wave}
style you want to transfer to
-img IMAGE_PATH, --image-path IMAGE_PATH
image path if input type is image
-video VIDEO_PATH, --video-path VIDEO_PATH
video path if input type is video
-save SAVE_PATH, --save_path SAVE_PATH
save path for result image or video
2. 使用示例
例子1, 输入图像fc.jpg,使用des_glaneuses风格, 保存为fc_des.png,即:
facechanging -i image -img ./images/fc.jpg -style des -save ./outputs/fc_des.png
例子2,调用摄像头,使用la_muse风格,保存为camera.mp4,按"q"退出,即:
facechanging -style la -save ./outputs/camera.mp4
例子3, 输入为我预先保存在本地的女神李飞飞TED演讲的截取片段,使用mirror风格,保存为lff_mirror.mp4,按"q"退出, 即:
facechanging -i video -video ./images/lff.mp4 -save ./outputs/lff_mirror.mp4
3. 一些结果
4. 参考
misgod/fast-neural-style-kerasgithub.com 结合风格迁移与人脸检测实时变脸mp.weixin.qq.comopconty/facechanging
opconty/facechanginggithub.com备注:原始图像视频均来自网络,如有侵权,请联系立即删除, 谢谢