合工大《数字媒体技术》课程调研报告-视频伪造

 

 

 

 

 

 

 

2022年《数字媒体技术》课程调研报告

 

 

 

 

 

“视频伪造”技术调研

 

 

 

 

 

 

 

 

 

 

 

日期:2022.10.01

 

 

 

调研报告摘要

众所周知,人工智能正迎来第三次发展浪潮,它既给社会发展带来了巨大机遇,同时也带来了诸多风险,人工智能对国家安全的影响已成为世界各国的重要关切和研究议程。作为人工智能深度学习领域的一个分支,Deepfake(深度伪造)技术在近几年迅速兴起,为国家间的政治抹黑、军事欺骗、经济犯罪甚至恐怖主义行动等提供了新工具,给政治安全、经济安全、社会安全、国民安全等国家安全领域带来了诸多风险。视频伪造是Deepfake技术最为主要的代表,制作假视频的技术也被业界称为人工智能换脸技术(AI face swap)。其核心原理是利用生成对抗网络或者卷积神经网络等算法将目标对象的面部“嫁接”到被模仿对象上。由于视频是连续的图片组成,因此只需要把每一张图片中的脸替换,就能得到变脸的新视频。具体而言,首先将模仿对象的视频逐帧转化成大量图片,然后将目标模仿对象面部替换成目标对象面部。最后,将替换完成的图片重新合成为假视频,而深度学习技术可以使这一过程实现自动化。

随着深度学习技术的发展,自动编码器、生成对抗网络等技术逐渐被应用到深度伪造中。本文将介绍生成对抗网络,自动编码器等新兴技术,并从技术角度系统阐述深度伪造流程。

本调研团队成员包括尚艺(学号2020214523)与李蕾(2020214632),吴诗豪(2020215482)。其中尚艺负责调研及撰写自动编码器和生成对抗网络部分;李蕾负责调研撰写了视频造假具体流程部分;吴诗豪负责调研撰写了视频造假数学理论部分。

 

   

调研报告正文

自动编码器

自动编码器是神经网络的一种,其基本思想就是直接使用一层或者多层的神经网络对输入数据进行映射,得到输出向量,作为从输入数据提取出的特征。基本的自编码器模型是一个简单的三层神经网络结构:一个输入层、一个隐藏层和一个输出层。其中输出层和输入层具有相同的维数。自动编码器本质上是一种数据压缩算法,其中数据的压缩和解压缩函数是数据相关的、有损的、从样本中自动学习。目前自编码器的主要用途就是降维、去噪和图像生成。

合工大《数字媒体技术》课程调研报告-视频伪造_第1张图片

 

 

图1. 自动编码器流程图 

在应用于Deepfake的情况下输入视频帧,并编码。这意味着它将从中收集的信息转换成一些低维的潜在空间表示。这个潜在的表示包含关键特征的信息,如面部特征和身体姿势的视频帧。通俗地说,其中有关于脸在做什么的信息,是微笑还是眨眼等等。自动编码器的解码器将图像从潜在表示中恢复出来,用于给网络学习。

生成对抗网络

生成对抗网络是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式进行学习。该方法由伊恩·古德费洛等人于2014年提出。生成对抗网络由一个生成网络与一个判别网络组成。生成网络从潜在空间(latent space)中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。

 

合工大《数字媒体技术》课程调研报告-视频伪造_第2张图片

 

 

在Deepfake的场景下,通过使用生成对抗网络可以生成更逼真的图像/视频。
但是在过去要使用Deepfake进行生成时,需要额外的信息。比如,如果想要生成头部的移动,则我们需要脸部的landmark,如果想要生成全身的移动,还需要姿势估计(pose-estimation)。此外,使用这些传统技术如果想把源脸替换到目标脸上的话,需要使用大量的双方人脸图像的数据进行事先训练训练。

