File size: 936 Bytes
caff61e
bccf53b
dc80d48
4fa263e
caff61e
e82b28e
b5a364c
8378a4b
36e1064
8378a4b
ab96246
e82b28e
8513c99
 
b5a364c
8513c99
 
35669c6
8513c99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import torch
import numpy as np
import gradio as gr
from PIL import Image

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True).to(device)

if device.type == 'cuda':
    model.half()

def detect_objects(image):
    image_pil = Image.fromarray(image)
    
    with torch.no_grad():
        results = model(image_pil)
    
    rendered_images = results.render()
    
    return np.array(rendered_images[0]) if rendered_images else image

# Gradio interface
iface = gr.Interface(
    fn=detect_objects,
    inputs=gr.Image(type="numpy", label="Upload Image"),
    outputs=gr.Image(type="numpy", label="Detected Objects"),
    title="Object Detection with YOLOv5",
    description="Use webcam or upload an image to detect objects.",
    allow_flagging="never",
    examples=["spring_street_after.jpg", "pexels-hikaique-109919.jpg"]
)

iface.launch()