跳转至

0. 简介

论文题目&作者团队

今天给大家解读的是最近一篇关于Deepfake检测的论文,出自阿里巴巴,小米AI lab联合出品的FakeSpotter,由于以往的Deepfake检测网络鲁棒性并不高,这篇文章探讨一个更简单的方式,增强网络的鲁棒性。

1. 前言

近些年来,各种各样的GAN网络在图片生成上取得巨大成功,然后现有的检测器还不足以完全面对GAN网络的挑战。本文提出了一种基于人类神经行为来辨别真假人脸的模型,我们推测每一层神经元激活函数可能提取到更多微小的特征,而这些特征对于真假人脸识别是十分重要的。后续我们也在4款SOTA GAN模型下做了实验,验证了我们的猜想。

2. 方法

2.1 Insight

神经元覆盖技术被广泛应用于传统DNN的内部行为,当输出值大于阈值的激活神经元,被激活的神经元将作为输入的另一种形式,将学习的内容一层层保存在网络中

而前人也有一些工作针对关键的激活神经层用于检测对抗例子。

我们工作的灵感来自分层激活的神经元,它捕捉输入的微妙特征,可以用来寻找真实和合成的面部图像之间的差异。

2.2 模拟神经元行为

FakeSpotter检测框架

上图是FakeSpotter检测框架,与传统框架不同的是根据每层神经元激活特性来进行人脸分析。

在传统DNN中,每一层神经元是否被激活取决于他的输出值是否高于阈值Threshold

我们提出了一种确立阈值的策略,公式如下

本文提出的确立阈值的策略

分式上面是各个神经元输出值之和

|N|代表当前层神经元的总数目

|T|代表当前层输入的个数

最后通过这个阈值来决定这个神经元是否被激活

在这里插入图片描述

下图是描述这两种策略的算法

Algorithm 1

3. 其它实现细节

  • 优化器是动量为0.9的SGD,起始学习率为0.0001。
  • 损失函数采用二分类交叉熵损失binary cross-entropy。
  • CNN架构采用的是Vgg-Face,将骨干网络替换为ResNet50,并且带有我们的MNC策略
  • 设计了五层全连接网络来作为最后的二分类网络。

4. 实验表现

我们通过压缩,模糊,缩放,加噪声来评价模型的鲁棒性。

通过压缩,模糊,缩放,加噪声来评价模型的鲁棒性

可以看到在检测DFDC这个数据集上表现并不是那么好。

因为该数据集有人脸替换,声音替换这两种类型,而声音替换是超过FakeSpotter这种基于图像的检测框架范围内了。

其它检测模型在Cele-DFv2数据集上加入前面提到的四种操作的表现

可以看到FakeSpotter仍然保持较好的检测率。

5. 总结

在DeepFake检测领域中,关键一个问题是模型的鲁棒性,一个训练好的模型可能换到另外一个数据集就失效了。 该工作受DNN神经元激活层的启发,将激活层输出值,平均到每个神经元上,作为一个阈值加入到整体网络进行训练,而最后在多个模型实验下,也表明这种基于激活层阈值策略,能得到更多细微特征,进一步提高模型鲁棒性。


欢迎关注GiantPandaCV, 在这里你将看到独家的深度学习分享,坚持原创,每天分享我们学习到的新鲜知识。( • ̀ω•́ )✧

有对文章相关的问题,或者想要加入交流群,欢迎添加BBuf微信:

二维码

为了方便读者获取资料以及我们公众号的作者发布一些Github工程的更新,我们成立了一个QQ群,二维码如下,感兴趣可以加入。

公众号QQ交流群