Este repositório contém o código, os dados e os resultados do projeto que propõe uma nova abordagem para a detecção de deepfakes. A arquitetura utiliza uma combinação de análise espacial e de frequência, explorando redes neurais convolucionais e características derivadas da transformada rápida de Fourier (FFT).
A arquitetura combina duas fontes de dados:
- Imagens: Processadas por uma CNN para extração de características espaciais.
- Picos de frequência (FFT): Extraídos para capturar padrões específicos no domínio da frequência.
Os dados são fusionados em pontos específicos da rede para uma análise conjunta, seguidos por etapas de atenção espacial antes de prosseguir para convoluções adicionais.
Os experimentos foram conduzidos utilizando um subconjunto do dataset DFDC. A abordagem alcançou:
- Acurácia de Validação: 92,66%
- Acurácia Balanceada no Conjunto de Teste: 75,25%
- ROC AUC no Conjunto de Teste: 83,23%
Embora os resultados iniciais sejam promissores, foi observada uma tendência ao overfitting, indicando que ajustes no conjunto de dados e na arquitetura podem melhorar o desempenho.
- Linguagem: Python 3.8+
- Bibliotecas:
- PyTorch
- NumPy
- Pandas
- Matplotlib
- scikit-learn
Instale as dependências com o comando:
pip install -r requirements.txt
O conjunto de dados utilizado pode ser encontrado em https://www.kaggle.com/datasets/itamargr/dfdc-faces-of-the-train-sample.
Certifique-se de que os dados estão organizados conforme as pastas especificadas:
data/
├── train.csv
├── eval.csv
├── test.csv
Nota: faça a leitura dos diretórios e organize os caminhos em 3 arquivos .csv
contendo uma coluna path com os caminhos para as imagens.
Para treinar o modelo, execute:
python3 train.py ./data/train.csv ./data/eval.csv --b_size 64 --img_dim 224 --epochs 2 --out exp_1
Para avaliar o modelo treinado, use:
python3 test.py ./data/test.csv --ckp ./experiments/exp_1/weights/synthnet-best.pth --b_size 128 --img_dim 224 --out exp_1