DeepFake学习记录(不更新了,该方向直接劝退)

文章目录

  • 学习的博文资料
    • 1、DeepFake 入门了解
    • 2、深度“打假”:通过眨眼检测“deepfake”视频
  • 换脸(Face-swapping)
    • Original Deepfakes
    • Faceswap-GAN
    • 3D face FaceSwap
    • Fast Face-swap Using CNN(ICCV2017)
    • On Face Segmentation, Face Swapping, and Face Perception(2018)
    • FSGAN: Subject Agnostic Face Swapping and Reenactment(ICCV2019)
    • FaceShifter: Towards High Fidelity And Occlusion Aware Face Swapping
  • 面部重现(Face-reenactment)
    • Face2face: Real-time face capture and reenactment of rgb videos(CVPR2016)
    • Synthesizing obama: learning lip sync from audio(TOG2017)
    • Deep video portraits(TOG2018)
    • Few-Shot Adversarial Learning of Realistic Neural Talking Head Models(arXiv2019 Samsung AI Center)
    • Text-based Editing of Talking-head Video(SIGGRAPH2019)
    • Deferred Neural Rendering:Image Synthesis using Neural Textures(arXiv2019)
  • Fake Image Detection
    • Automated face swapping and its detection(ICSIP2017)
    • Two-stream neural networks for tampered face detection
    • Multi-task Learning For Detecting and Segmenting Manipulated Facial Images and Videos(2019)
  • Fake Video Detection
    • Temporal Features Across Frames(帧间检测)
      • Deepfake Video Detection Using Recurrent Neural Networks(AVSS2018)
      • In Ictu Oculi: Exposing AI Created Fake Videos by Detecting Eye Blinking(WIFS2018)
      • Recurrent Convolutional Strategies for Face Manipulation Detection in Videos(CVPRW2019)
    • Visual Artifacts within Frame帧内检测
      • Mesonet: a compact facial video forgery detection network (WIFS2018)
      • Exposing DeepFake Videos By Detecting Face Warping Artifacts(CVPRW2019)
    • 浅层方法
      • Exposing Deep Fakes Using Inconsistent Head Poses (ICASSP2019)
      • Exploiting Visual Artifacts to Expose Deepfakes and Face Manipulations(WACVW2019)
      • Protecting World Leaders Against Deep Fakes(CVPRW2019)
      • Face X-ray for More General Face Forgery Detection(CVPR 2020)

用Deepfakes生成的假脸主要包括以下两大类:
**换脸(Face-swapping):**将视频或图像中的人脸自动地替换为其他人脸,身份发生了改变。
**面部重现(Face-reenactment):**将源角色的表情和姿势转移到目标视频中,而目标主体的身份保持不变。

目前,最常被使用的 AI 换脸算法有三种:DeepFake、FaceSwap 和 Face2Face。其中,DeepFake 基于大家所熟知的 GAN 技术,对于它所生成的脸,人类的识别率大约为 75%。FaceSwap 是一个学习重建脸部特征的深度学习算法,可以对给出的图片进行模型替换,人类对于此类换脸的识别率也是 75%左右。Face2Face 则是用其他真实的人脸去替换原本的人脸,不涉及人脸的生成,对于它制造的脸,人类的识别率只有 41%。作为目前学术界最大的合成视频数据库之一,由慕尼黑技术大学创建的 FaceForensics 数据库涵盖了经过以上三种换脸算法编辑的公开视频,以供学术研究使用。

学习的博文资料

主要参考https://zhuanlan.zhihu.com/p/90316297

1、DeepFake 入门了解

链接: DeepFake 入门了解.
不自然的眨眼
由于用来训练神经网络的图像数据往往是睁着眼睛的,因此 Deepfake 视频中人物的眨眼或不眨眼的方式通常是不自然的。
去年,奥尔巴尼大学(University of Albany)的研究人员发表了一篇论文,提出了一种可以检测这种不自然眨眼的技术。有趣的是,这项技术使用的也是深度学习,和制作假视频的技术是一样的。研究人员发现,利用眨眼视频训练出的神经网络可以在视频中定位眨眼片段,找出非自然眨眼运动的一系列帧。结果发现,Deepfake 视频中人物的眨眼不符合正常的生理学规律,由此可以识别出哪些是原始视频,哪些是 Deepfakes 视频。
论文地址
追踪头部动作
每个人都有独特的头部运动(如开始陈述事实时点头)和面部表情(如表达观点时得意得笑),但 Deepfakes 中人物的头部动作和面部表情都是原人物而非目标人物的。

基于此,加州大学伯克利分校的研究者提出了一种检测换脸的 AI 算法。其基本原理是:利用一个人的头部动作和面部表情视频训练一个神经网络,然后拿这个神经网络去检测另一个视频中的人物动作和表情是否属于这个人。模型准确率达到 92%。
链接:论文地址

2、深度“打假”:通过眨眼检测“deepfake”视频

文章链接
不要让技术沦为抠图流量明星的新“捷径”。 (这话说的对啊)
在生成逼真的视频前,这个深层神经网络需要大量目标任务图像数据,图像的数量和多元性决定了网络的“学习”效果——数据越多,模拟效果就越逼真。

换脸(Face-swapping)

Original Deepfakes

DeepFake学习记录(不更新了,该方向直接劝退)_第1张图片
上图是对神经网络训练、测试过程的细化图解。看罢视频,也许有人会有疑问:为什么Deepfake生成的假脸会这么自然?这是因为在训练期间(Training Phase),我们会先把目标人物A的脸抠出来,定位好五官位置,训练一个无论如何扭曲A的脸,最后都能生成正常A脸的网络。
一旦上面的网络训练好,我们就可以往其中输入B的脸。这时在神经网络看来,B的脸其实就是经扭曲的A的脸,所以它会直接“纠正”。至于表情和口型等细节,这在训练过程中就已经学会了,数据越多,效果越好,相信这点不难理解、
原始deepfake代码项目

Faceswap-GAN

基于MTCNN的人脸检测算法实现
在上一个基于Autoencoder的方法上加入adversarial loss和perceptual loss便可用GAN实现换脸。
perceptual loss是是如何做的?
它是将真实图片卷积得到的feature与生成图片卷积得到的feature作比较,使得高层信息(内容和全局结构)接近,也就是感知的意思

