我用两周时间和552美元创建了自己的蘸酱

通过创建此视频,我学到了很多东西



Dipfake技术使用深度神经网络在视频中令人信服地替换一个人。 该技术具有明显的恶意使用潜力,并且正在变得越来越普遍。 关于这种趋势的社会和政治后果,已经写了许多好文章。

这不是其中之一。 相反,我将仔细研究这项技术:diphey软件如何工作? 创建它们有多困难,结果有多好?

我认为最好通过创建自己的倾角视频来回答这些问题。 编辑给了我几天的时间来试用该软件,还给了我1000美元来支付云计算费用。 几周后,我在文章开头的视频中展示了结果。 我从马克·扎克伯格在国会讲话的视频开始,然后用《星际迷航:下一代》中尉指挥官数据(布伦特·斯宾纳)代替了他的脸。 总共花费了552美元。

视频不完美。 数据脸部的所有细节都不会传输,并且如果您仔细观察,则边缘处可见伪像。

不过,与我一样的新手可以如此快速且廉价地制作令人信服的视频,这一点仍然非常引人注目。 有充分的理由相信,在未来几年中,dipfeyk技术只会变得更好,更快和更便宜。

在本文中,我将亲自指导您尝试蘸酱。 我将解释创建Deepfake视频所需采取的每个步骤。 在此过程中,我将解释该技术的工作原理及其局限性。

Dipfeyks需要大量的计算能力和数据


我们称这些视频为“深度假货”,因为它们是使用深度神经网络创建的。 在过去的十年中,计算机科学家发现,随着神经元附加层的增加,神经网络变得越来越强大。 但是要释放深度神经网络的全部潜力,您需要大量数据和强大的计算能力。

假货也是如此。 对于这个项目,我租用了带有四个功能强大的图形卡的虚拟机。 即使有这些马,我也花了近一个星期的时间训练我的模型。

我还需要大量马克·扎克伯格和数据的图像。 我的视频长38秒,但是为了训练,我需要更长的视频,包括扎克伯格和Data。

为此,我下载了一堆包含他们脸部的视频:14个带有《星际迷航》剪辑的剪辑和9个与马克·扎克伯格的剪辑。 后者包括正式的报道,电视上的几次采访,甚至还有一段视频,其中扎克伯格正在他的院子里准备烧烤。

我将所有这些剪辑上传到iMovie,并删除了不包含扎克伯格和数据面孔的帧。 我也将最长的段落切成碎片。 dipfake程序不仅需要大量图像,而且还需要大量不同的图像。 我们需要从不同的角度,不同的表情和不同的光线拍摄人脸。 扎克伯格阅读报告的长达一个小时的视频不会产生比五分钟的片段更有价值的镜头,因为它是从相同的角度,相同的光线和相同的面部表情拍摄的。 因此,我将使用Data的视频花了9小时,而使用Zuckerberg的视频则花了7分钟。

Faceswap:用于创建伪造品的软件包


然后是时候将该软件用于dipheyka。 最初,我尝试使用DeepPaceLab程序,并且能够创建一个相当粗糙的视频。 然后我在SFWdeepfakes论坛上寻求建议,然后有人在Faceswap上为我提供了建议。 人们指出,该程序具有更多功能,更好的文档和更好的在线支持。 我决定听从他们的建议。

Faceswap可在Linux,Windows和Mac上运行。 该软件包提供的工具可用于创建伪装视频的所有阶段,从导入原始视频到创建成品伪装视频。 该软件不是直观的,但是随附了详细的培训材料,涵盖了该过程的所有步骤。 该材料是由Faceswap创作者Matt Torah撰写的,他在Discord的Deepfake频道上也帮了我很多忙。

Faceswap需要功能强大的图形卡。 我知道我的MacBook Pro无法处理它。 我要求我们编辑部的技术人员从领先的云服务提供商那里租给我一台用于Linux的虚拟机。 我从带有Nvidia K80 GPU和12GB显存的虚拟机开始。 几天后,我切换到具有两个GPU的模型,然后又切换到了4个GPU。 她拥有四个Nvidia T4 Tensor Core GPU,每个GPU都有16 Gb的内存(以及另外48个CPU和192个RAM,它们大部分都是空闲的)。

