2018年1月,有人推出了Windows程序FakeApp,允许用户很轻松地自制换脸视频,即使没有任何AI方面的知识,这大大降低了deepfake的使用门槛。

文章内容:转载于简书 https://www.jianshu.com/p/c2afe8919a35

环境搭建

  1. 首先需要安装的便是这个能让你傻瓜式换脸的应用FakeApp了,点击链接进入官网。安装过程中并没有什么值得特殊强调的地方,咱们一笔跳过。
  2. 接下来就是和GPU相关的CUDA8了,选择相应的系统版本便可以下载安装。在安装方式这一步建议大家使用本地安装exe[local]的方式,exe[network]的安装方式…可能有点慢。默认情况下CUDA会自动帮你添加到环境变量,如果没有,请手动添加,这一步非常重要。
    至此,所有和环境相关的部署咱们已经大功告成了。

应用简介

先简单介绍一下FakeApp的三个模块
GET DATASET: 获取数据集,在这一步中,你的素材视频将被逐帧切割成图片,程序会自动识别并提取出图片中人物的面部数据。
TRAIN: 训练模型,根据第一步中生成的数据集,机器会自动地帮你训练模型,从而进行面部的替换。
CREATE: 生成视频,这一步便是整个实验中最为神奇的地方,他能根据你训练出的模型,将给定视频素材中人物的面部进行替换,最后生成替换后的视频。
开始实验
1. 第一步,生成数据集
先创建一个文件夹fake,将素材视频存放进去

咱们姑且用A和B来区分这两个小姐姐好了,按照FakeApp的提示,将素材路径填入,点击EXTRACT,接下来无需任何操作,等程序跑完就行了。你会看到fake文件夹中多出了一个dataset-A的目录,这便是我们待会儿训练模型时需要的数据集了。A的训练集生成后,重复这一步骤,生成B的训练集。至此,咱们第一步结束了。

2. 第二步,训练模型
在这一步开始前,你需要在fake文件中创建一个model目录,这里会存放模型文件。和之前一样,依次填入文件夹路径,下面的参数无需修改,使用默认配置即可。点击TRAIN,等待程序初始化后,会弹出一个预览框,这时,你几乎可以高枕无忧了。刚开始你会发现预览框最右侧的一列会非常模糊,不要紧,模型才刚开始训练。Loss ALoss B代表模型的差异值,咱们无需关注数值产生的原理,你只需要知道,两者之差越小,说明模型训练的越好。

训练模型是一个很耗时间的活儿,以我为例,每个数据集各350张左右的面部图像,训练了大概13个小时,差异值稳定在了0.1%左右。如果你想要更好的效果,建议每个数据集不低于500张,至于如何确定数据集的大小,可以看上面的示例图A,图中的360代表dataset-A的数据量。
值得一提的是,训练进度会被实时保存下来,也就是说你可以随时暂停训练,在预览窗口中,输入英文小写字母q即可保存退出,下次想要继续训练的话,打开FakeApp再点击TRAIN即可。
——-———————————分割线——-———————————

13个小时过去了,最右一列已经十分清晰了,效果也令人满意,要不咱们先合成一个视频试试?

——-———————————分割线——-———————————
3.在model中填入我们先前训练好的模型路径,Video则填入你想要替换的视频路径,依旧是傻瓜式,点击CREATE,稍安勿躁,让GPU飞一会儿~程序跑完后,你应该就能在fake文件中看到生成的swap.mp4文件了,让我们通过视频截图,看看效果如何。

替换前

替换后

FakeApp换脸简易教程相关推荐

  1. qmake 简易教程

    qmake 简易教程 qmake是Qt开发中默认的构建工具. posted on 2018-05-27 00:09 JichengTang 阅读(...) 评论(...) 编辑 收藏 转载于:http ...

  2. eslint不报错 vue_【简易教程】基于Vue-cli使用eslint指南

    插件安装 首先在vscode插件中搜索eslint和prettier. 啥也不管,这俩必须得装. 插件简介 vscode插件库里的eslint是用来在你写代码的时候就直接给你报错.(vue-cli中的 ...

  3. Ocelot简易教程(一)之Ocelot是什么

    Ocelot简易教程(一)之Ocelot是什么 原文:Ocelot简易教程(一)之Ocelot是什么 作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/955 ...

  4. 安装python程序后要进行什么设置-安装好Pycharm后如何配置Python解释器简易教程...

    这两天有许多Python小白加入学习群,并且问了许多关于Pycharm基本使用的问题,今天小编就以配置Python解释器的问题给大家简单絮叨一下. 1.一般来说,当我们启动Pycharm,如果Pych ...

  5. ST单片机使用ST Visual Programmer软件烧录程序简易教程

    文章原始地址: http://feotech.com/?p=100 ST单片机使用ST Visual Programmer软件烧录程序简易教程 ST Visual Programmer 是ST公司为自 ...

  6. mysql游标进阶_mysql进阶(三)游标简易教程

    mysql游标简易教程 从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎.InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键 ...

  7. Android开发简易教程

    Android开发简易教程 Android 开发因为涉及到代码编辑.UI 布局.打包等工序,有一款好用的IDE非常重要.Google 最早提供了基于 Eclipse 的 ADT 作为开发工具,后来在2 ...

  8. 文件上传利器SWFUpload入门简易教程

    凡做过网站开发的都应该知道表单file的确鸡肋. Ajax解决了不刷新页面提交表单,但是却没有解决文件上传不刷新页面,当然也有其它技术让不刷新页面而提交文件,该技术主要是利用隐藏的iFrame, 较A ...

  9. 【简易教程】基于Vue-cli使用eslint指南

    [简易教程]基于Vue-cli使用eslint指南 插件安装 首先在vscode插件中搜索eslint和prettier. 啥也不管,这俩必须得装. 插件简介 vscode插件库里的eslint是用来 ...

最新文章

  1. 两地控制的项目要求_项目两地控制灯照明线路的安装.ppt
  2. 如何将低频内容应用转化为高频应用?
  3. python的二维数组操作
  4. How to change max_allowed_packet size
  5. 停止Hadoop或HBase集群的脚本
  6. androidstudio build tools安装_Android Studio4.0 安装及配置
  7. 基于tkinter模块创建GUI程序(python)
  8. 我如何获得了梦想中的亚马逊工作机会?
  9. android UDP通信
  10. 实时监控 轻松玩转IT运维
  11. 原神改文件换服务器,原神官服和b服怎么切换
  12. ice服务器修复教程,Bootice:系统引导菜单修复利器的功能解说
  13. scala--模式匹配
  14. 【刷题】清橙 A1339 JZPLCM(顾昱洲)
  15. 【矩阵论】矩阵基本概念 + 矩阵广义逆
  16. win10把用户中文名改为英文名
  17. 392高校毕业设计选题
  18. threejs正方体六面贴图
  19. 穷举暴力破解密码(真香版)
  20. 用C语言实现菱形图案

热门文章

  1. 人生 不只是程序 如何能够活得更精彩
  2. HD-map:大话高精地图和语义地图
  3. 图书馆管理系统开发(C# Sql Server)
  4. Oracle EBS应付发票验证不了:Invoice Validation Errors with The sum of the Percentage Recovery Rates is great
  5. python中输出换行符\n的使用、用format格式化变量
  6. CSS之三角形的奥妙
  7. linux 之 python升级到python3.7
  8. 罗辑思维,古典:“超级个体” 观后随笔
  9. Snail OS 0.03 user是用户进程和系统调用的简单实现
  10. PointNet++: