大数据,机器学习,人工智能人工智能微刊人工智能(语言识别&图像识别)

faceswap - 郭大爷和马爸爸换脸记

2019-05-07  本文已影响3人  YANWeichuan

环境准备

  1. 安装tensorflow 1.2或者1.3以上的版本,带GPU支持,本次实验使用virtualenv环境
  2. 下载faceswap的的源代码
    git clone https://github.com/deepfakes/faceswap.git
  3. 使用步骤说明:https://github.com/deepfakes/faceswap/blob/master/USAGE.md
  4. 准备视频,通过腾讯或者爱奇艺播放器录两段视频,一段是郭大爷的坑王驾到,一段是马爸爸的开学啦

换脸步骤

1. 从视频中提取图片

输入是视频,输出是每一帧图片

$ python tools.py effmpeg -a extract -i video/guodegang.mov -o video/guodegang/
$ python tools.py effmpeg -a extract -i video/mayun.mov -o video/mayun/

2. 扣人脸,并清洗

从每一帧图片中把人脸扣出来

$ python faceswap.py extract -i video/guodegang/ -o  data/guodegang
$ python faceswap.py extract -i video/mayun/ -o  data/mayun

清洗人脸图片,把一些不是人脸或者质量不高的人脸图片删掉,否则影响后面的训练

3. 训练

输入是两个抠出来的人脸,输出是一个模型,可以用展示中间训练图片变化的细节,1080的显卡大概要训练个一天多

$ python faceswap.py train -A data/mayun/ -B data/guodegang/ -m data/models/

4. 换脸

注意input为ffmpeg extract出来的原图

$ python faceswap.py convert -i ./video/mayun/  -o ./output/ -m ./data/models   -M facehullandrect

5. 复原

把替换人脸后的图片打包成视频

$ ffmpeg -i ./output/mayun.mov_%5d.png -c:v libx264 -vf "fps=25,format=yuv420p" ./mayun.mp4

效果如下动图,贴合度都还可以,主要选的两个主角的肤色差距较大,显得不太自然

图片转gif动图

convert -delay 15   *.png output.gif
上一篇下一篇

猜你喜欢

热点阅读