论文阅读-Face X-ray for More General Face Forgery Detection


论文地址:https://arxiv.org/pdf/1912.13458.pdf

前言

这篇论文和FaceShifter: Towards High Fidelity And Occlusion Aware Face Swapping是一批人做的, 不过DeepFakes和DeepFakes Detection本身就是矛与盾的关系, 论文成对出现是很常见的事情.

本文的卖点在于, 通过观察现存大多数伪造图片生成的流程, 提出了一个可泛化的检测伪造图片的方法. 作者声称这种方法不需要特定的伪造图片生成算法生成训练资料, 在检测不同模型生成的伪造图片时都有很好的表现.

本文提出模型的核心在于, 目前大多数伪造图片的生成都涉及三个阶段:

  1. 从source图片中获取人脸

  2. 生成target图片所需的人脸

  3. 将人脸与target图片的背景融合

现有的工作都集中在第二步, 即分析生成的人脸是不是有生成痕迹, 简单的如拼接痕迹和复制粘贴操作, 复杂点的如频域和色差等. 而本文则关注第三步融合操作, 作者提出, 任何图片在生成时都会从生成的硬件或软件中生成统一的标记, 这些标记往往是平均的, 而伪造的图片由于强行融合了不同的图片, 因此这种标记会出现噪声和错误.

模型介绍

Definition

对于给定的一张图片\(I\), 我们希望判定这张图片是否由两张图片\(I_B\)\(I_F\)组成, 公式表示为:

\[I_M = M \odot I_F + (1-M)\odot I_B \]

其中\(\odot\)是按元素乘, \(I_F\)代表了所需的脸部属性, \(I_B\)代表了背景信息. \(M\)也就是个Mask, 值在0-1之间.

之后作者定义了一个图片\(B\), 如果图片\(I\)是被混合的伪造图片, \(B\)会显示混合边界. 否则就是一张全黑的图片.

\(B\)的定义为:

\[B_{i,j} = 4*M_{i,j}*(1-M_{i,j}) \]

\(i,j\)是像素下标, \(M\)的定义如上述. 如果输入\(I\)是真实图像, 那么\(M\)就是全0或者全1, 那么\(B\)也就是全0. 否则\(B\)必定有一些维度不为0或1. 如此\(B\)会给出一个轮廓, 也就代表了修改的部分, 进而判定输入图片是否是合成图片了.

因此本文提出模型的本质就是计算一个\(M\), 以判定输入图片是否由两张图片合成.

具体流程如上图所示. 通过\(I_B\)\(I_F\)计算\(I_M\), 并且使用凸包和Blur等方法生成Mask和\(B\), 最终\(I_M\)\(B\)一一对应.

作者直接使用了FCN, 全CNN网络训练\(I_M\)\(B\)的关系. 网络会根据输入的\(I_M\)获取\(\hat{B}\), 并根据\(\hat{B}\)判定图片是否为假的概率. loss函数则同时计算\(\hat{B}\)\(B\)以及概率的loss.

实验结果

因为目标是检测泛化, 做事使用了多个数据集. 结果发现, baseline在训练集和测试集来自同一源头时表现优秀, 一旦泛化到别的测试集表现就有断崖式下跌. 而本文提出的模型则解决了这些问题.

之后作者对比了其他泛化模型, 发现自己的模型比其他的泛化模型表现更加优秀.

总结

作者从自己的观察提出了了Face X-ray, 用以高效的判定图片是否伪造. 但该方法建立在一个前提即伪造方法包含图片混合这一步骤. 这也是其他换脸算法的开发方向.


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM