faceswap人脸替换使用教程

下载faceswap
github链接

环境安装
项目下有四个文件: 
requirements-gpu-python35-cuda8.txt 
requirements-gpu-python36-cuda9.txt 
requirements-python35.txt 
requirements-python36.txt 
根据你的python版本还有训练是否使用gpu来安装这个里面的库 
基本上安装的坑网上都有答案,这里大概贴一下:

1.人脸识别深度学习所需的py库还有包:
opencv(cv2)
numpy
cmake
boost
dlib
face_recognition
TensorFlow

pip install --upgrade setuptools
pip install opencv-python
pip install numpy
人脸识别的需要安装dlib这个包,这个包又依赖cmake,boost
cmake安装:
https://cmake.org/download/  cmake下载安装
boost安装:
https://www.lfd.uci.edu/~gohlke/pythonlibs/
下载对应的版本,到本地目录下运行
pip install boost_python-1.65.1-cp35-cp35m-win_amd64.whl

安装 dlib :
如果出现 utf-8 错误:去到安装的 python 目录下 \Lib\site-packages\pip\compat 修改 __init__.py,大概75行左右,修改 #return s.decode('utf_8') 为 return s.decode('cp936')
如果出现 vsc++ 错误,安装 vs2015。。。因为编译dlib需要c++编译器,记得安装提示勾选开发 C++ 桌面程序
pip install dlib

pip install face_recognition
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
使用
看文档分为三个部分 
- 提取 extract 
- 训练 train 
- 替换 convert

提取
# To convert trump:
python faceswap.py extract -i ~/faceswap/photo/trump -o ~/faceswap/data/trump
# To convert cage:
python faceswap.py extract -i ~/faceswap/photo/cage -o ~/faceswap/data/cage
1
2
3
4
上面的是代码里的示例,将收集好的图片目录~/faceswap/photo/trump,使用 exteact 命令将其提取转换成框架所需要的大头照,因为收集来的图片可能有半身全身的图片,统一处理成大头照,像这样: 


训练
python faceswap.py train -A ~/faceswap/data/trump -B ~/faceswap/data/cage -m ~/faceswap/models/
# or -p to show a preview
python faceswap.py train -A ~/faceswap/data/trump -B ~/faceswap/data/cage -m ~/faceswap/models/ -p 
1
2
3
使用 train 参数来指定 A,B 目标目录,-m 代表最后生成的模型路径 ~/faceswap/models/,最后生成的模型是这样的 
 
A-输入目标人物 
B-输出的效果人物

替换
python faceswap.py convert -i ~/faceswap/input/ -o ~/faceswap/output/ -m ~/faceswap/models/
1
-i 指定输入的图片目录路径,-o 指定输出的替换图片路径, -m 指定训练好的模型路径 
convert 里面有很多参数,具体可以到目录下的 /scripts/convert.py 查看

parser.add_argument('-M', '--mask-type',
                            type=str.lower, #lowercase this, because its just a string later on.
                            dest="mask_type",
                            choices=["rect", "facehull", "facehullandrect"],
                            default="facehullandrect",
                            help="Mask to use to replace faces. (Masked converter only)")
1
2
3
4
5
6
像上面的这个传参,指定了替换遮罩的类型,例如最后加上 -M facehullandrect

python faceswap.py convert -i ~/faceswap/input/ -o ~/faceswap/output/ -m ~/faceswap/models/ -M facehullandrect
1
当然如果你想偷懒试试不想训练的话
可以下载:github这个项目已经训练好的模型 
把里面的model文件夹目录复制到faceswap下面,这样就不用通过训练 train 产生模型了,但是这个是川普对尼古拉斯的人脸替换

效果
 


当然还有优化的地方比如替换后的效果可以使用opencv让其面部和原图更切合,完全看不出是遮罩
--------------------- 
作者:我叫干脆面 
来源:CSDN 
原文:https://blog.csdn.net/sinat_26918145/article/details/79591717 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值