File size: 1,005 Bytes
6dc3cf1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 gradio as gr
from PIL import Image, ImageDraw
from transformers import pipeline

objDetector = pipeline(task = "object-detection", 
                       model = "facebook/detr-resnet-50")

def detect_objects(image):           # image is a NumPy array
    image = Image.fromarray(image)   # convert from NumPy array to PIL image
    draw = ImageDraw.Draw(image)     # create a drawable image
    results = objDetector(image)     # detect objects in image
    
    for obj in results:
        if obj['score'] < 0.9:
            continue
        box = [
            obj['box']['xmin'],
            obj['box']['ymin'],
            obj['box']['xmax'],
            obj['box']['ymax']
        ]
        draw.rectangle(box, outline='yellow', width=5)
        draw.text((box[0], box[1] - 15), obj['label'], fill='white')
    
    return image

demo = gr.Interface(
    fn = detect_objects,
    inputs = gr.Image(label = "Upload Image"),
    outputs = gr.Image(label = "Detected Objects")
)

demo.launch()