c#结合emgucv进行人脸检测_结合风格迁移与人脸检测实时变脸

910b4058ec6880cc2b2e2e61a78f92b7.png

"变脸"是川剧表演的特技之一,要练就真正的变脸,大概要深厚的基本功,那就是唱,念,做,打都要十分精通,所以想要变脸也不是那么容易的,不过现在好了,有了"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风格,并且不保存视频。

风格

fb02596a68c46d788d87b5ff7326c130.png

可通过在命令行输入`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. 一些结果

d9964e0df3df5ccdb0b857f417252d83.png

909e770c6818e8595860cc8acbb0303d.png

b3d6647a8cc028d34528872519f3c7a4.gif

9d84afe367c8d3cb1b750198d48dfaa9.gif

977e993109bfc07414721495bfdad5ab.gif

4. 参考

misgod/fast-neural-style-keras​github.com 结合风格迁移与人脸检测实时变脸​mp.weixin.qq.com
958de7a64df8fc91b9d5ff54646817c7.png
https://github.com/opconty/facechanging​github.com
2be5d8e73c4eeeefec6cdc1f76035c67.png

opconty/facechanging

opconty/facechanging​github.com
2be5d8e73c4eeeefec6cdc1f76035c67.png

备注:原始图像视频均来自网络,如有侵权,请联系立即删除, 谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值