Files changed (1) hide show
  1. README.md +78 -1
README.md CHANGED
@@ -10,4 +10,81 @@ pinned: false
10
  license: cc-by-nc-sa-4.0
11
  ---
12
 
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  license: cc-by-nc-sa-4.0
11
  ---
12
 
13
+ # Modelo de Reconocimiento Facial de Expresiones
14
+
15
+ ## Descripción
16
+
17
+ Este modelo ha sido entrenado para clasificar expresiones faciales en siete categorías: Enfadado, Disgustado, Miedo, Feliz, Triste, Sorprendido y Neutral. Es parte de un proyecto del curso de especialización en IA y Big Data, diseñado para demostrar el uso de modelos preentrenados y técnicas de Fine-Tuning en la clasificación de imágenes.
18
+
19
+ ## Detalles del Modelo
20
+
21
+ - **Arquitectura**: ResNet50
22
+ - **Dataset de Entrenamiento**: [FER2013](https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data)
23
+ - **Número de Etiquetas**: 7
24
+ - **Tamaño de Imagen**: 224x224
25
+ - **Función de Activación de Salida**: Softmax
26
+ - **Función de Pérdida**: CrossEntropyLoss
27
+ - **Optimizador**: Adam
28
+ - **Tasa de Aprendizaje**: 0.001
29
+
30
+ ## Transformaciones de Datos
31
+
32
+ Durante el preprocesamiento, las imágenes se sometieron a las siguientes transformaciones:
33
+
34
+ - **Resize**: 224x224
35
+ - **RandomHorizontalFlip**: True
36
+ - **ColorJitter**:
37
+ - Brillo: 0.2
38
+ - Contraste: 0.2
39
+ - Saturación: 0.2
40
+ - Tinte: 0.1
41
+ - **Normalize**:
42
+ - Media: [0.485, 0.456, 0.406]
43
+ - Desviación Estándar: [0.229, 0.224, 0.225]
44
+
45
+ ## Mejoras Realizadas
46
+
47
+ - **Congelación y Descongelación Selectiva de Capas**: Descongelamos las últimas capas de la red preentrenada para permitir un ajuste más fino.
48
+ - **Early Stopping**: Implementamos early stopping para detener el entrenamiento cuando la precisión de validación dejaba de mejorar.
49
+ - **Scheduler de Tasa de Aprendizaje**: Utilizamos un scheduler para reducir la tasa de aprendizaje durante el entrenamiento, ayudando a afinar el modelo.
50
+
51
+ ## Resultados
52
+
53
+ El modelo alcanzó los siguientes resultados durante el entrenamiento y validación:
54
+
55
+ - **Train Accuracy**: ~97.5%
56
+ - **Validation Accuracy**: ~61%
57
+ - **Test Accuracy**: ~62.5%
58
+
59
+ ## Uso del Modelo
60
+
61
+ Para utilizar este modelo, puedes cargarlo y realizar predicciones en nuevas imágenes de la siguiente manera:
62
+
63
+ ```python
64
+ import torch
65
+ from torchvision import models, transforms
66
+ import json
67
+ from PIL import Image
68
+
69
+ # Cargar el modelo
70
+ model = models.resnet50()
71
+ model.load_state_dict(torch.load("pytorch_model.bin", map_location=torch.device('cpu')))
72
+ model.eval()
73
+
74
+ # Configuración
75
+ with open("config.json") as f:
76
+ config = json.load(f)
77
+
78
+ # Preprocesamiento de imágenes
79
+ transform = transforms.Compose([
80
+ transforms.Resize((config["image_size"], config["image_size"])),
81
+ transforms.ToTensor(),
82
+ transforms.Normalize(mean=config["transformations"]["Normalize"]["mean"], std=config["transformations"]["Normalize"]["std"])
83
+ ])
84
+
85
+ # Ejemplo de uso con una imagen
86
+ image = Image.open("ruta_a_tu_imagen.jpg")
87
+ image = transform(image).unsqueeze(0)
88
+ output = model(image)
89
+ _, predicted = torch.max(output, 1)
90
+ print("Predicted emotion:", predicted.item())