juliopaciello/selfiekyc_deepfake_detection
selfiekyc_deepfake_detection Descripción General Este repositorio contiene el código fuente, datasets procesados y experimentos desarrollados para la detección de imágenes faciales sintéticas o manipuladas mediante Inteligencia Artificial en escenarios de verificación de identidad corporativa tipo selfie-KYC. El proyecto analiza la robustez de diferentes arquitecturas de Deep Learning frente a degradaciones operativas reales, incluyendo: Compresión JPEG fuerte… See the full description on the dataset page: https://huggingface.co/datasets/juliopaciello/selfiekyc_deepfake_detection.
selfiekycdeepfakedetection
Descripción General
Este repositorio contiene el código fuente, datasets procesados y experimentos desarrollados para la detección de imágenes faciales sintéticas o manipuladas mediante Inteligencia Artificial en escenarios de verificación de identidad corporativa tipo selfie-KYC.
El proyecto analiza la robustez de diferentes arquitecturas de Deep Learning frente a degradaciones operativas reales, incluyendo:
- Compresión JPEG fuerte
- Reducción de brillo
- Desenfoque gaussiano
- Reenvíos digitales y pérdida de calidad
El objetivo principal consiste en evaluar la capacidad de generalización de modelos CNN, Vision Transformers y arquitecturas híbridas CNN + Self-Attention para detectar imágenes reales vs sintéticas bajo condiciones controladas y degradadas.
Estructura del Proyecto
selfiekyc_deepfake_detection/
├── README.md
├── requirements.txt
├── src/
│ ├── datos_faceforensics_c23.py
│ ├── degradado_faceforensics_c23.py
│ ├── generar_gradcam_tfm.py
│ ├── generar_graficas_tfm.py
│ ├── run_clip_bench.py
│ ├── run_efficientnet_attention.py
│ ├── run_efficientnet_base.py
│ ├── utils_tfm.py
└── data/
├── metadata.csv
├── archive_faceforensics_c23_faces/
│ └── readme.txt
├── dataset_degradado_tfm/
│ ├── test_final/
│ │ ├── real/
│ │ └── sintetico/
│ └── train_val/
│ ├── real/
│ └── sintetico/
└── dataset_final_tfm/
├── test_final/
│ ├── real/
│ └── sintetico/
└── train_val/
├── real/
└── sintetico/Modelos Evaluados
1. EfficientNet-B4 (Baseline CNN)
Modelo convolucional utilizado como baseline principal del estudio.
Características:
- Arquitectura CNN eficiente
- Entrenamiento supervisado
- Entrada exclusiva de imágenes
- Bajo costo computacional
- Sensible a degradaciones severas
2. CLIP (Benchmark Transformer)
Modelo multimodal basado en Vision Transformers utilizado como benchmark de referencia.
Características:
- Arquitectura Transformer multimodal
- Representación semántica global
- Alta robustez y generalización
- Mayor costo computacional
- Mejor desempeño absoluto del estudio
3. EfficientNet-B4 + Self-Attention (Propuesta)
Arquitectura híbrida desarrollada en este trabajo incorporando mecanismos de Self-Attention sobre EfficientNet-B4.
Objetivos:
- Mejorar robustez frente a degradaciones
- Incrementar capacidad de generalización
- Reducir overfitting
- Aproximar comportamiento Transformer manteniendo eficiencia computacional
Resultados principales:
- Mejora aproximada de 8%–12% respecto al baseline CNN
- Mejor estabilidad de convergencia
- Menor degradación en escenarios reales
- Activaciones Grad-CAM más distribuidas sobre regiones faciales relevantes
Dataset Utilizado
FaceForensics c23 Extracted Faces 100K
El proyecto utiliza una variación derivada de FaceForensics++ publicada en Kaggle:
https://www.kaggle.com/datasets/gradientvoyager/faceforensics-c23-extracted-faces-100k
Características:
- Rostros extraídos y preprocesados
- Subconjunto c23
- Imágenes reales y DeepFakes
- Escenarios adecuados para clasificación facial binaria
- Compatible con tareas de selfie-KYC
Licencia del dataset:
CC BY-NC-SA 4.0
Attribution-NonCommercial-ShareAlike 4.0 InternationalCitación sugerida:
GradientVoyager. FaceForensics c23 Extracted Faces 100K.
Kaggle Dataset.
https://www.kaggle.com/datasets/gradientvoyager/faceforensics-c23-extracted-faces-100kDataset original base:
Rössler, A., Cozzolino, D., Verdoliva, L., Riess, C., Thies, J., & Nießner, M. (2019). FaceForensics++: Learning to Detect Manipulated Facial Images. ICCV 2019.
Pipeline de Degradación
Para aproximar condiciones reales de selfie-KYC se aplicaron degradaciones artificiales:
Métricas Utilizadas
Las principales métricas de evaluación fueron:
- Accuracy
- BCE Log Loss
- Estabilidad de convergencia
- Diagnóstico de overfitting
- Robustez en entorno degradado
Interpretabilidad
El proyecto incorpora Grad-CAM para análisis de explicabilidad visual.
Se evaluó:
- Regiones faciales relevantes
- Distribución espacial de activaciones
- Diferencias entre CNN y Self-Attention
- Robustez explicativa bajo degradaciones
Instalación
1. Clonar repositorio
git clone https://huggingface.co/datasets/juliopaciello/selfiekyc_deepfake_detection
cd selfiekyc_deepfake_detection2. Crear entorno virtual
python -m venv venvLinux / Mac
source venv/bin/activateWindows
venv\\Scripts\\activate3. Instalar dependencias
pip install -r requirements.txtEjecución
1. Procesamiento del dataset
Los scripts de preparación y degradación de imágenes se encuentran en:
datos_faceforensics_c23.py
degradado_faceforensics_c23.pyFunciones principales:
- Extracción y organización de imágenes
- Balanceo de clases
- Redimensionamiento
- Generación de escenarios degradados
- Construcción de metadata.csv
2. Ejecución de modelos
Los experimentos principales se ejecutan mediante:
run_clip_bench.py
run_efficientnet_base.py
run_efficientnet_attention.py
utils_tfm.pyFunciones principales:
- Entrenamiento
- Cross-validation
- Testing out-of-bag
- Cálculo de métricas
- Exportación de resultados
3. Generación de interpretabilidad Grad-CAM
Las visualizaciones neuronales se generan mediante:
generar_gradcam_tfm.pyFunciones principales:
- Heatmaps neuronales
- Activaciones espaciales
- Comparativa entre modelos
- Explicabilidad visual
4. Generación de gráficos experimentales
Los gráficos finales del TFM se generan mediante:
generar_graficas_tfm.pyFunciones principales:
- Accuracy curves
- BCE Log Loss
- Diagnóstico de overfitting
- Comparativas entre modelos
Resultados Generales
Aplicación en Biometría y Seguridad
Los resultados demuestran que:
- Las arquitecturas híbridas CNN + Self-Attention mejoran significativamente la robustez frente a degradaciones reales.
- CLIP mantiene la mejor capacidad de generalización, aunque con mayor costo computacional.
- Los modelos CNN tradicionales presentan limitaciones importantes bajo degradaciones operativas.
- La explicabilidad visual resulta crítica para procesos corporativos regulados tipo KYC.
Licencia
Los recursos del dataset en este repositorio heredan los términos del dataset FaceForensics++ y se distribuyen estrictamente bajo la licencia CC BY-NC-SA 4.0 (Atribución-NoComercial-CompartirIgual 4.0 Internacional).
El código fuente y los scripts de desarrollo ubicados dentro de la carpeta src/ están explícitamente excluidos de las restricciones de Creative Commons y están licenciados de forma independiente bajo la Licencia MIT:
Licencia MIT
Copyright (c) 2026 Julio Paciello
Por la presente se concede permiso, sin cargo alguno, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para utilizar el Software sin restricciones, incluyendo, sin limitación, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicenciamiento y/o venta de copias del Software, y para permitir a las personas a quienes se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIALIZACIÓN, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.Autor
Julio Paciello
AI researcher
Google Scholar: https://scholar.google.com/citations?user=Izr7zbIAAAAJ&hl=es
LinkedIn: https://www.linkedin.com/in/julio-paciello-84b689208
