Spaces:
Runtime error
Runtime error
File size: 1,893 Bytes
b2e0420 d240e67 b2e0420 d240e67 f70b16e b2e0420 |
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 |
Hugging Face's logo
Search models, datasets, users...
Spaces:
Epitech
/
Object-Detection
like
1
App
Files
Community
Object-Detection
/
app.py
paulmondon
Add requirements.txt
a72c3ec
raw
history
blame
contribute
delete
1.6 kB
from transformers import DetrImageProcessor, DetrForObjectDetection
import torch
from PIL import Image, ImageDraw
import gradio as gr
import requests
import random
def detect_objects(image):
# Load the pre-trained DETR model
processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50")
model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50")
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
# convert outputs (bounding boxes and class logits) to COCO API
# let's only keep detections with score > 0.9
target_sizes = torch.tensor([image.size[::-1]])
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0]
# Draw bounding boxes and labels on the image
draw = ImageDraw.Draw(image)
for i, (score, label, box) in enumerate(zip(results["scores"], results["labels"], results["boxes"])):
box = [round(i, 2) for i in box.tolist()]
color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
draw.rectangle(box, outline=color, width=3)
label_text = f"{model.config.id2label[label.item()]}: {round(score.item(), 2)}"
draw.text((box[0], box[1]), label_text, fill=color)
return image
def upload_image(file):
image = Image.open(file.name)
image_with_boxes = detect_objects(image)
return image_with_boxes
iface = gr.Interface(
fn=upload_image,
inputs="file",
outputs="image",
title="Object Detection",
description="Upload an image and detect objects using DETR model.",
allow_flagging=False
)
iface.launch()
|