Skip to content

MatMB115/tfg-deepfake-detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub language count Repository size GitHub last commit License Stargazers

Análise Comparativa de Modelos para Detecção de Deepfake

Este repositório é uma fonte central de informações sobre o trabalho desenvolvido acerca da comparação de desempenho de novos modelos para Detecção de Deepfake. Aqui, você encontrará uma compilação de recursos, incluindo artigos, relatórios, modelos relevantes e scripts de pré-processamento. O objetivo é fornecer uma referência única e acessível aos interessados no trabalho desenvolvido na área de detecção de deepfakes e viabilizar a realização do Trabalho Final de Graduação (TFG) para graduação na Universidade Federal de Itajubá.

Os principais resultados deste trabalho foram sintetizados em formato de artigo científico e publicados nos anais do SIBGRAPI, ampliando a divulgação das análises comparativas e das contribuições obtidas na detecção de deepfakes.

Guia das Seções

Estrutura do Trabalho

tfg-deepfake-detection/
├── .gitignore                
├── LICENSE                   
├── README.md                 # Documentação do projeto
├── notebooks/                # Notebooks utilizados em VMs para treinamento e teste
├── preprocessing/            # Scripts de pré-processamento
│   ├── deepspeak/            # Scripts específicos para o dataset DeepSpeak
│   │   ├── create_batches.sh # Script para dividir vídeos em lotes
│   │   ├── preprocessing.py  # Script principal de pré-processamento do DeepSpeak
│   │   ├── sort_files.py     # Script para copiar arquivos selecionados (quantidade de frames)
│   │   ├── dataset.py        # Baixar os dados do dataset
│   └── mouth/                # Scripts para extração de bocas de vídeos (abordagem desconsiderada ao decorrer do trabalho)
│   │   ├── mouth_extrator.py 
│   │   ├── run.sh            
│   │   └── split_videos.bash 
│   └── wild_deepfake/        # Scripts específicos para o dataset WildDeepfake
│       ├── extract.py        # Script para copiar, reorganizar imagens e gerar metadados (json)
│       └── sort.py           # Script para copiar arquivos
├── requirements.txt          # Dependências do projeto
└── result/                   # Resultados das predições em JSON e binário
│   ├── assets/               # Gráficos e tabelas gerados    
│   ├── original/             
│   ├── original_benchmark/   
│   ├── retrain/              
│   ├── retrain_benchmark/    
└── result_all.py         # Script para processar e analisar todos os resultados

Ferramentas

Conjunto de ferramentas interessantes na área de deepfakes.

DeepfakeLab

O DeepFaceLab é um software usado para criar deepfakes, especialmente para troca de rostos. Ele foi desenvolvido para ser fácil de usar, oferecendo ferramentas poderosas para criar deepfakes de alta qualidade.

Face-recognicion

Reconheça e manipule rostos em Python ou na linha de comando com a biblioteca de reconhecimento facial mais simples do mundo. Utilizado como backend na maioria dos modelos que faz análise da face.

MediaPipe

MediaPipe Solutions fornece um conjunto de bibliotecas e ferramentas para você aplicar rapidamente técnicas de inteligência artificial (IA) e aprendizado de máquina (ML) em seus aplicativos.

DeepFace

Deepface é uma estrutura leve de reconhecimento facial e análise de atributos faciais (idade, gênero, emoção e raça) para python. Envolve modelos de última geração: VGG-Face, FaceNet, OpenFace, DeepFace, DeepID, ArcFace, Dlib, SFace e GhostFaceNet.

Keras

Keras disponibiliza modelos de aprendizado profundo com pesos pré-treinados. Esses modelos podem ser usados ​​para previsão, extração de recursos e ajuste fino.

Material Analisado

Compilado de informações pertinentes para esse trabalho.

Repositório com Compilados de Publicações

Modelos Promissores

