OpenFaceswap 入门教程(2):软件使用篇!

摘要:
安装OpenFaceswap后,你想“见证奇迹”吗?据说磨刀不会伤害樵夫。开始前请做好准备。然后大致了解换脸的过程。换脸的基本步骤是:将视频切成许多图片,提取图片中的人脸,通过人脸训练模型,通过模型改变图片,并将换脸后的图片合成为视频。具体操作流程如下:1.创建素材目录工作区创建一个名为workspace的目录,用于放置您的视频图片和其他素材。所谓变脸,就是把张三的脸

安装完OpenFaceswap之后,是不是就迫不及待的想要“见证奇迹”了呢? 都说磨刀不误砍柴工。开始之前请先做一个准备。然后大致了解一下换脸的过程

换脸基本步骤是:

  1. 把视频切成很多图片
  2. 把图片中的人脸提取出来
  3. 通过人脸来训练模型
  4. 通过模型对图片换脸
  5. 把换脸后的图片合成视频

具体的操作过程如下:

1.创建素材目录workspace

OpenFaceswap 入门教程(2):软件使用篇!第1张

创建一个叫workspace的目录用来放你的视频图片等素材。 所谓换脸,就是把张三的脸放到李四头上,或者反过来。所以你需要在workspace下面在创建两个目录A和B。用来放两个人的素材。

最后的目录结构大致如下:

OpenFaceswap 入门教程(2):软件使用篇!第2张

A 里面放的是被换脸的人,A目录下应该有一个被换脸人的视频 FBB.mp4

B 放的是将要去替换别人的人。B目录下应该有一个换人的视频FMT.mp4

Face 目录是从视频里提取的人脸。

Model 为训练的模型目录

Result 为结果目录,替换完的图片和视频都会在这里。

这个目录结构完全可以自己来命名,为了方便讲解和验证请大家也创建一个这样的目录结构。

其实,FBB.mp4和FTM.mp4为换脸的视频素材,必须事先准备好。你可以自己准备,也可以用我从网上收集的两个视频。

网盘地址:

2.  A的人脸截取

点击 VIDEO A 跳出一个串口,选择自己的workspace目录,选中A文件夹中的FBB.mp4

OpenFaceswap 入门教程(2):软件使用篇!第3张

点击 IMAGES A 后面的黄色文件夹图标。选中FBB,然后点击 IMAGES A 。跳出黑色窗口,片刻之后窗口底部出现 press any key to continue…  证明这一部操作成功,在FBB目录下会出现好多图片。

OpenFaceswap 入门教程(2):软件使用篇!第4张

点击 FACES A 后面黄色文件夹,选中Face目录,然后点击FACES A 开始从图片中提取人脸。

OpenFaceswap 入门教程(2):软件使用篇!第5张

点击完后会出现黑色窗口,稍等片刻之后出现进度条。没出现进去条就证明你的电脑环境没有设置好,需要去查看软件安装的章节。

OpenFaceswap 入门教程(2):软件使用篇!第6张

进度条结束之后,会显示Image Found xxx 。 告诉你发现多少张图片,提取了多少个人脸。

OpenFaceswap 入门教程(2):软件使用篇!第7张

此时打开 Face目录,可以看到很多人脸图片,证明人脸提取已经成功。

OpenFaceswap 入门教程(2):软件使用篇!第8张

 

3. B的人脸截取

B的操作和A是一毛一样,只是选择的视频和目录不同。这里选得是FTM.mp4。目录是B,FTM,Face等。

OpenFaceswap 入门教程(2):软件使用篇!第9张

OpenFaceswap 入门教程(2):软件使用篇!第10张

4. 训练模型

训练模型是一个比较耗时的过程,少则一两天,多则半个月,配置不同,耗时不同。 如果你之前没有穿件Model目录,可以点击黄色文件夹之后选着Create Folder 。如果已经有了就直接选中后Open。

OpenFaceswap 入门教程(2):软件使用篇!第11张

然后点击MODEL开始训练。点击后跳出一个黑色窗口,底部会有一个动态的显示。同时出现一个叫training的预览窗口。

OpenFaceswap 入门教程(2):软件使用篇!第12张

随着时间的推移,预览窗口会发生变化,出现很多人头,训练的过程,就是人脸从模糊变清晰的国产。

OpenFaceswap 入门教程(2):软件使用篇!第13张

上面红色框中的数字是一个训练指标,Loss_A,Loss_B后面的数字越小越好,一般来说当数值小到0.02 或者0.0.1就差不多了,当然你也可以直接看预览图的效果,如果人脸非常清晰了,这个环节就结束了。

为了演示整个过程,我这里只是训练了几分钟,就开始进入下一个环节了。

5. 人脸替换

人脸替换的结果我们保存在Result,所以先通过点击文件夹选中Result ,然后点击Open。

OpenFaceswap 入门教程(2):软件使用篇!第14张

点击 SWAPS开始换脸。跳出黑色窗口,出现进度条。最后出现Done! 就证明转换已经全部完成。

OpenFaceswap 入门教程(2):软件使用篇!第15张

这一个步骤做的事情,就是把B的脸放到A的头上,最终产生的一堆换了脸的图片。

OpenFaceswap 入门教程(2):软件使用篇!第16张

Result目录随便打开一张看一下,脸已经换过去了。我这里由于训练时间超短,所以脸是模糊的。训练久了脸就会变得清晰,看起来就不会这么假了。

OpenFaceswap 入门教程(2):软件使用篇!第17张

6. 导出视频

我们训练的最终目的肯定不是图片换脸,而是视频换脸。所以最后一步,是将图标合成视频。

点击文件夹,选中Result,Save 。

OpenFaceswap 入门教程(2):软件使用篇!第18张

点击 MOVIE ,弹出黑色窗口,片刻之后,出现Press any key to …. 证明合成已经结束。

OpenFaceswap 入门教程(2):软件使用篇!第19张

此时,Result下面出现了一个FBB的视频。

OpenFaceswap 入门教程(2):软件使用篇!第20张

到这里,整个换脸软件的使用就结束了。

OpenFaceswap 入门教程(2):软件使用篇!第21张

刚开始,大家换出来的连肯能都是这一个样子的。 随着 MODEL环节时间的增长,效果会越来越好。除了模型的训练时长之外。最终换脸的效果很大程度取决于A 和B下面的视频素材。

更多关于 AI换脸DeepfakesOpenFaceSwap的问题可以去 Deepfakes中文网。

免责声明:文章转载自《OpenFaceswap 入门教程(2):软件使用篇!》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇推荐K8s的一键安装和一键升级Android中的成员变量与局部变量下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Asp.Net开源服务端框架,WebApi后端框架(C#.NET)

本文主要介绍了基于Asp.Net平台、C#语言+SQL数据库的服务器的WebApi后端框架。K=WebApi&c=1&p=1.NETWebApi开发框架|MVC框架|后端框架|服务器框架-标准版本V1.0适用开发:快速构建支持多个客户端的服务器程序,并支持APP、B/S、c/S跨平台移动终端等。C/S系统开发框架的高级版本或更高版本支持多种后...

使用 @Query 注解实现查询

2")ListfindByPriceRange;/***参数绑定@Param注解注入参数*/@QueryPersonreadPersonByLastNameAndEmailThroughName;//使用like@Query("selectpfromPersonpwherelastNamelike?...

【资料】2021年最网红的FPGA开发板之一——DE10-Nano (SOC FPGA入门推荐!)

DE10 Nano开发板是2021最受欢迎的FPGA开发板之一。除了广泛应用于物联网、边缘计算、硬件加速、AI和EDA教育课程之外,许多爱好者还在网络上日益流行的开源复古游戏项目Mister中使用它。让我们来看看DE10 Nano提供的材料:Youjing官方网站上的材料(中文手册可用!!!23~课程培训材料2018产学合作培训材料基于2018产学协作培训材...

Cesium深入浅出之视频投影【转】

通常,我们使用矩形,因为视频形状是方形的。据怀疑,视频标签隐藏了这段关系。如果再次显示,视频将再次移动。此处使用VideoSynchronizer。它可以使视频元素与铯的模拟时钟同步。让我们看看它的构造函数:name type description optionsObject option子属性:name type默认值description用于驱动视频的...

es6 proxy浅析

代理用于定义用户定义的基本操作行为,如搜索、分配、枚举、函数调用等。代理接受要代理的目标对象和一些包含元操作的对象,为要代理的对象创建“屏障”,拦截所有操作,并将其重定向到用户定义的元操作对象。然而,proxy提供了一种更好的方法来实现类似的私有属性constenablePrivate==˃newProxy(target,{has:(obj,k)=˃(!pr...

jquery跨域请求数据

Jquery跨域请求数据Jquery跨请求数据。事实上,这很容易。请遵循以下步骤:首先,编写js,通过get获取远程数据。请注意,回调参数应添加在链接之后,这意味着将回调函数地址传输到远程页面。',{params},函数cb{alert;alert;},'json');第二:编写处理程序。publicvoidProcessRequest{context.Re...