经过两个星期的工作,我收到了522美元的发票。 当然,为了方便租用电脑,我花了很多钱。 《摩西五经》告诉我,目前,最能赚钱的Dipfake硬件选择是具有8 GB内存的Nvidia GTX 1070或1080卡。 这种用过的卡价值几百美元。 一张1080卡不能像我的四个GPU一样快地教授神经网络,但是如果您准备等待几周,您将获得类似的结果。

Faceswap中的工作流程包括三个基本步骤:

  • 提取:将视频切成帧,在每个帧中找到人脸,显示每个人脸的对齐正确并经过精心裁剪的图像。
  • 训练:使用获得的图像训练双倍假神经网络。 它拍摄一个人的脸部图像,并以相同的表情,光线和相同的位置生成另一个人的脸部图像。
  • 转换:将上一步中训练的模型应用于特定视频,以制作出假照片。 训练完模型后,可以将其应用于任何视频,其中那些人的面部都经过训练。

对于这三个步骤中的每个步骤,需要的人和机器的时间完全不同。 图像检索软件需要运行几分钟,但一个人可能要花费数小时才能验证结果。 该软件会记录每个图像中的所有面孔,以及相当多的误报。 为了获得良好的结果,一个人需要仔细阅读所有结果,去除不必要的面孔以及该软件为一个人准备的所有东西。

学习很容易建立,几乎不需要任何人的参与。 但是,可能需要几天甚至几周的时间才能获得良好的结果。 我从12月7日开始训练我的最终模型,该模型一直持续到12月13日。 经过一周的工作,我的蘸酱的质量可能会提高。 我还使用了我的云怪兽和四个高级图形卡。 如果使用功率较小的单个GPU在计算机上工作,则可能需要数周的时间来训练好的模型。

最后一步,即转换,对于人和计算机而言都是快速的。 通过接收经过适当培训的模型,您可以在不到一分钟的时间内发送双倍假视频。

隔振如何工作


在描述Faceswap学习过程之前,您需要解释底层技术的工作方式。

自动编码器是Faceswap以及其他用于创建Diphakes的领先软件包的核心。 这是经过训练可接收输入图像并生成相同图像的神经网络。 这项技能本身可能并没有那么有用,但是,正如我们稍后将看到的那样,它是创建蘸酱过程中的关键构建块。



自动编码器是根据两个漏斗以窄端连接的原理构造的。 在网络的一侧是一个编码器,它接收图像并将其压缩为少量变量。 在Faceswap中使用的模型中,这些是1024个32位浮点数。 神经网络的另一端是解码器。 他采用了这种紧凑的表示形式,即“潜在空间”,并在收到初始图像后尝试对其进行扩展。

人为地限制了从编码器传输到解码器的数据量,使得这两个网络形成了人脸的紧凑表示。 编码器类似于有损压缩算法,它试图在限制存储量的同时尽可能多地保存关于面部的信息。 潜在空间必须以某种方式提取重要的细节,例如,对象朝哪个方向看,他的眼睛睁开或闭合,他微笑或皱着眉头。

重要的是,自动编码器仅需要保存脸部随时间变化的那些特征。 他不需要存储任何不变的东西,例如眼睛的颜色或鼻子的形状。 如果他在扎克伯格的每张照片中都有蓝眼睛,那么他的网络解码器将学会自动用蓝眼睛画脸。 无需将信息塞入狭窄的潜在空间,该空间在从一个图像过渡到另一图像期间不会改变。 正如我们将在后面看到的那样,自动编码器对于不断变化的面部特征具有不同的态度这一事实对于发出diphfakes的能力极为重要。

每种用于训练神经网络的算法都需要某种方法来评估网络的质量,以便可以对其进行改进。 在许多情况下,这是通过与教师一起进行培训来完成的,当时该人从培训数据集中为每个要素提供了正确答案。 自动编码器的工作方式有所不同。 由于他们只是想重现自己的输入数据,因此培训软件可以自动判断其工作质量。 用机器学习的术语来说,这叫做没有老师学习。

