CarPeAs commited on
Commit
b7cdcce
1 Parent(s): c5edfaa

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +83 -0
README.md ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ language:
4
+ - es
5
+ ---
6
+ # Modelo de Reconocimiento Facial de Expresiones
7
+
8
+ ## Descripción
9
+
10
+ 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.
11
+
12
+ ## Detalles del Modelo
13
+
14
+ - **Arquitectura**: ResNet50
15
+ - **Dataset de Entrenamiento**: [FER2013](https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data)
16
+ - **Número de Etiquetas**: 7
17
+ - **Tamaño de Imagen**: 224x224
18
+ - **Función de Activación de Salida**: Softmax
19
+ - **Función de Pérdida**: CrossEntropyLoss
20
+ - **Optimizador**: Adam
21
+ - **Tasa de Aprendizaje**: 0.001
22
+
23
+ ## Transformaciones de Datos
24
+
25
+ Durante el preprocesamiento, las imágenes se sometieron a las siguientes transformaciones:
26
+
27
+ - **Resize**: 224x224
28
+ - **RandomHorizontalFlip**: True
29
+ - **ColorJitter**:
30
+ - Brillo: 0.2
31
+ - Contraste: 0.2
32
+ - Saturación: 0.2
33
+ - Tinte: 0.1
34
+ - **Normalize**:
35
+ - Media: [0.485, 0.456, 0.406]
36
+ - Desviación Estándar: [0.229, 0.224, 0.225]
37
+
38
+ ## Mejoras Realizadas
39
+
40
+ - **Congelación y Descongelación Selectiva de Capas**: Descongelamos las últimas capas de la red preentrenada para permitir un ajuste más fino.
41
+ - **Early Stopping**: Implementamos early stopping para detener el entrenamiento cuando la precisión de validación dejaba de mejorar.
42
+ - **Scheduler de Tasa de Aprendizaje**: Utilizamos un scheduler para reducir la tasa de aprendizaje durante el entrenamiento, ayudando a afinar el modelo.
43
+
44
+ ## Resultados
45
+
46
+ El modelo alcanzó los siguientes resultados durante el entrenamiento y validación:
47
+
48
+ - **Train Accuracy**: ~97.5%
49
+ - **Validation Accuracy**: ~61%
50
+ - **Test Accuracy**: ~62.5%
51
+
52
+ ## Uso del Modelo
53
+
54
+ Para utilizar este modelo, puedes cargarlo y realizar predicciones en nuevas imágenes de la siguiente manera:
55
+
56
+ ```python
57
+ import torch
58
+ from torchvision import models, transforms
59
+ import json
60
+ from PIL import Image
61
+
62
+ # Cargar el modelo
63
+ model = models.resnet50()
64
+ model.load_state_dict(torch.load("pytorch_model.bin"))
65
+ model.eval()
66
+
67
+ # Configuración
68
+ with open("config.json") as f:
69
+ config = json.load(f)
70
+
71
+ # Preprocesamiento de imágenes
72
+ transform = transforms.Compose([
73
+ transforms.Resize((config["image_size"], config["image_size"])),
74
+ transforms.ToTensor(),
75
+ transforms.Normalize(mean=config["transformations"]["Normalize"]["mean"], std=config["transformations"]["Normalize"]["std"])
76
+ ])
77
+
78
+ # Ejemplo de uso con una imagen
79
+ image = Image.open("ruta_a_tu_imagen.jpg")
80
+ image = transform(image).unsqueeze(0)
81
+ output = model(image)
82
+ _, predicted = torch.max(output, 1)
83
+ print("Predicted emotion:", predicted.item())