具体实现方案(First Order Motion Model for Image Animation

图像动画包括根据驱动视频的运动对源图像中的对象生成视频序列。作者的框架解决了这个问题,并且没有使用任何注释或关于特定对象的先验信息来设置动画。一旦对一组描述同一类对象(如人脸、人体)的视频进行了训练,这个方法就可以应用于此类的任何对象。

为了实现这一点,作者使用了自监督公式来解耦外观和运动信息。为了支持复杂的运动,作者使用了包括一组可学习关键点的局部仿射变换来表示。生成器网络对目标运动过程中产生的遮挡进行建模,并将从源图像中提取的外观和从驱动视频中提取的运动相结合。

流程概要:

作者使用了一组自学习的关键点和局部仿射转换来建模复杂的运动。因此,称他们的方法为一阶运动模型。其次,作者引入了一个遮挡感知生成器,它采用了一个自动估计的遮挡掩码来指示在源图像中不可见的物体部分,并且应该从上下文中推断出来。这是特别需要的转换的视频包含大的动作模式。第三,作者扩展了通常用于关键点检测器训练的等方差损失,以改进局部仿射变换的估计。第四,实验表明,这种方法明显优于最先进的图像动画方法,并可以处理其他方法通常失败的高分辨率数据集。最后,作者还发布了一个新的高分辨率数据集Thai-Chi-HD。

具体方法

作者根据根据驱动视频D中相似对象的运动来制作源图像s中描绘的对象的动画。由于无法直接监督,作者采用了一种源于Monkey Net的自我监控策略。对于训练,作者使用了大量包含相同对象类别的对象的视频序列。模型通过组合一个单一的帧和一个学习的运动的潜在表示来重建训练视频。通过观察从同一视频中提取的帧对,它会学习到将运动编码为特定于运动的关键点位移和局部仿射变换的组合。在测试时,将模型应用到由源图像和驱动视频的每一帧组成的对上,并对源对象进行图像动画。

合工大《数字媒体技术》课程调研报告-视频伪造_第3张图片

 

 

整个模型分为运动估计模块和图像生成模块两个主要组成部分。在运动估计模块中,该模型通过自监督学习将目标物体的外观和运动信息进行分离,并进行特征表示。而在图像生成模块中,模型会对目标运动期间出现的遮挡进行建模,然后从给定的名人图片中提取外观信息,结合先前获得的特征表示,进行视频合成。
1)运动估计模块
输入:源图像S , 驱动图像D
输出:
1、密集运动场:表征了驱动图像D中的每个关键点到源图像S的映射关系
2、贴图遮罩:表明了在最终生成的图像中,对于驱动图像D而言,那部分姿态可以通过S扭曲得到,哪部分只能通过impainting得到
在这里,S到D有一个较大的形变,直接映射,误差较大,采用的技巧是提出了一个过渡帧R,首先建立R帧到S帧、R帧到D帧的映射,然后再建立D帧到S帧的映射
运动估计模块中有两个子模块:
1、关键点检测器:检测图片中的关键点信息。接着采用局部仿射变换,在关键点附近建模它的运动,主要用一阶泰勒展开来实现。同理,R帧到D帧通过这种方式并行得到
2、稠密运动网络:根据前面得到的映射关系J和源图像S产生上面说的2个输出。
2)图像生成模块:图像生成模型,根据输入的图片和第一部分得到的信息,生成一个新的图片

要点分析

在上图中我们看到Motion module(黄色底色)实际上有两个子模块(一左一右),分别是关键点检测器(keypoint detector)和稠密运动网络(dense motion),这是论文的核心,在本节接下来的部分我们会依次介绍关键点检测器、稠密运动网络、训练损失、测试阶段的关键细节,帮助大家更容易理解本文的工作思路(注意,原论文文后还有10页的附录都是关于公式细节的,我们这里均略过,下面只会分析、推导正文给出的关键公式)。

关键点检测器

论文中物体的运动用其关键点处的运动表示,关键点通过自监督的方式学习。首先假设存在一个抽象的参考帧R,这样的话,预测Ts<-D可以拆分成预测Ts<-R和TR<-D。注意R是抽象的,可以在推导中消除。引入R的好处是可以将S和D分离。
对于某类物体,假设有K个关键点p1,p2,…,pK。
假设有一帧图片X,对于函数Tx<-R,用在pK处的一阶泰勒展开表示R中的任意像素p点处的值有:

 

67d4db048441479f842c32f370f18e2e.png

 

忽略高无穷小量,得到

e490a27ed1a54645861bcc0f17b9cf50.png

 

 

假设TX<-R在关键点的邻域是双射,于是有TR<-X=T-1X<-R,此时在关键点pK附近就有

a0e22f338651401a99b0b635c5cd1356.png

 

 

带入一阶泰勒展开,得到

44bf414c09394e2b8db154e5a18efc5a.png

 

 

 

其中,

 

合工大《数字媒体技术》课程调研报告-视频伪造_第4张图片

 

 

 

 

于是,TS<-D在任一点处的值可以通过关键点处的值和关键点处的导数估计。
TS<-R(pk)和TD<-R(pk)用关键点预测器预测。关键点预测器使用标准的U-Net结构,预测K个热力图,每个热力图代表一个关键点。关键点预测器对每个关键点额外预测4个通道,用于计算

 

96b9aad52f4743059043e349946ce822.png

 

 

 

 

d3567872140d497aacee3b9952bdf24e.png

 

 

稠密运动网络