Status Repositório Backbone Descrição Fonte Implementação
XceptionNet Xception Utiliza XceptionNet para detectar deepfakes, focando na extração de características de imagens. Treinado com FaceForensics++. GitHub DeepfakeBenchmark
GenConViT ConvNext, SwinTransformer Modelos baseados em Autoencoder e VAE com backbones ConvNext e SwinTransformer, voltados para análise de vídeo. GitHub Original
icpr2020dfdc CNNs Combina diferentes CNNs para detecção de deepfakes, com diversos modelos pré-treinados disponíveis para teste. GitHub Original
LIPINC MSTIE (Mouth Spatial-Temporal Inconsistency Extractor) Detecta deepfakes de sincronização labial ao identificar inconsistências temporais nos movimentos labiais entre frames utilizando mecanismo de atenção. GitHub Original
LipFD ViT-L/14 (Vision Transformer) Foca na detecção de deepfakes de sincronização labial, usando inconsistências temporais entre áudio e vídeo. GitHub Original
SPSL Xception Combina informações espaciais e do espectro de fase para detectar artefatos de up-sampling em imagens forjadas, focando em texturas locais ao reduzir a profundidade da rede para melhorar a detecção de deepfakes. GitHub DeepfakeBenchmark
UCF Xception Decompõe a imagem em componentes irrelevantes à falsificação, específicos ao método de falsificação e comuns a várias falsificações, utilizando apenas os componentes comuns para melhorar a generalização na detecção de deepfakes. GitHub DeepfakeBenchmark
EfficientB4 EfficientB4 Escala de maneira uniforme a profundidade, largura e resolução da rede usando um coeficiente composto, otimizando o desempenho e a eficiência através de uma arquitetura cuidadosamente projetada e dimensionada. GitHub DeepfakeBenchmark
MesoNet Meso4Inception Detecta falsificações faciais em vídeos analisando propriedades mesoscópicas das imagens através de redes profundas com poucas camadas, otimizadas para lidar com compressão e detectar deepfakes e Face2Face. GitHub DeepfakeBenchmark

Datasets

Dataset Ano Paper Download Link
Deepfake-TIMIT 2018 paper download
Celeb-DF (v1 & v2) 2019 paper download
FaceForensic++ 2019 paper download
DFDC 2019 paper download
DFFD 2019 paper download
FakeAVCeleb 2021 paper download
WildDeepfake 2021 paper download
DeepSpeak 2024 paper download

A figura abaixo ilustra os tipos de amostras presentes em alguns dos datasets relevantes na literatura. Datasets

Requisitos

As etapas abaixo são necessárias para reproduzir o pré-processamento ou visualizar os resultados obtidos.

  1. Clone o repositório:
git clone https://github.com/MatMB115/tfg-deepfake-detection
cd tfg-deepfake-detection
  1. Crie e ative um ambiente virtual Python:
python -m venv local
source local/bin/activate  # Para Linux/MacOS
# .\local\Scripts\Activate.ps1  # Para Windows PowerShell
# .\local\Scripts\activate  # Para Windows Command Prompt
  1. Instale as dependências:
pip install -r requirements.txt

Pré-processamento

Os scripts de pré-processamento neste repositório são destinados principalmente para o modelo GenConViT. Para os modelos do Deepfakebenchmark, foi utilizado o pipeline de pré-processamento fornecido pelo próprio benchmark. Os conjuntos de dados utilizados são o DeepSpeak e o WildDeepfake. A pasta preprocessing/ contém subpastas específicas para cada dataset. Esses scripts garantem que os dados estejam prontos para serem utilizados nos experimentos com o GenConViT.

Ramificações

Os códigos do GenConViT e do Deepfake Benchmark foram adaptados para atender às necessidades específicas deste projeto. É possível encontrar os novos repositório em:

As principais modificações incluem:

  • Adição de suporte a novos datasets (Ambos): O pipeline foi ajustado para permitir a integração e o processamento de novos conjuntos de dados, como DeepSpeak e WildDeepfake (apenas para o GenConViT).
  • Implementação de ajustes para predições (GenConViT): modificações para permitir a predição utilizando datasets que contêm apenas imagens pré-processadas.
  • Funcionalidades para salvar dados de predição (Ambos): salvar os dados de predição, permitindo uma análise posterior mais detalhada e organizada.

Resultados

O script result_all.py é responsável por processar os JSONs e binários com as informações armazenadas das predições. Ao executá-lo, serão gerados os gráficos e tabelas que foram apresentados na monografia.

Os resultados podem ser expressos com gráficos: ROC-exemplo Também, podem ser exportados como tabelas: Tabela-exemplo

Adicionalmente, o benchmark dispõe de monitoramento do treinamento com o Tensorboard. Para visualizar os relatório basta executar:

tensorboard --logdir result/logs

Com o tensorboard é possível ver os resultados do treinamento dos modelos presentes no benchmark de forma minuciosa, conforme figura abaixo. Tensorboard

Sobre mim


Matheus Martins

🧑‍💻

Olá! Sou um estudante de Ciência da Computação na Universidade Federal de Itajubá, com foco em estudar redes neurais profundas. Tenho experiência com algumas tecnologias que estão listadas no meu perfil.

About

Esse repositório busca agregar as informações obtidas com revisão acerca da detecção de Deepfakes

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors