当前位置: 首页 > news >正文

RECCV检测人脸伪造项目尝试与扩展

Github源码地址

源码地址 📄 用于人脸伪造检测的端到端重建分类学习

介绍

此代码库是 CVPR 2022 中提出的用于人脸伪造检测的端到端重构-分类学习的实现。在论文中,我们提出了一种名为RECCE 的新型重构-分类学习框架,用于检测人脸伪造。代码基于 Pytorch。请按照以下说明开始使用。

动机

简而言之,我们仅对真实图像训练一个重建网络,并使用编码器的潜在特征输出进行二分类。由于真实人脸与伪造人脸之间的数据分布存在差异,伪造人脸的重建差异明显,并能指示出可能被伪造的区域。

基本要求

请确保您已经安装了以下软件包。

  • Pytorch 1.7.1

  • Torchvision 0.8.2

  • 专辑1.0.3

  • Timm 0.3.4

  • TensorboardX 2.1

  • Scipy 1.5.2

  • PyYaml 5.3.1

在此之前需要进行训练,和数据集的准备

数据集准备

  • 我们包含了几个常用人脸伪造数据集的加载器,例如 FaceForensics++Celeb-DFWildDeepfakeDFDC。您可以进入数据集网站下载原始数据。

  • 对于 FaceForensics++、Celeb-DF 和 DFDC,由于原始数据是视频格式,因此需要先从序列中提取面部图像并存储。我们使用RetinaFace来完成这项工作。

配置文件

  • 我们已经在 中提供了配置模板config/。您可以调整 yaml 文件中的参数来指定训练流程。更多信息请参阅config/README.md

训练

  • 要训练模型,请在控制台中运行以下脚本。

  • 训练会根据你的配置进行,花费大概多久的时间.

  • 我们使用torch.distributed包来训练模型,有关更多信息,请参阅PyTorch 分布式概述

CUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node=1 --master_port 12345 train.py --config path/to/config.yaml
  • --config:指定配置文件的路径。

测试

  • 要测试模型,请在控制台中运行以下脚本。

python test.py --config path/to/config.yaml
  • --config:指定配置文件的路径。

推理

  • 我们提供脚本来inference.py帮助您使用自定义数据进行推理。

  • 要进行推理,请在控制台中运行以下脚本。

python inference.py --bin path/to/model.bin --image_folder path/to/image_folder --device $DEVICE --image_size $IMAGE_SIZE
  • --bin:指定本项目的训练脚本生成的模型bin的路径。

  • --image_folder:指定自定义人脸图片存放目录,脚本接受以.jpg或结尾的图片.png

  • --device:指定运行实验的设备,例如,cpucuda:0

  • --image_size:指定输入图像的空间大小。

  • 程序将输出每个输入图像的虚假概率,如下所示:

path: path/to/image1.jpg           | fake probability: 0.1296      | prediction: real
path: path/to/image2.jpg           | fake probability: 0.9146      | prediction: fake
  • python inference.py -h在控制台中输入有关可用参数的更多信息。

扩展

在此项目基础上扩展成GUI界面原代码如下:

github地址

GUI界面展示:

真实的图片进行检测识别:

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

多张图片进行检测识别

http://www.xdnf.cn/news/573697.html

相关文章:

  • 深度学习实战108-基于通义千问Qwen2.5-Omni的智能数字人实时对话系统实现
  • 免费使用GPU的探索笔记
  • 采用排除法进行EMC问题定位
  • 采用线性优化改进评估配电网的灵活性范围
  • Linux服务器SOS Report完全指南:收集方法、作用解析与最佳实践
  • git checkout HEAD
  • C++11语言级别的多线程
  • 5月21日
  • 云渲染技术解析与渲酷平台深度测评:如何实现高效3D创作?
  • 为什么可以不重写m1方法
  • Multi-Query Attention:传统自注意力( Self-Attention)优化显存和加速方案
  • IP核警告,Bus Interface ‘AD_clk‘: ASSOCIATED_BUSIF bus parameter is missing.
  • python生成requirements.txt文件
  • ABC 353
  • ROS2 CV_bridge与opencv版本冲突
  • 学习 Pinia 状态管理【Plan - May - Week 2】
  • 创建一个element plus项目
  • [C++入门]类和对象下
  • 东莞一锂离子电池公司IPO终止,客户与供应商重叠,社保缴纳情况引疑
  • GitLab 配置 webhook
  • 越小越优先和越大越优先
  • oracle使用SPM控制执行计划
  • 使用Redis的Bitmap实现了签到功能
  • iPaaS集成平台技术选型关注哪些指标?
  • HJ20 密码验证合格程序【牛客网】
  • 测试W5500的第4步_使用ioLibrary库创建UDP客户端和服务器端
  • 数据结构核心知识总结:从基础到应用
  • 6-码蹄集600题基础python篇
  • Mysql数据库相关命令及操作
  • 链表-两两交换链表中的节点