Deepfake 检测文章总结

技术讨论 kira ⋅ 于 3个月前 ⋅ 846 阅读
来源:skJack@知乎


距离上一篇论文笔记已经好久了,感觉自己慢慢偏离了轨道,现在是时候再拐回来了。毕竟不忘初心,方得始终。虽然没啥人看,但觉得还是应该坚持下去,有时间就更新更新,自己看着也高兴。

本文是论文DeepFakes and Beyond: A Survey of Face Manipulation and Fake Detection的一些小节与总结。这篇综述写的挺不错的,也算比较新的综述了,大家对deepfake检测有兴趣的可以看一下。

论文链接戳这里​arxiv.org

此外,很多内容还参考了MeWTwo大佬的专栏

https://zhuanlan.zhihu.com/p/92474937

写的非常好,建议大家去看看


一、四种伪造假脸类型,如figure1所示

  1. Entire face synthesis(全脸合成,类似于直接用GAN或者其他生成模型生成的人脸,没有明确的target)
  2. Face indentify swap(也就是现在最火的deepfake,有target)
  3. Face attributs manipulation(面部属性操作,包括更改人的发型,是否戴眼镜等等,个人认为有点像ps,没有target)
  4. Face expression manipulation(面部表情交换,就是将target的表情移植到被攻击者的面部,有target)

figure1 四种人造脸示意


二、Entire face synthesis(人脸合成)

  1. 人脸合成常用数据集如figure2所示(基本都是不同种GAN生成的数据):

figure2 Entir face synthesis常用数据集

2.Entire face synthesis dectetion常用方法如figure3所示:

figure3 Entir face synthesis dectetion常用方法

简单介绍一下:

【28】使用简单的颜色特征和svm分类器
Detecting GAN-Generated Imagery Using Color Cues,arXiv preprint arXiv
【29】使用GAN 留下特殊的“fingerprint“,其实“fingerprint”就是一个二分类网络最后层的权重,图片的fingerprint就是网络分类层的前一层个人感觉本文可视化做的比较有创意,用了一个autoencoder去重建出真正图像指纹的样子。

figure 4:image fingerprint and model fingerprint

Attributing Fake Images to GANs:Analyzing Fingerprints in Generated Images,International Conference on Computer Vision, 2019
【30】使用神经网络中间层的激活作为判断依据(使用vgg-face等网络的中间层作为特征进行svm分类),如figure4所示:

figure5:FakeSpotter pipeline

*FakeSpotter: A Simple Baseline for Spotting AI-Synthesized Fake Faces,arXiv preprint*
【7】使用cnn+attention来检测,Xiaoming Liu的文章,通过构建特征图的PCA作为attention map作为另一监督信息,可以方便的嵌在现有的网络中,具体pipeline如figure5所示:

figure 6

*On the Detection of Digital Face Manipulation

【31】文[31]提出了一种基于隐写分析和自然图像统计的检测系统。特别是,他们的方法是基于像素共生矩阵和CNNs的组合,还提出了一种鲁棒性分析的方法分析不同gan的鲁棒性
*Detecting GAN Generated Fake Images Using Co-Occurrence Matrices,arXiv preprint arXiv*
【11】他们提出的基于XceptionNet模型的检测方法,能够正确地检测出新的GANs生成的网络图像。简单看了一下,本文主要提出一种可以将fingerprint去除的基于autoencoder的方法,以欺骗检测系统。
“Real or Fake\? Spoofing State-Of-The-Art Face Synthesis Detection Systems


三、Face swap(deepfake)

1、常用数据集:

figure 7 deepfak常用数据集

2、deepfake检测常用方法:

figure 8 常见deepfake检测方法

【52】two stream

*Two-Stream Neural Networks for Tampered Face Detection,” in Proc. Conference on Computer Vision and Pattern Recognition Workshops, 2017.*

figure 9 two stream pipeline

第一部分提取脸部特征直接进去二分类。

第二部分提取基于patch level的隐藏特征。该结构期望网络捕捉到类似CFA模式或者局部噪声残差之类的low-level的相机特征(隐写术相关)

【53】Mesonet

*Mesonet: a compact facial video forgery detection network

figure 10:mesonet 结构

事实上,基于图像噪声的微观分析不能应用于图像噪声被强降噪的压缩视频环境中。同样,在更高的语义水平上,特别是当图像描绘的是人脸时,人眼很难分辨出伪造的图像。因此作者建议采用一种中间方法,使用具有少量层的深层神经网络。

【1】Deepfakes: a New Threat to Face Recognition\? Assessment and Detection

本文提供了数据集和一些基线方法,比如pca,画同步方法和 IQM+SVM 方法,还提供了 VGG 和 Facenet 人脸识别系统检测 Deepfakes 视频时的脆弱度分析等

figure 11:一些baseline方法在DeepFake数据集的检测结论

【54】Deepfake Video Detection Using Recurrent Neural Networks

提出了一个end-to-end系统。给一段视频序列,前面的CNN网络是直接用ImageNet预训练的InceptionV3模型,只是把最后的全连接层去掉来生成每一帧的2048维特征向量,特征向量输入到LSTM网络中,紧跟着一个512维的全连接层,最后用softmax计算真伪概率。

作者从网站上收集了300个deepfakes视频,试验了不同帧长度的视频,从结果中可以看出,在不到2秒的视频(以每秒24帧的速度采样40帧的视频)的情况下,这个系统可以准确地预测所分析的片段是否来自一个深度伪造的视频,准确率高达97\%。

缺点:需要真实和伪造图片作为训练数据,低效。

figure 12 pipeline

【55】Exposing Deep Fakes Using Inconsistent Head Poses(ICASSP2019)

该方法是基于这样的观察:将合成的面部区域拼接到原始图像中来创建deepfakes会在从2D面部图像估计三维头部姿态(比如头的方向和位置)时引入误差。作者进行实验来证明了这一现象并且将这种特征用SVM分类器进行分类。

具体来说,作者比较用所有面部(whole face)坐标点估计的头部姿态和只用中心区域(central face region)估计的头部姿态,发现在真实脸里面它们会很相近,但是对于假脸,因为中间的人脸区域是来自合成脸,这两者的误差就会比较大。

Reference:https://zhuanlan.zhihu.com/p/92474937(但是效果挺差的)

figure 12 head pose方法的pipeline

【56】Exposing DeepFake Videos By Detecting Face Warping Artifacts,” in Proc. Conference on Computer Vision and Pattern Recognition Workshops, 2019

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

由于计算资源和制作时间的限制,DeepFake算法只能合成有限分辨率的人脸图像,并且必须对其进行仿射变换以匹配源人脸的配置。由于扭曲面区域和周围环境的分辨率不一致,这种扭曲在生成的Deepfales视频中留下了独特的伪影(artifacts),这些伪影可以被经典的深度神经网络模型(如VGG,ResNet等)有效捕获。

Reference:https://zhuanlan.zhihu.com/p/92474937

figure 13

特点:获得负样本训练数据时,考虑到deepfakes算法耗时和耗资源,另一方面,由于本文的目的是检测Deepfakes pipeline中仿射脸翘曲步骤引入的伪影,作者通过直接模拟仿射面翘曲步骤来简化负样本生成过程(如figure14所示)。

figure 14 文中通过模拟翘曲变化来生成负样本

训练时,作者将正负样本的ROI区域裁剪出来训练VGG16,ResNet50,ResNet101和ResNet152网络,最后在UADFV和DeepfakeTIMIT数据集上评估该算法的性能。(怀疑在更高水平上数据集不能work,比如celedf,dfdc等,但是这个观察很赞!)

figure 15 结果图

【6】FaceForensics++: Learning to Detect Manipulated Facial Images,in Proc. International Conference on Computer Vision, 2019

ImageNet pretrained XceptionNet

Xception架构是一个具有残差连接的深度可分离卷积层的线性堆叠(就是inception的改进)。如figure 16所示

figure 16 xceptionNet结构图