论文这里的目的是用稠密运动网络联合各关键点的局部运动和源图像得到稠密的运动场。
根据K个关键点的局部运动,将原图像变形(warp)成S1,S2,….,SK,再添加一个不运动的S0=S表示背景。另外计算Hk用于表示运动发生的像素点位置:

1ce8c175277849eea3138824f52d758f.png

 

 

转换得到的图片S1,S2,….,SK和Hk拼接在一起通过另外一个U-Net得到掩码Mk。最后稠密运动场使用下面的公式计算:

883a2286a31145dd82f8d1c5642062f4.png

 

在源图像中存在遮挡的时候,目标图像并不能完全通过变形源图像获得。所以考虑预测一个遮挡映射

8f45f1d748864917a6aa3b067da8371f.png

 

 

其用于表示源图像哪些区域需要被inpainted
转换后的特征图被写作

合工大《数字媒体技术》课程调研报告-视频伪造_第5张图片

 

 

上式中fw表示反向变形操作。

训练损失

训练的损失由多项组成。首先是基于感知损失(perceptual loss)的重构损失(reconstruction loss)。该loss用预训练的VGG-19网络作为特征提取器,对比重建帧和驱动视频的真实帧的特征差异:

合工大《数字媒体技术》课程调研报告-视频伪造_第6张图片

 

 

另外考虑到关键点的学习是无标签的,这会导致不稳定的表现,所以引入不变性约束(Equivariance constraint)用在无监督关键点的学习中。假设图片X经过一个已知的变换TX<-Y,得到Y。标准的不变性约束是

合工大《数字媒体技术》课程调研报告-视频伪造_第7张图片

 

 

通过对两边进行一阶泰勒展开有

合工大《数字媒体技术》课程调研报告-视频伪造_第8张图片

 

 

使用L1损失对上面两个公式进行约束

测试阶段

测试阶段也就是实际的合成阶段,其目标是用驱动视频的每一帧D1,…,DT驱动源图像S1。论文采用相对运动的方式驱动Dt ,也就是通过D1和Dt 的相对运动驱动S1。好处是可以保持源图像中物体的几何信息

合工大《数字媒体技术》课程调研报告-视频伪造_第9张图片

 

 

检测

随着Deepfake技术的发展,互联网上充斥着大量包含伪造人脸的虚假视频,Deepfakes类技术的滥用带来巨大的负面影响,本文给出一些典型检测思路及方案。

基于传统图像取证

传统的图像取证初始主要是基于传统的信号处理方法,大多数依赖于特定篡改的证据,利用图像的频域特征和统计特征进行区分,如局部噪音分析、图像质量评估、设备指纹、光照等,解决复制-移动、拼接、移除这些图像篡改问题。而Deepfake视频本质也是一系列伪造合成的图片合成,因此可以将此类方法应用到Deepfake检测。

基于生理信号特征

伪造视频往往忽略人的真实生理特征,无法做到在整体上与真人一致。比如,有研究人员发现Deepfakes创造的是分离的合成脸区域,这样在计算3D 头部姿态评估的时候,就会引入错误。因为Deepfakes是交换中心脸区域的脸,脸外围关键点的位置仍保持不变,中心和外围位置的关键点坐标不匹配会导致3D 头部姿态评估的不一致,故用中心区域的关键点计算一个头方向向量,整个脸计算的头方向向量,衡量这两个向量之间的差异. 针对视频计算所有帧的头部姿态差异,最后训练一个支持向量机(SVM)分类器来学习这种差异,由此便可以检测出虚假视频。

基于图像篡改

深度伪造图像受限于早期深度网络的生成技术,在生成的人脸在细节上存在很多不足。比如有研究人员利用真假脸的不一致性来区分,如(1) 全局不一致性:新的人脸的生成,图像的数据点插值是随机的,并不是很有意义,这会导致的全局眼睛的左右颜色不一致,鼻子的左右色彩等;(2) 光照不一致性:篡改区域和正常区域对光照的反射不一样,如眼睛区域,Deepfakes生成的视频大多丢失这个眼睛反射细节;(3)几何位置不一致:细节位置缺失,如牙齿,只有一些白色斑点,这个细节没有建模。通过对这些特定区域(牙齿、眼睛等)提取的特征向量训练多层感知机进行分类。
此外,kaggle上也有检测Deepfake的竞赛

 

参考文献

  1. 生成对抗网络(GAN) - 知乎 (zhihu.com)
  2. AI视频换脸之deepfake技术综述(深度伪造制作与检测) - 知乎 (zhihu.com)
  3. 深度伪造(Deepfake)原理分析及实战 - 知乎 (zhihu.com)
  4. https://www.jianshu.com/p/50b92d8dd0c4

First Order Motion Model for Image Animation 

 

你可能感兴趣的:(媒体,音视频,人工智能)