Hugomartinezg commited on
Commit
9dc95d8
·
verified ·
1 Parent(s): 1a58095

Permite tomar una imagen y entregar el texto de lo que contiene.
Es importante Cargar la imagen para que el modelo, permita entregar el texto.

Files changed (1) hide show
  1. app.py +38 -0
app.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import AutoModelForImageClassification, AutoFeatureExtractor
3
+ import torch
4
+ from PIL import Image
5
+ import requests
6
+
7
+ # Cargar el modelo y el extractor de características
8
+ model_name = "microsoft/swin-small-patch4-window7-224"
9
+ model = AutoModelForImageClassification.from_pretrained(model_name)
10
+ feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)
11
+
12
+ def predict(image):
13
+ # Preprocesar la imagen
14
+ inputs = feature_extractor(images=image, return_tensors="pt")
15
+ outputs = model(**inputs)
16
+ logits = outputs.logits
17
+ # Obtener las predicciones
18
+ probs = torch.nn.functional.softmax(logits, dim=-1)
19
+ top_probs, top_labels = torch.topk(probs, 3)
20
+ top_probs = top_probs.detach().numpy().flatten()
21
+ top_labels = top_labels.detach().numpy().flatten()
22
+ # Convertir las etiquetas a nombres
23
+ id2label = model.config.id2label
24
+ labels = [id2label[label] for label in top_labels]
25
+ return {labels[i]: float(top_probs[i]) for i in range(len(labels))}
26
+
27
+ titulo = "Mi primer demo con Hugging Face"
28
+ descripcion = "Este es un demo ejecutado durante la clase de Hugo Martinez."
29
+
30
+ demo = gr.Interface(
31
+ fn=predict,
32
+ inputs=gr.Image(label="Carga una imagen aquí"),
33
+ outputs=gr.Label(num_top_classes=3),
34
+ title=titulo,
35
+ description=descripcion
36
+ )
37
+
38
+ demo.launch()