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.
- Full Paper- https://doi.org/10.48550/arXiv.2504.02900
- Short Paper SIBGRAPI - https://doi.org/10.1109/SIBGRAPI67909.2025.11223495
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
Conjunto de ferramentas interessantes na área de deepfakes.
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.
- paper: DeepFaceLab: Integrated, flexible and extensible face-swapping framework
- repo: DeepFaceLab
- colab: https://github.com/dream80/DeepFaceLab_Colab
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 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 é 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 disponibiliza modelos de aprendizado profundo com pesos pré-treinados. Esses modelos podem ser usados para previsão, extração de recursos e ajuste fino.
Compilado de informações pertinentes para esse trabalho.
- https://github.com/flyingby/Awesome-Deepfake-Generation-and-Detection - Abrangente
- https://github.com/Daisy-Zhang/Awesome-Deepfakes-Detection - Direcionado
- https://github.com/SCLBD/DeepfakeBench - Benchmark feito com 15 modelos (estado da arte) e 9 datasets (resultando em 6 pós-processamento)
| 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 |
| 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.
As etapas abaixo são necessárias para reproduzir o pré-processamento ou visualizar os resultados obtidos.
- Clone o repositório:
git clone https://github.com/MatMB115/tfg-deepfake-detection
cd tfg-deepfake-detection- 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- Instale as dependências:
pip install -r requirements.txtOs 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.
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.
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:

Adicionalmente, o benchmark dispõe de monitoramento do treinamento com o Tensorboard. Para visualizar os relatório basta executar:
tensorboard --logdir result/logsCom o tensorboard é possível ver os resultados do treinamento dos modelos presentes no benchmark de forma minuciosa, conforme figura abaixo.
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.

)