像任何神经网络一样,Faceswap中的自动编码器使用反向传播进行训练。 训练算法将特定图像馈入神经网络,并查看输出中哪些像素与输入不匹配。 然后,他计算出最后一层中的哪个神经元对误差的贡献最大,并稍微校正每个神经元的参数,以便提供更好的结果。

然后,这些错误会传播回上一层,在此再一次校正每个神经元的参数。 错误以这种方式传播到更远的地方,直到校正了编码器和解码器的神经网络的每个参数。

然后,训练算法会馈入网络的另一幅图像,然后再次重复整个过程。 要制作能很好地再现其自身输入的自动编码器,可能需要成千上万次这样的重复。



Dipfake软件通过同时训练两种自动编码器来工作,一种用于原始面孔,另一种用于新面孔。 在训练过程中,每个自动编码器仅获得一个人的图像,并且训练他产生与原始图像非常相似的图像。

但是有一个问题:两个网络使用相同的编码器。 解码器-位于网络右侧的神经元-保持独立,并且每一个都经过训练以发出不同的表情。 但是,网络左侧的神经元具有通用参数,每次训练任何自动编码器时,这些参数都会改变。 当在扎克伯格的面孔上训练扎克伯格网络时,这会改变属于编码器和数据网络的一半网络。 每次在Data的脸上训练Data的网络时,扎克伯格编码器都会继承这些更改。

结果,两个自动编码器具有一个通用的编码器,可以“读取”扎克伯格的脸或数据的脸。 编码器的目的是使用相同的表示方式,例如头的角度或眉毛的位置,无论他在输入端收到的是扎克伯格的照片还是数据的照片。 反过来,这意味着当您用编码器挤压脸部时,可以使用任何解码器将其打开包装。



因此,以这种方式训练了几个自动编码器之后,剩下的一个简单的步骤就可以创建一个伪造的伪造:交换解码器。 您正在编码扎克伯格的照片,但是在解码步骤中使用了数据解码器。 结果是重建的Data照片-但其头部位置和面部表情与扎克伯格的原始照片相同。

记住,我提到过,潜伏空间捕捉了一个人的各种面部特征-表情,凝视的方向,眉毛的位置-诸如眼睛的颜色或嘴巴的形状之类的不变的东西赋予了解码器。 这意味着,如果对Zuckerberg图像进行编码,然后使用数据解码器对其进行解码,则您将获得具有永久性Data特征(例如,人脸形状)的人脸,但具有原始Zuckerberg人脸的表情和方向。

将此技术应用于扎克伯格的视频的连续帧中,您将获得一个新视频,其中数据的脸部执行相同的动作-微笑,眨眼,转动头部-就像扎克伯格在原始视频中所做的那样。

这种情况是对称的。 当您训练神经网络接收扎克伯格的照片并发布Data的照片时,您同时训练它以接收Data的照片并发布Zuckerberg的照片。 用于从Faceswap转换视频的工具-创建双倍伪造过程的最后一步-包括一个有用的复选框“交换模型”,允许用户交换解码器。 结果,该程序没有执行相反的操作,而是用Data的脸代替了Zuckerberg的脸,从而产生了非常有趣的视频,如下所示:


训练数据


在实践中,创建蘸酱时要获得好的结果并不容易。

正如我提到的,我获得了Data的7分钟视频和Zuckerberg的9分钟视频。 然后,我使用Faceswap图像提取工具剪切了视频并获得了两个男人脸部的裁剪图像。 该视频每秒包含大约30帧,但我仅每6秒钟提取一次-Faceswap文档中建议采用这种做法。 这是因为各种各样的图像不仅意味着其数量,而且保存每一帧将导致大量非常相似的图像。

Faceswap提取工具产生了很多误报。 他还在一些镜头的背景中找到了真实的面孔。 几个小时后,我手动删除了所有提取的照片,这些照片不属于我的两个实验对象。 结果,我得到了2598张Data的脸部图像和2224张Zuckerberg的脸部图像。

到那时,终于到了进行真实模型训练的时候了。 现在,Faceswap带有10种不同的dipfake算法,这些算法支持不同的图像大小并需要不同的计算能力。 在最朴实的模型中,有一个“轻量级”模型可以处理尺寸不超过64像素的面部图像。 它可以在视频内存不超过2 GB的计算机上运行。 其他型号可以处理128、256甚至512像素大小的图像-但是,它们需要更多的视频内存以及更多的训练时间。

我开始训练DFL-SAE模型,该模型源自DeepFaceLab的算法。 但是,Faceswap文档中警告该模型遭受“身份泄漏”,其中一张脸的某些特征可能会渗入另一张脸。 在我看来,我在几个第一个测试视频中都看到了类似的东西,所以一天后,我切换到了反派模型,该模型可处理128像素图像。 Faceswap手册将其描述为对VRAM的要求很高,并且“对于那些希望在不调整任何参数的情况下获得高分辨率模型的人来说是一个不错的选择”。

然后我等了。 然后他等了。 当我的最后期限是星期五时-经过六天的培训,学习过程仍未结束。 当时,我的模型制作了一个非常不错的蘸酱。 进展的速度放慢了,但是如果我再有一周的计算机时间,可能会有更好的结果。

Faceswap非常适合长时间计算工作。 如果从图形界面启动培训团队,则程序界面会定期更新预览屏幕,您可以在其中查看有关软件如何创建Data和Zuckerberg肖像的示例。 如果您希望从命令行进行培训,这也是可能的。 Faceswap界面具有一个有用的“生成”按钮,该按钮可提供执行界面中当前设置来训练模型所需的确切命令。

蘸酱的质量如何?


在学习过程中,Faceswap会不断显示两个自动编码器中每一个的“损失”的数字估计。 这些估算值表明扎克伯格的自动编码器可以播放扎克伯格的照片,以及数据的自动编码器可以播放数据的程度。 当我上周五停止学习时,这些数字仍在减少,尽管进步的速度大大降低了。

当然,实际上,对于我们来说重要的是,数据解码器如何将扎克伯格的面孔变成数据。 我们不知道“最终结果”会是什么样子,因此无法精确地衡量工作质量。 我们能做的最好的就是查看视频并确定它是否逼真。


上面的视频显示了在学习过程的四个阶段中蘸酱的质量。 12月10日和12日的视频显示了经过部分训练的恶棍模型。左上角的1​​2月6日视频是使用其他型号的早期测试。右下角是最终结果。在训练过程中,他的脸部细节变得更加清晰和可信。

经过三天的培训,12月9日,我在Slak的编辑部内部频道发布了初步视频。该视频类似于左上角的视频。我们的设计大师Aurich Lawson对他产生了讽刺的反应。

他写道:“总的来说,它看起来很糟糕,看起来并不令人信服。我正在等待其中一部看起来不假的视频。”

我认为在他的批评中有一个合理的内核。让我惊讶的是,Faceswap能够如此迅速地创建出非常像Brent Spiner的面孔图像,而不是扎克伯格。但是,如果仔细观察,您会发现数字欺诈的典型征兆。

在某些帧上,Data的假脸和扎克伯格的头部之间的边界看起来不太正确。有时,扎克伯格的眉毛从Data的脸上露出来。在其他地方,假脸的边缘在扎克伯格的耳朵上覆盖了几个像素。有人可以在人工后期处理中解决构图问题,但有人可能需要逐帧滚动视频并为每个人校正蒙版。


然而,一个更根本的问题是diphfake算法尚不能很好地再现人脸的最小细节。当您同时观看开始和结束视频时,这一点非常明显。 Faceswap令人惊讶地很好地传达了Data面孔的整体结构。但是即使经过一周的训练,脸部仍然显得模糊,并且其中没有足够的重要细节。例如,dipheykas的软件几乎无法应付人类牙齿的绘画。有时牙齿清晰可见,在下一帧中消失,留下黑色。

这样做的主要原因之一是因为Faceswap任务随着分辨率的提高而变得越来越复杂。自动编码器可以很好地处理64x64像素的图像。但是要重现128x128像素图像的精细细节(更不用说256像素或更多的图像),已经变得非常困难。也许这就是为什么最令人印象深刻的diphfe拥有相当宽的视角而没有脸部特写的原因之一。

但是,您不应该将其视为堤防技术的基本限制。在未来几年中,研究人员很可能能够开发出克服这些局限性的技术。

