German Andres Mahecha Suarez
Se realizan ajustes al codigo por compatibilidad
fa37726
Raw
History Blame Contribute Delete
1.65 kB
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):
class_name = model.config.id2label[label.item()]
detected_objects.append(f"Objeto: {label}, Class Name: {class_name}, 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"),
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()