DeepFake学习记录(不更新了,该方向直接劝退)_第2张图片
代码实现(https://github.com/shaoanlu/faceswap-GAN)

3D face FaceSwap

代码

Fast Face-swap Using CNN(ICCV2017)

Korshunova I, Shi W, Dambre J, et al. Fast face-swap using convolutional neural networks[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 3677-3685.
1 艺术风格转移,其目标是以另一图像的风格呈现一个图像的语义内容
2 Li和Wand 通过用基于补丁的损失替换基于相关性的样式损失来更好地保留局部结构
3 提出了一种前馈神经网络,使用多图像样式丢失,描述样式的而不是使用单个参考点,并且进一步扩展损失函数以明确匹配图像之间的光照条件。
拥有人物A的图像,我们希望将其身份转换为人物B的身份,同时保持头部姿势和表情以及光照条件不变。在样式转换方面,我们将输入图像A的姿势和表情视为内容,将输入图像B的身份视为样式。
DeepFake学习记录(不更新了,该方向直接劝退)_第3张图片
DeepFake学习记录(不更新了,该方向直接劝退)_第4张图片

On Face Segmentation, Face Swapping, and Face Perception(2018)

https://arxiv.org/pdf/1704.06729.pdf
DeepFake学习记录(不更新了,该方向直接劝退)_第5张图片

该方法基于一个全卷积神经网络(FCN)人脸分割算法来实现换脸。为此,作者利用2D人脸landmarks来fit一个3D shape,然后经过一个pre-trained FCN从背景和遮挡分割人脸,并且cover到对应的3D face上,最后blending到target上实现换脸。并使用了LFW 数据集来测试,并测试了Inter-subject 和Intra-subject的换脸对识别的影响。

FSGAN: Subject Agnostic Face Swapping and Reenactment(ICCV2019)

https://arxiv.org/pdf/1908.05932.pdf

FaceShifter: Towards High Fidelity And Occlusion Aware Face Swapping

https://arxiv.org/pdf/1912.13457.pdf
我们的方法需要输入两张图像——提供人脸特征的源图像 X_s 以及提供动作、表情、光线、背景等属性的目标图像 X_t。最终的换脸图像是通过两段式框架 FaceShifter 生成的。在第一阶段中, 我们的 AEINet 自适应地基于集成信息生成了一个高保真的换脸结果。在第二阶段,我们使用 Heuristic Error Acknowledging Network (HEARNet) 来处理面部遮挡,并对结果进行改进,最后的结果用表示。
DeepFake学习记录(不更新了,该方向直接劝退)_第6张图片
启发式误差修正网络(Heuristic Error Acknowledging Refinement Network)
尽管 AEINet 第一阶段的换脸结果已经能很好的获取目标图像的动作、表情、光照等属性,但是当目标脸部图像 Xt 中对脸部有遮挡时,这种遮挡就很难被继承下来。为了解决这个问题,过去的一些方法 [30,29] 加入了一个新的脸部分割网络。这个网络的训练数据需要进行大量标注(哪一部分有遮挡),而且这种有监督方式可能很难识别出未知的遮挡方式。
对于面部遮挡问题,我们提出了一种启发式的方法。如图 所示,当目标图像中的脸被遮挡时(头发或是帽子上的铁链),有一部分遮挡会在换脸过程中小时。同时,我们发现,就算我们把同一张图同时作为源图像和目标图像输入给训练好的 AEI-Net,这种遮挡还是会在重建的图像中消失。此时这种输出与输入的误差,就可以作为我们定位面部遮挡的依据,我们把这种依据叫做输入图像的启发式错误,因为这个误差启发性的表征了异常发生的位置。

DeepFake学习记录(不更新了,该方向直接劝退)_第7张图片

面部重现(Face-reenactment)

Face2face: Real-time face capture and reenactment of rgb videos(CVPR2016)

http://www.graphics.stanford.edu/~niessner/papers/2016/1facetoface/thies2016face.pdf
Face2Face实现了实时面部重建,它的目标是通过a source actor使目标视频的面部表情动起来,并以逼真的方式重新渲染处理后的输出视频。它借助 dlib 和 OpenCV,首先人脸检测器检测出源图片中的人脸、找到人脸上的关键标记点,然后fit两个3D模型,再使用针对人脸的pix2pix转换模型把关键标记点转换为目标人脸图像。也许是因为这个方法没有给深度学习留下足够的发挥空间,所以它的效果也一般般,但是后面很多论文都拿它来做对比实验。
DeepFake学习记录(不更新了,该方向直接劝退)_第8张图片

Synthesizing obama: learning lip sync from audio(TOG2017)

论文主要是学习一个从音频到视频的序列映射,为了简化问题,论文只关注合成嘴周围区域的内容,其他眼睛、头部、上半身、背景等都完全保留。给定一段音频序列,作者首先提取特征作为RNN的输入,RNN输出一个稀疏的嘴型对应于每一帧输出的视频,对于每一个稀疏的嘴型,合成嘴和人脸下部的纹理,再将它们blend到原视频中作为输出。

Deep video portraits(TOG2018)

https://arxiv.org/pdf/1805.11714v1.pdf
提出了一种新的方法来合成目标在一般静态背景下的全真实感视频portraits。首先,通过单目人脸重建得到了两个视频的低维参数表示。头部姿势,表情和眼睛注视现在可以转移到参数空间(中间)。在此不关注身份和场景照明(阴影背景)的修改,因为我们只对重现感兴趣。最后,对输入图像渲染条件输入图像,将其转换为目标演员的真实感视频肖像(右)。
DeepFake学习记录(不更新了,该方向直接劝退)_第9张图片

Few-Shot Adversarial Learning of Realistic Neural Talking Head Models(arXiv2019 Samsung AI Center)

https://arxiv.org/pdf/1905.08233.pdf
特点:学习新的头部模型仅需要少量训练素材(8帧图像甚的至至单帧图像)和少量训练时间。该系统不需要大量的训练示例,而且系统只需要看一次图片就可以运行。
获得一个输入源图像,模拟目标输出视频中某个人的运动,从而将初始图像转换为人物正在说话的短视频。采用 “元学习” 架构,首先,嵌入式网络映射输入图像中的眼睛、鼻子、嘴巴大小等信息,并将其转换为向量;其次,生成式网络通过绘制人像的face landmarks来复制人在视频中的面部表情;第三,鉴别器网络将来自输入图像的嵌入向量粘贴到目标视频的 landmark 上,使输入图像能够模拟视频中的运动。最后,计算 “真实性得分”。该分数用于检查源图像与目标视频中的姿态的匹配程度
DeepFake学习记录(不更新了,该方向直接劝退)_第10张图片

Text-based Editing of Talking-head Video(SIGGRAPH2019)

https://arxiv.org/pdf/1906.01524.pdf
给定一个输入视频和一个文本,作者进行基于文本的面部编辑。首先将音素与输入音频对齐,并跟踪每个输入帧来构建参数化的头部模型。然后,对于给定的文本编辑操作(比如将spider更改为fox),作者找到输入视频中与新单词具有相似发音嘴型的片段。在上面的例子中,作者使用viper和ox来构建fox。作者使用来自相应视频帧的混合头部参数,以及一个重新计时的背景序列,来生成一个复合图像,该图像被用来生成一个使用人脸绘制方法的逼真的框架。在最终的视频中,这位女演员似乎在说fox,尽管在最初的录音中她从未说过这个词。
DeepFake学习记录(不更新了,该方向直接劝退)_第11张图片

Deferred Neural Rendering:Image Synthesis using Neural Textures(arXiv2019)

http://www.niessnerlab.org/papers/2019/11neuralrendering/thies2019neural_preprint.pdf
延迟神经渲染
DeepFake学习记录(不更新了,该方向直接劝退)_第12张图片

Fake Image Detection

Automated face swapping and its detection(ICSIP2017)

文章地址
17年的这篇文章是第一篇利用经典机器学习方法解决换脸图片检测问题的论文。作者用栅格划分或者SURF提取关键点描述子,用K-means方法生成bag of words特征,得到codebook直方图,再通过SVM、随机森林(RF)、MLP等分类器进行2分类。在自己建立的基于LFW的假脸数据集中最好的实验结果达到了92%的准确率。
DeepFake学习记录(不更新了,该方向直接劝退)_第13张图片

Two-stream neural networks for tampered face detection

论文
为了避免专注于特定的篡改取证,实现鲁棒的篡改检测,作者提出了一种双流网络结构来捕获篡改伪迹证据和局部噪声残差证据,其中一个stream是一个基于CNN的人脸分类stream,另一个是基于隐藏特征的triplet stream 。第一个基于GoogleNet的人脸分类stream,通过真实的和篡改的图像训练作为一个二分类器,第二个基于patch level隐藏特征的patch triplet stream可以捕捉到像CFA模式和局部噪声残差这样的low-level的相机特征。作者没有直接利用隐写分析特征,而是在提取隐写分析特征后训练一个triplet 网络,使模型能够refine隐写分析特征。将这两种stream结合起来,既可以发现high-level的篡改伪迹的证据,又可以发现low-level的噪声残差特征,为人脸篡改检测提供了很好的性能。作者最后通过两个换脸App自己创建新的数据集来训练和测试。
DeepFake学习记录(不更新了,该方向直接劝退)_第14张图片

Multi-task Learning For Detecting and Segmenting Manipulated Facial Images and Videos(2019)

论文
使用一种Y型解码器的结构同时进行分类和分割
DeepFake学习记录(不更新了,该方向直接劝退)_第15张图片

Fake Video Detection

Temporal Features Across Frames(帧间检测)

Deepfake Video Detection Using Recurrent Neural Networks(AVSS2018)

论文地址
提出了一个end-to-end系统。给一段视频序列,前面的CNN网络是直接用ImageNet预训练的InceptionV3模型,只是把最后的全连接层去掉来生成每一帧的2048维特征向量,特征向量输入到LSTM网络中,紧跟着一个512维的全连接层,最后用softmax计算真伪概率。
作者从网站上收集了300个deepfakes视频,试验了不同帧长度的视频,从结果中可以看出,在不到2秒的视频(以每秒24帧的速度采样40帧的视频)的情况下,这个系统可以准确地预测所分析的片段是否来自一个深度伪造的视频,准确率高达97%。
缺点:需要真实和伪造图片作为训练数据,低效。
DeepFake学习记录(不更新了,该方向直接劝退)_第16张图片

In Ictu Oculi: Exposing AI Created Fake Videos by Detecting Eye Blinking(WIFS2018)

假视频需要眨眼才能检测
论文地址
基于deepfakes合成视频的训练样本很少闭眼的数据,通过视频人脸的检测眨眼频率来判别。首先,检测每一帧的人脸,定位人脸区域,提取人脸关键点,比如眼睛的尖端,鼻子,嘴巴和脸颊的轮廓;抵抗视频帧中的头部运动和面部朝向的变化引起的干扰,使用基于landmarks的人脸对齐算法将人脸区域对齐到一个统一的坐标空间;然后定位提取人眼形成一个稳定的序列送入LRCN网络
DeepFake学习记录(不更新了,该方向直接劝退)_第17张图片
LRCN网络:判断眼睛的状态,首先通过VGG16提取人眼特征,输入RNN结合LSTM单元,将输出送到全连接层判断睁眼闭眼的状态概率,最后用二分类的交叉熵损失函数分别训练CNN网络,LSTM-RNN和全连接层。

作者同时实验了将LRCN方法替换成VGG16的二分类网络和 the eye aspect ratio (EAR) based method ,结果LRCN show the best performance 0:99 compared to CNN 0:98 and EAR 0.79 in terms of the area under ROC (AUC). 最后,在真实视频中可以检测到34:1/min眨眼频率,然而在虚假视频中只有3.4/min blinks,那么我们设定一个正常人眨眼频率阈值为10/min就可以区分这段视频是否为fake。

Recurrent Convolutional Strategies for Face Manipulation Detection in Videos(CVPRW2019)

论文
论文借鉴了行为识别领域有很多利用时间信息处理视频的方法,首先进行人脸crop和alignment,把ResNet或DenseNet作为backbone,后面接一个RNN网络进行end-to-end的训练。作者实验了ResNet/DenseNet+单向RNN/双向RNN的组合,在FaceForensics++ 数据集上测试发现双向RNN+DenseNet的结构达到state-of-the-art.
DeepFake学习记录(不更新了,该方向直接劝退)_第18张图片

Visual Artifacts within Frame帧内检测

Mesonet: a compact facial video forgery detection network (WIFS2018)

论文地址
事实上,基于图像噪声的微观分析不能应用于图像噪声被强降噪的压缩视频环境中。同样,在更高的语义水平上,特别是当图像描绘的是人脸时,人眼很难分辨出伪造的图像。因此作者建议采用一种中间方法,使用具有少量层的深层神经网络。
Meso-4网络:连续四个卷积神经网络,每层加上Batch Normalisation和Max pooling,最后用两个全连接和sigmoid分类。
DeepFake学习记录(不更新了,该方向直接劝退)_第19张图片
MesoInception-4:把Meso-4前面两个卷积神经网络用变体inceptionv1 模块取代得到,作者表明用Inception module取代超过两层不会给分类带来更好的效果,该模块的思想是将几个具有不同内核形状的卷积层的输出进行叠加,从而增加模型优化的函数空间。
DeepFake学习记录(不更新了,该方向直接劝退)_第20张图片

Exposing DeepFake Videos By Detecting Face Warping Artifacts(CVPRW2019)

论文
该方法基于DeepFake视频的这样一个属性:

由于计算资源和制作时间的限制,DeepFake算法只能合成有限分辨率的人脸图像,并且必须对其进行仿射变换以匹配源人脸的配置。由于扭曲面区域和周围环境的分辨率不一致,这种扭曲在生成的Deepfales视频中留下了独特的伪影(artifacts),这些伪影可以被经典的深度神经网络模型(如VGG,ResNet等)有效捕获。
特点:获得负样本训练数据时,考虑到deepfakes算法耗时和耗资源,另一方面,由于本文的目的是检测Deepfakes pipeline中仿射脸翘曲步骤引入的伪影,作者通过直接模拟仿射面翘曲步骤来简化负样本生成过程(如下图)。
DeepFake学习记录(不更新了,该方向直接劝退)_第21张图片
优点:创建负样本作为训练数据是只是进行简单的图像处理操作因此节约了大量时间和计算资源。

缺点:可能容易对特定分布的Deepfakes视频过拟合。

浅层方法

Exposing Deep Fakes Using Inconsistent Head Poses (ICASSP2019)

论文地址
该方法是基于这样的观察:将合成的面部区域拼接到原始图像中来创建deepfakes会在从2D面部图像估计三维头部姿态(比如头的方向和位置)时引入误差。作者进行实验来证明了这一现象并且将这种特征用SVM分类器进行分类。
具体来说,作者比较用所有面部(whole face)坐标点估计的头部姿态和只用中心区域(central face region)估计的头部姿态,发现在真实脸里面它们会很相近,但是对于假脸,因为中间的人脸区域是来自合成脸,这两者的误差就会比较大。
注意如图一个是仅人脸进行姿态估计一个是包括外轮廓进行姿态估计
DeepFake学习记录(不更新了,该方向直接劝退)_第22张图片

Exploiting Visual Artifacts to Expose Deepfakes and Face Manipulations(WACVW2019)

论文地址
基于现有的生成视频方法会产生特有的人为视觉特征(visual artifacts ),通过检测眼睛,牙齿,脸部轮廓发现可以简单地检测出这些特性。作者将这些人为视觉特征(visual artifacts )分为以下几类:

全局一致性(Global Consistency):包括左右眼虹膜颜色不一致。在现实中虹膜异色症相当稀少,但是这种现象在生成脸中出现的严重程度有很大方差。
光照估计(Illumination Estimation):在用Face2face的方法中,几何估计、光照估计和渲染是显式建模的,但用深度学习生成的人脸中,对入射光的错误或不精确的估计容易导致相关的伪影。这种伪影通常出现在鼻子周围的区域,比如一侧渲染得过黑。同样,人眼里面的镜面反射在深度学习生成的人脸中不是缺失就是出现简化的白斑。
几何估计(Geometry Estimation):对人脸不精确的几何估计导致明显的边界和高对比度的人工伪影出现在mask和人脸的边界上,此外,部分遮挡的面部部分,如头发建模不正确,会导致出现“空洞”。而且牙齿通常根本没有建模。这一点在很多视频中都很明显,在这些视频中,牙齿看起来是一个白色的小点,而不是单个的牙齿。
DeepFake学习记录(不更新了,该方向直接劝退)_第23张图片
DeepFake学习记录(不更新了,该方向直接劝退)_第24张图片
DeepFake学习记录(不更新了,该方向直接劝退)_第25张图片

Protecting World Leaders Against Deep Fakes(CVPRW2019)

论文地址
该方法中,作者为国家领导人和世界范围的名人(POIs)定制了这个检测技术,具体来说,作者认为一个人说话的时候面部表情和头部运动会展现出独特的模式,称之为soft biometric models (软生物特征模型)。但是deepfakes和face-reenactment生成的假脸不会有这种特定的模式,因为他们的表情被控制了。

方法:给定一段视频片段,用OpenFace2[13]开源工具追踪人脸和头部运动,面部肌肉的运动可以被编码成特定的运动单元(AU),OpenFace2[13]提供了17个AU,作者去掉了眨眼的AU,因为眨眼影响不大,这些AU根据头部关于x,z轴旋转,嘴角的3D水平距离,上下嘴唇的3D垂直距离生成20个特征向量,然后用Pearson相关性系数测量这20个特征的两两向量相似度,因此可以产生 [公式] 对特征,因此每个10s的视频片段被压缩为一个190维的特征向量,然后用SVM来分类区分视频的真假。

Face X-ray for More General Face Forgery Detection(CVPR 2020)

论文地址
DeepFake学习记录(不更新了,该方向直接劝退)_第26张图片
作者提出的新模型 Face X-Ray 具有两大属性:能泛化到未知换脸算法、能提供可解释的换脸边界。要获得这样的优良属性,诀窍就藏在换脸算法的一般过程中。在当下工业界中,盛行的大多数换脸算法一般可以分为检测、修改以及融合三部分。而本文标新立异之处在于,该新模型Face X-Ray是通过检测第三阶段产生的误差来进行实验的。

相关论文资料:
1、2019Deep Learning for Deepfakes Creation and Detection
2、2018 DeepFakes: a New Threat to Face Recognition? Assessment and Detection
3、2020 DeepFakes and Beyond: A Survey of Face Manipulation and Fake Detection

你可能感兴趣的:(人工智能,python,机器学习)