File size: 1,663 Bytes
4c6b724
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Nombre: Daniel Enrique Arocha Prada
from transformers import DetrImageProcessor, DetrForObjectDetection

import torch

from PIL import Image

import gradio as gr



# Cargar el procesador y el modelo

processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50")

model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50")



# Funci贸n para procesar la imagen

def detect_objects(image):

    # Preprocesamiento

    inputs = processor(images=image, return_tensors="pt")



    # Detectar objetos

    with torch.no_grad():

        outputs = model(**inputs)



    # Filtrar resultados

    target_sizes = torch.tensor([image.size[::-1]])  # (alto, ancho)

    results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0]



    # Crear una lista de los resultados con nombre y puntuaci贸n

    labels = results["labels"]

    scores = results["scores"]

    boxes = results["boxes"]



    # Mostrar los objetos detectados

    detected_objects = []

    for score, label, box in zip(scores, labels, boxes):

        detected_objects.append(f"Objeto: {label}, Score: {score:.2f}, Box: {box.tolist()}")



    return "\n".join(detected_objects)

# Crear la interfaz Gradio

def create_interface():

    interface = gr.Interface(

        fn=detect_objects,

        inputs=gr.Image(type="pil"), # Corrected line

        outputs=gr.Textbox(),

        live=True,

        title="Detecci贸n de Objetos con Transformers",

        description="Sube una imagen y descubre qu茅 objetos se pueden detectar."

    )



    interface.launch()



if __name__ == "__main__":

    create_interface()