Spaces:
Runtime error
Runtime error
Orphen2024
commited on
Commit
•
3443a2f
1
Parent(s):
59a8147
Update app.py
Browse files
app.py
CHANGED
@@ -1,47 +1,47 @@
|
|
1 |
import gradio as gr
|
2 |
-
from transformers import AutoModel, AutoFeatureExtractor, AutoConfig
|
3 |
import torch
|
|
|
4 |
from PIL import Image
|
|
|
5 |
|
6 |
-
#
|
7 |
-
|
|
|
8 |
|
9 |
-
#
|
10 |
-
|
11 |
|
12 |
-
#
|
13 |
-
|
|
|
14 |
|
15 |
-
#
|
16 |
-
|
17 |
-
|
18 |
-
else:
|
19 |
-
model = AutoModel.from_pretrained(model_name)
|
20 |
|
21 |
-
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
-
|
24 |
-
|
25 |
-
# Convierte la imagen a tensor
|
26 |
-
inputs = feature_extractor(images=image, return_tensors="pt")
|
27 |
with torch.no_grad():
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
# Interfaz de Gradio
|
36 |
iface = gr.Interface(
|
37 |
-
fn=
|
38 |
-
inputs=gr.
|
39 |
-
outputs=gr.
|
40 |
-
title="Reconocimiento Facial de
|
41 |
-
description="
|
42 |
)
|
43 |
|
44 |
-
#
|
45 |
-
|
46 |
-
iface.launch()
|
47 |
-
|
|
|
1 |
import gradio as gr
|
|
|
2 |
import torch
|
3 |
+
from torchvision import models, transforms
|
4 |
from PIL import Image
|
5 |
+
import json
|
6 |
|
7 |
+
# Cargar la configuración
|
8 |
+
with open("reconocimiento_facial/config.json") as f:
|
9 |
+
config = json.load(f)
|
10 |
|
11 |
+
# Definir las etiquetas de las clases
|
12 |
+
class_labels = ["Angry", "Disgust", "Fear", "Happy", "Sad", "Surprise", "Neutral"]
|
13 |
|
14 |
+
# Crear el modelo y ajustar la última capa
|
15 |
+
model = models.resnet50()
|
16 |
+
model.fc = torch.nn.Linear(model.fc.in_features, len(class_labels)) # len(class_labels) = 7
|
17 |
|
18 |
+
# Cargar los pesos del modelo
|
19 |
+
model.load_state_dict(torch.load("reconocimiento_facial/pytorch_model.bin"))
|
20 |
+
model.eval()
|
|
|
|
|
21 |
|
22 |
+
# Preprocesamiento de imágenes
|
23 |
+
transform = transforms.Compose([
|
24 |
+
transforms.Resize((config["image_size"], config["image_size"])),
|
25 |
+
transforms.ToTensor(),
|
26 |
+
transforms.Normalize(mean=config["transformations"]["Normalize"]["mean"], std=config["transformations"]["Normalize"]["std"])
|
27 |
+
])
|
28 |
|
29 |
+
def predict(image):
|
30 |
+
image = transform(image).unsqueeze(0)
|
|
|
|
|
31 |
with torch.no_grad():
|
32 |
+
output = model(image)
|
33 |
+
_, predicted = torch.max(output, 1)
|
34 |
+
predicted_class = class_labels[predicted.item()]
|
35 |
+
return predicted_class
|
36 |
+
|
37 |
+
# Crear la interfaz de Gradio
|
|
|
|
|
38 |
iface = gr.Interface(
|
39 |
+
fn=predict,
|
40 |
+
inputs=gr.Image(type="pil"),
|
41 |
+
outputs=gr.Textbox(label="Predicted Expression"),
|
42 |
+
title="Reconocimiento Facial de Expresiones",
|
43 |
+
description="Sube una imagen de una cara para clasificar la expresión facial en una de las siete categorías: Enfadado, Disgustado, Miedo, Feliz, Triste, Sorprendido y Neutral."
|
44 |
)
|
45 |
|
46 |
+
# Ejecutar la interfaz
|
47 |
+
iface.launch()
|
|
|
|