【57】Exploiting Visual Artifacts to Expose DeepFakes and Face Manipulations,” in Proc. IEEE Winter Applications of Computer Vision Workshops

和【56】风格很像,都是通过自己的细致观察来完成分类。
基于现有的生成视频方法会产生特有的人为视觉特征(visual artifacts ),通过检测眼睛,牙齿,脸部轮廓发现可以简单地检测出这些特性。作者将这些人为视觉特征(visual artifacts )分为以下几类:

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

Reference:https://zhuanlan.zhihu.com/p/92474937

figure 17 一些细致的观察

【58】Multi-task Learning For Detecting and Segmenting Manipulated Facial Images and Videos,” arXiv preprint arXiv:1906.06876, 2019

多任务学习,但是效果并不好

figure 18

【7】On the Detection of Digital Face Manipulation,” arXiv preprint arXiv

前面介绍过

【59】Protecting World Leaders Against Deep Fakes,” in Proc. Conference on Computer Vision and Pattern Recognition Workshops, 2019.

专门给名人定制的检测技术,具体来说,作者认为一个人说话的时候面部表情和头部运动会展现出独特的模式,称之为soft biometric models (软生物特征模型)。但是deepfakes和face-reenactment生成的假脸不会有这种特定的模式,因为他们的表情被控制了。

figure 19 测试头部运动的步骤

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

figure 20 奥巴马,川建国,Elizabeth等名人的运动特征,其中粉色是随机的普通人,还是挺有区分度的

【60】Recurrent Convolutional Strategies for Face Manipulation Detection in Videos,” in Proc. Conference on Computer Vision and Pattern Recognition Workshops, 2019.

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

figure 21


三、人脸属性更改

1、检测方法如figure 22所示

figure 22:各种人脸属性修改检测的方法

【77】Detecting Facial Retouching Using Supervised Deep Learning,” IEEE Transactions on Information Forensics and Security

使用玻尔兹曼机的深度学习,以patch为输入。并且生成了两个数据库。

【78】Detecting Both Machine and Human Created Fake Face Images in the Wild,” in Proc. International Workshop on Multimedia Privacy and Security, 2018

使用不同的CNN网络进行识别

【30】“FakeSpotter: A Simple Baseline for Spotting AI-Synthesized Fake Faces,” arXiv preprint arXiv:1909.06122, 2019.

使用神经元的激活来判断

【79】“On Detecting GANs and Retouching based Synthetic Alterations,” in Proc. International Conference on Biometrics Theory, Applications and Systems, 2018.

用patch+CNN来做。在自己的数据集上达到了接近100\%

【80】“Detecting Photoshopped Faces by Scripting Photoshop,” arXiv preprint arXiv:1906.05856, 2019.(开源)

伯克利的论文该方法通过ps制作了一个脸部扭曲的数据集
包含两部分 Real-or-fake classification用于检测是否是假脸,local warp prediction用于检测具体更改的部位和复原

基于Dilated Residual Network+基于光流场的回溯网络

个人认为这篇用光流来作为更改的监督信息做法非常有创意,而且undo确实有一定的恢复作用,个人很喜欢的文章,就是定量实验做的不太多,不过还做了deepfake的对比,代码还开源了(还没跑过),实在很良心了

figure 23

figure 24 论文可视化结果图,确实有一定复原效果。


四、补充文章

1、Detecting Face2Face Facial Reenactment in Videos arXiv:2001.07444v1

本文用patch的思路,将整个脸分成多个小patch分别送进不同的resnet18中,最后接一个fc层做权重分配。整体pipeline如figure 25所示:

figure 25

注意每个patch的loss要分开计算,最后再加起来。

这篇实验做的比较少,只在ff++上测试,还是有一定提升,尤其实在hard-compression的图像上,可见小patch可以一定程度上拟补分辨率不足带来的精度下降

figure 26 实验结果。


相关推荐:
CVPR 2020 | 给 Deepfake 假脸做 X-Ray,新模型把换脸图打回原形
小目标检测相关技巧总结

回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!