深度伪造技术:AI的双刃剑

深度伪造技术是当今AI应用中既令人兴奋又令人担忧的一种方式。虽然深度伪造可以用于合法目的,但它们也可能被用于虚假信息的传播。有了轻松交换视频中某人面部的能力,真的能相信眼睛所看到的吗?一个看起来真实的视频,显示政治家或演员做了或说了令人震惊的事情,可能根本不是真的。

在本系列文章中,将展示深度伪造是如何工作的,并展示如何从头开始实现它们。然后,将看看DeepFaceLab,这是一个常用的、由Tensorflow驱动的一站式工具,用于创建令人信服的深度伪造。

学习如何创建DIY深度伪造模型,如何在云端的容器中训练它们,以及如何使用DeepFaceLab作为自己模型的替代品。深度伪造是现代AI最令人惊叹的应用之一。在视频中完整且令人信服地替换一个人的面部的能力,是对AI能做什么的直观展示。

到目前为止,关于深度伪造的讨论大多是负面的。想象一下,一个看起来真实的视频,显示政治家或演员做了或说了根本不真实的事情——这是病毒式传播和潜在危险假新闻的理想场景。这就是深度伪造获得主流意识的原因。

幸运的是,并非所有的深度伪造应用都是有害的。深度伪造可以作为电影制作中CGI的替代品,用于在回忆场景中对演员进行去老化处理,或者将已故演员添加到新电影中。想想Moff Tarkin在《星球大战外传:侠盗一号》中扮演的重要角色,尽管在原版《星球大战》电影中扮演他的演员在1994年去世了,或者想想Luke Skywalker在《曼达洛人》中看起来更年轻,尽管演员的实际年龄。深度伪造技术甚至可以在电影翻译成不同语言时纠正演员的嘴部动作。

这些任务传统上是非常昂贵的。通常需要一个CGI团队和几个月的时间来实现。现在,有了人工智能和一些云端AIOps专家的帮助,可以以更低的成本获得很好的结果。

这一系列的迷文章将向展示构建深度伪造模型的基础,并实现它们,这样就可以在不花费数百万美元聘请CGI专家团队的情况下获得好看的视频。

要充分利用这个系列,需要具备Python、深度学习和计算机视觉的基本知识。如果不是专家也没关系。在整个系列中,将尽力解释正在讨论的概念,并提供可以找到额外信息的链接。将随着前进而叠加概念层次,以便熟悉讨论的术语。

理解深度伪造背后的概念

尽管创建深度伪造听起来像是简单的面部交换,但它并不那么简单。有几个关键和复杂的步骤并不那么明显。此外,深度伪造有很多种类:使一个人变年轻,让某人说新的话,将某人的面部插入到另一个人的头上,只是其中的一些例子。

将分解所有这些想法,理解它们的共同点,但让首先正确定义什么是深度伪造。正如可能已经推断的,"深度伪造"是"深度学习"和"假"这两个词的组合,它使用人工智能来制作伪造的视频,并不局限于交换面部。例如,它可以用于将视频中的马变成斑马。

本系列文章将为提供几个代码示例。这些文章系列中使用的笔记本和文件在GitHub仓库中,以及所有完全互动的Kaggle和Colab笔记本:

  • 深度伪造预处理
  • 深度伪造模型训练
  • 深度伪造面部交换
  • DFL-Colab

可以在这里找到训练好的模型:

  • 模型1
  • 模型2

深度伪造概述

一般来说,需要至少两个视频来创建深度伪造:其中一个是源视频,另一个是目标视频(有些情况下可能想只使用一个包含多个个体的视频并交换他们的面部,但这超出了本文的范围)。以面部交换为例,第一个视频将包含想要从中获取一些面部动作的个体,第二个视频将包含想要使用的实际面部外观。

需要提取组成每个视频帧的所有图像,这个过程被称为帧提取。这个过程的目的是提取这些图像中的面部(面部提取),以训练深度伪造模型(是的,两个模型。稍后会解释原因)。一旦提取了所有的面部,将使用这个面部集(面部数据集)进行模型训练。

然后将使用它们与帧和面部集一起执行面部交换,这是将生成的面部插入到原始帧中。最后,需要合并帧以制作视频并获得深度伪造。

下一个图表使用自编码器作为深度伪造生成器(稍后会在文章中深入讨论),这是将遵循的方法。如果还不知道所有的元素是什么,别担心。将解释需要了解的细节,以及如何编码它们,并指出处于哪个步骤:

在第一个图表(顶部的那个)中,会注意到帧提取器被提供原始视频。这些包含将要交换的面部。接下来,它将这些视频的帧传递给面部提取器,后者将处理每一帧作为常规图像并提取它遇到的面部。这就是获得将输入模型进行训练的实际面部集的地方。为了保持简单,将在一个目标面部集上训练其中一个模型,在源面部集上训练另一个模型。

一旦训练结束,将"源"模型的输入块与"目标"模型的输出块混合,并用"源"面部喂养它们,最终获得带有"源"面部动作的"目标"面部。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485