Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python | |
| # coding: utf-8 | |
| # In[ ]: | |
| # importing required libraries | |
| from transformers import pipeline | |
| import gradio as gr | |
| from PIL import Image, ImageDraw | |
| # main function for object detection | |
| def detector(raw): | |
| # Resize the image | |
| WIDTH = 800 | |
| width, height = raw.size | |
| ratio = float(WIDTH) / float(width) | |
| new_h = height * ratio | |
| ip_img = raw.resize((int(WIDTH), int(new_h)), Image.Resampling.LANCZOS) | |
| # load the model pipeline and predict | |
| outs = pipeline(model="hustvl/yolos-tiny")(ip_img) | |
| # draw the image on the canvas | |
| draw = ImageDraw.Draw(ip_img) | |
| # draw the boxes with labels | |
| for object in outs: | |
| score = f"{object['score']*100:.2f}%" | |
| label = object['label'] | |
| xmin, ymin, xmax, ymax = object['box'].values() | |
| draw.rectangle((xmin, ymin, xmax, ymax), outline='red', width=1) | |
| draw.text((xmin, ymin), f"{label}: {score}", fill="black") | |
| return ip_img | |
| demo = gr.Interface(fn=detector, | |
| inputs=gr.Image(type='pil'), | |
| outputs=gr.Image(type='pil'), allow_flagging=False) | |
| demo.queue(True) | |
| demo.launch(debug=True, inline=False, show_api=False, share=False) | |