通常,将Dipheyka的软件基础错误地描述为生成对抗网络(GSS)或允许该软件“表示”的此类神经网络。不存在的人,物体或风景。实际上,dipfeyki使用自动编码器工作。但是,GSS技术的最新进展表明,伪造品仍有改进的空间。

GSS于2014年首次出现,只能生成粗糙的低分辨率图像。但最近,研究人员想出了如何创建GHS出色逼真的图像高达1024个像素。这些科学著作中使用的特定技术可能不适用于创建Diphake,但不难想象有人将如何为自动编码器开发类似的技术,或者可能是一种旨在替代人脸的全新神经网络体系结构。

Dipfake观点


伪造品的受欢迎程度的上升显然令人震惊。直到最近,人们都可以轻松地与有颜值的人一起拍摄视频。 dipheyka软件和其他数字工具的出现使我们现在对视频表示怀疑。如果我们看到一个视频,其中某个人声称存在丑闻或剥夺他人的版权,则应考虑有人伪造该视频以抹黑该人的可能性。

但是,我的实验着重说明了抄袭技术的局限性-至少在当前形式上如此。创建一个完全令人信服的虚拟面孔需要大量的知识和精力。我没有成功,而且我不确定有人已经能够制作出与真实视频完全没有区别的假装视频。

而且,如今诸如Faceswap之类的工具仅能处理面部变化。它们不会改变额头,头发,手臂和腿部。即使脸型完美,也可以根据看起来不正确的元素确定蘸酱视频。

但是,dipfake技术的这些限制可能会消失。几年后,该软件可能会学会制作无法与真实视频区分开的视频。那怎么办

在这种情况下,记住其他类型的媒体很容易被伪造会很有用。琐碎的任务是拍摄电子邮件的屏幕快照,其中有人写了他实际上没有写的东西。但这并没有导致由于欺诈性电子邮件而导致的碎石场数量的增加,也没有抹去信件的屏幕截图作为公开讨论的证据。

但是人们知道电子邮件可能是伪造的,因此在这种情况下正在寻求其他确认。哪些事件链引起了公众对信件的关注?此邮件原本应该撰写时,其他人是否收到了该邮件的副本?被指控的来信作者是否承认他的作者身份,或声称伪造?对此类问题的答案可帮助人们决定他们对公开信的重视程度。

你可以上当


视频也是如此。欺骗者可能会在一段时间内发布一段视频,说出某人的话或做出令人发指的事情,从而破坏他的职业。但是不久,社会将学会以怀疑的态度对待视频,除非该视频剪辑具有任何类型的文献证据,证人或其他支持因素。

我认为,即使在最残酷地滥用迪菲技术的情况下,这种方法也能奏效:在色情视频中插入人的脸。这显然是不尊重和不可接受的。但是人们担心这样的视频会破坏他们的声誉和职业。我认为事实并非如此。

确实,在Internet上,您可以找到著名人物(主要是女性)的完整图像,这些人物的头像在Photoshop的帮助下与色情明星的身体相连。妇女的苦难是可以理解的。但是公众并不会自动得出结论,这些女人裸露身材-我们知道Photoshop的存在以及创建假照片的可能性。

深层色情也是如此。显然,在您的参与下制作假色情不是很好。但是,与某人一起发布节拍视频不会像真实的性爱视频那样具有破坏性的影响。在没有视频真实性证据的情况下,公众会得出结论,它是伪造的。

Faceswap的作者Matt Torah告诉我,这种考虑是他创建程序包动机的组成部分之一。他认为,将不可避免地开发出用于改变人们的软件。他希望通过创建一个用户友好的工具来更改开源人员,他将帮助消除该技术的秘密面纱,并向公众介绍其功能和局限性。反过来,这将有助于我们迅速达到公众对可能是假冒视频的怀疑状态。

从长远来看,我们冒着公共关系的钟摆反过来摆动太大的风险,并且创建伪造品的可能性将破坏人们对视频证据能力的信念。一些政客已经习惯于拒绝媒体批评为“虚假新闻”。随着社会对伪造品技术的认识不断提高,该策略将变得更加有效。

Source: https://habr.com/ru/post/zh-CN482684/


All Articles