RECCV 检测人脸伪造项目尝试与扩展
源码地址 📄 用于人脸伪造检测的端到端重建分类学习
介绍
此代码库是 CVPR 2022 中提出的用于人脸伪造检测的端到端重构-分类学习的实现。在论文中,我们提出了一种名为 RECCE 的新型重构-分类学习框架,用于检测人脸伪造。代码基于 Pytorch。请按照以下说明开始使用。
动机
简而言之,我们仅对真实图像训练一个重建网络,并使用编码器的潜在特征输出进行二分类。由于真实人脸与伪造人脸之间的数据分布存在差异,伪造人脸的重建差异明显,并能指示出可能被伪造的区域。
基本要求
请确保您已经安装了以下软件包。
Pytorch 1.7.1
Torchvision 0.8.2
albumentations1.0.3
Timm 0.3.4
TensorboardX 2.1
Scipy 1.5.2
PyYaml 5.3.1
在此之前需要进行训练,和数据集的准备
数据集准备
我们包含了几个常用人脸伪造数据集的加载器,例如 FaceForensics++、Celeb-DF、WildDeepfake和DFDC。您可以进入数据集网站下载原始数据。
对于 FaceForensics++、Celeb-DF 和 DFDC,由于原始数据是视频格式,因此需要先从序列中提取面部图像并存储。我们使用RetinaFace来完成这项工作。
配置文件
我们已经在 中提供了配置模板
config/
。您可以调整 yaml 文件中的参数来指定训练流程。更多信息请参阅config/README.md。
训练
要训练模型,请在控制台中运行以下脚本。
训练会根据你的配置进行,花费大概多久的时间.
我们使用
torch.distributed
包来训练模型,有关更多信息,请参阅PyTorch 分布式概述。
--config
:指定配置文件的路径。
测试
要测试模型,请在控制台中运行以下脚本。
--config
:指定配置文件的路径。
推理
我们提供脚本来
inference.py
帮助您使用自定义数据进行推理。要进行推理,请在控制台中运行以下脚本。
--bin
:指定本项目的训练脚本生成的模型 bin 的路径。--image_folder
:指定自定义人脸图片存放目录,脚本接受以.jpg
或结尾的图片.png
。--device
:指定运行实验的设备,例如,cpu
,cuda:0
。--image_size
:指定输入图像的空间大小。程序将输出每个输入图像的虚假概率,如下所示:
python inference.py -h
在控制台中输入有关可用参数的更多信息。
扩展
在此项目基础上扩展成 GUI 界面原代码如下:
github 地址:https://github.com/leiakito/RECCEGUI/blob/main/recce_gui.py
GUI 界面展示:
真实的图片进行检测识别:


伪造的图片进行检测识别:

多张图片进行检测识别


评论