import gradio as gr
from transformers import DetrImageProcessor, DetrForObjectDetection

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

def detect_objects(image):
    inputs = processor(images=image, return_tensors="pt")

    outputs = model(**inputs)

    boxes = outputs.pred_boxes
    labels = outputs.pred_classes

    detected_objects = [f"{label}: {box}" for label, box in zip(labels, boxes)]
    return detected_objects

inputs = gr.inputs.Image(label="Upload Image", type="pil")
outputs = gr.outputs.Textbox(label="Detected Objects")

gr.Interface(detect_objects, inputs, outputs, capture_session=True).launch()