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

DeepFake换脸检测

DeepFake(深度伪造)技术能够以惊人的准确度修改视频或图像中的人脸,造成虚假信息的快速传播。为了应对这一挑战,许多研究者开始探索防御DeepFake的技术手段。

DeepFakeDefenders项目是由VisionRush团队开发的,旨在通过先进的技术手段识别和对抗DeepFake。该项目提供了一套完整的工具集,包括预训练模型、训练脚本以及部署方案,帮助用户快速构建自己的DeepFake检测系统。

一、预训练模型准备

在开始使用之前,请将模型的ImageNet-1K预训练权重文件放置在./pre_model目录下,权重下载链接如下:

RepLKNet: https://drive.google.com/file/d/1vo-P3XB6mRLUeDzmgv90dOu73uCeLfZN/view?usp=sharing
ConvNeXt: https://dl.fbaipublicfiles.com/convnext/convnext_base_1k_384.pth

二、训练

1. 更改数据集路径

将训练所需的训练集txt文件、验证集txt文件以及标签txt文件分别放置在dataset文件夹下,并命名为相同的文件名(dataset下有各个txt示例)

2. 更改超参数

针对所采用的两个模型,在main_train.py中分别需要更改如下参数:

RepLKNet---cfg.network.name = 'replknet'; cfg.train.batch_size = 16
ConvNeXt---cfg.network.name = 'convnext'; cfg.train.batch_size = 24

3. 启动训练

单机多卡训练:(8卡)

bash main.sh

单机单卡训练:

CUDA_VISIBLE_DEVICES=0 python main_train_single_gpu.py

4. 模型融合

在merge.py中更改ConvNeXt模型路径以及RepLKNet模型路径,执行python merge.py后获取最终推理测试模型。

5. 推理

示例如下,通过post请求接口请求,请求参数为图像路径,响应输出为模型预测的deepfake分数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
import json
import requests
import json

header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36'
}

url = 'http://ip:10005/inter_api'
image_path = './dataset/val_dataset/51aa9b8d0da890cd1d0c5029e3d89e3c.jpg'
data_map = {'img_path':image_path}
response = requests.post(url, data=json.dumps(data_map), headers=header)
content = response.content
print(json.loads(content))

三、docker

项目支持Docker部署,使得在不同环境中的部署变得简单快捷。可以通过构建Docker镜像并运行容器来启动服务。

1. docker构建

根据项目提供的Dockerfile,使用docker build命令构建镜像。

sudo docker build -t vision-rush-image:1.0.1 --network host .

2. 容器启动

sudo docker run -d --name vision_rush_image --gpus=all --net host vision-rush-image:1.0.1


http://www.kler.cn/news/309136.html

相关文章:

  • 828华为云征文|基于华为云Flexus云服务器X实现个人博客搭建
  • SpringMVC映射请求;SpringMVC返回值类型;SpringMVC参数绑定;
  • Redis的缓存穿透、缓存雪崩、缓存击穿怎么解决
  • 【苍穹外卖】总结
  • 排序算法-选择排序
  • 深度学习自编码器 - 正则自编码器篇
  • 3.python 爬虫基础HTTP原理2和网页基础
  • Qt/C++ 了解NTFS文件系统,获取首张MFT表数据,解析文件记录头内容找到第一个属性偏移地址
  • 工具类中使用@Value注解引入静态地址
  • uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件
  • GC垃圾回收机制-Serial GC
  • Uniapp + Vue3 + Vite +Uview + Pinia 分商家实现购物车功能(最新附源码保姆级)
  • Linux下root用户共享conda环境给其他用户
  • 力扣121-买卖股票的最佳时机(Java详细题解)
  • Encountered 31 files that should have been pointers, but weren‘t:(已解决,无废话)
  • System.out源码解读——err 和 out 一起用导致的顺序异常Bug
  • 论文翻译:USENIX-2021 Extracting Training Data from Large Language Models
  • 网络设备登录——《路由与交换技术》实验报告
  • 养宠浮毛严重怎么清理?希喂、范罗士、IAM宠物空气净化器真实测评
  • C++:初始化列表
  • 在线包装盒型生成工具,各种异型包装盒型,PDF导出方便
  • 【蜡笔小新专享】安装虚拟机、PHP、DVWA
  • Linux容器化管理——Docker常见命令总结
  • Apache Pulsar 与 Kafka Streams
  • React实现类似Vue的路由监听Hook
  • 在新电脑上将文件推送到已有的 Git 仓库
  • 【编程基础知识】Java命名规范及最佳实践
  • 孙怡带你深度学习(2)--PyTorch框架认识
  • Unity实战案例全解析:PVZ 植物卡片状态分析
  • 【乐企】基础版接口代码实现