Fakeapp 入门教程(2):使用篇!

Fakeapp软件的使用主要分成了三个步骤, 使用之前请确保你的电脑配置还可以,推荐配置是:一张显存大于4G的N卡。Fakeapp是有支持CPU选项,但是用CPU跑非常慢。

  1. 获取脸部图片
  2. 训练模型
  3. 生成视频

在开始之前你需要先准备两个视频,一个是A视频,一个是B视频,换脸软件可以把B的脸换到A上面。这里加上A视频是FBB(范冰冰),B视频是FTM(冯莫提)。这两个视频放在一个叫workspace的目录里面。下面的路径都为相对G:\FakeApp\workspace\的路径,路径并没有特殊要求,你可以更具自己的情况来选择。

Fakeapp 入门教程(2):使用篇!

 

下面就配合图片详细解说下如何操作。

1.获取脸部图片

选中GET DATESET 出现如下界面。

Fakeapp 入门教程(2):使用篇!

 

这一步的目的是讲视频分割成图片,然后从图片中提取脸部。

这个环节只需要填写两个地方,一个是Vidoe视频路径,一个是帧率FPS,默认为30.

Fakeapp 入门教程(2):使用篇!

 

 

 

因为我们有两个视频,所以需要分两次次来。.

先在Video中输入G:\FakeApp\workspace\FBB.mp4 ,这个路径不一定是这个样子要更具你的实际情况来。 帧率可以通过视频文件右键属性进行查看,一般是30,24之类。

输入完成后点击EXTRACT(提取) 开始提取。

Fakeapp 入门教程(2):使用篇!

 

 

提取分两个阶段,一个是把视频分割成图片,如上图。 一个是把图片中的人脸提取出来保存成新的图片,如下图。

Fakeapp 入门教程(2):使用篇!

 

等待进度条结束后跳出Traning dataset successfully 这个提示窗口就证明成功了。点击OK关闭提示窗口。

Fakeapp 入门教程(2):使用篇!

 

用同样的方式操作FTM.mp4

Video中输入G:\FakeApp\workspace\FTM.mp4 ,这个路径不一定是这个样子要更具你的实际情况来。同样需要输入帧率。

这两个过程完全是一样的,截图如下,就不多解释了。

Fakeapp 入门教程(2):使用篇!

 

Fakeapp 入门教程(2):使用篇!

 

 Fakeapp 入门教程(2):使用篇!

 

2.训练模型

模型是很重要的一个东西,也是一个极其消耗时间的东西。训练模型对配置的要求也是比较高。

训练界面主要是上个输入框

Model : 模型的保存路径  (….\workspace\Model

Data A: 被换的人脸(….\workspace\dataset_FBB\extracted

Date B: 拿去换的人脸(…..workspace\dataset_FTM\extracted

….代表你自己的路径。

Fakeapp 入门教程(2):使用篇!

 

输入路径之后,点击TRAIN开始训练。稍等片刻下面就会显示Loss A:xxxx ,LossB:xxxx 。 同时Model 目录下除了四个文件。同时还会跳出一个有很多脸的预览窗口。

Fakeapp 入门教程(2):使用篇!

 

 

这一个环节是非常耗时间的,一般需要几天时间。软件不会自动停止,你不想训练模型的时候可以手动关闭。下次开启会继续训练。 手动关闭的方法为,鼠标移动到预览窗口,然后按Q结束。

判断这个阶段是否完成了,可以通过两个指标去看。

  1.  Loss A,Loss B 数字越来越像,小到了0.02左右,就差不多了
  2. 人脸预览图越来越清晰,第二列第三列和第一列一样清晰,就证明差不多了。

训练结束后,即可开始生成视频。

Fakeapp 入门教程(2):使用篇!

 

 

生成视频的过程也是细分了好几个步骤。

首先,你需要输入Model 路径(…\workspace\Model )。Video路径(…\workspace\FTM.mp4) FPS(30)

然后,点击Create。

然后程序自动开始,处理过程可分成4个阶段。

  1. 生成图片
  2. 截取脸部
  3. 合成图片
  4. 合成视频

Fakeapp 入门教程(2):使用篇!

 

上面四个步骤是软件自动运行,运行结束之后就可以看到一个叫swap-FTM的视频了。这就是换脸后的视频。

Fakeapp 入门教程(2):使用篇!

 

因为我训练时间非常短,所以这个脸是非常模糊的,几乎看不起是谁。如果你训练的时间够长,这里就会非常清晰了。

 

 

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

上一篇:等待多线程完成的CountDownLatch


下一篇:Django数据库操作中You are trying to add a non-nullable field 'name' to contact without a default