Dricz's picture
Update app.py
1b97019 verified
raw
history blame
No virus
2.24 kB
import gradio as gr
import matplotlib.pyplot as plt
from PIL import Image
from ultralyticsplus import YOLO, render_result
import cv2
import numpy as np
# def response(image):
# print(image)
# results = model(image)
# for i, r in enumerate(results):
# # Plot results image
# im_bgr = r.plot()
# im_rgb = im_bgr[..., ::-1] # Convert BGR to RGB
# # im_rgb = Image.fromarray(im_rgb)
# return im_rgb
label = ['grenade','knife','pistol','rifle']
def response2(image: gr.Image = None,image_size: gr.Slider = 640, conf_threshold: gr.Slider = 0.3, iou_threshold: gr.Slider = 0.6):
model = YOLO('best (1).pt')
results = model.predict(image, conf=conf_threshold, iou=iou_threshold, imgsz=image_size)
box = results[0].boxes
render = render_result(model=model, image=image, result=results[0], rect_th = 1, text_th = 1)
text = ""
for r in results:
conf = r.boxes.conf
cls = r.boxes.cls
xywh = r.boxes.xywh
x = xywh[0]
y = xywh[1]
text += (f"Detected {cls} with confidence {conf} at \n")
return render,text
inputs = [
gr.Image(type="filepath", label="Input Image"),
gr.Slider(minimum=320, maximum=1280, value=640,
step=32, label="Image Size"),
gr.Slider(minimum=0.0, maximum=1.0, value=0.3,
step=0.05, label="Confidence Threshold"),
gr.Slider(minimum=0.0, maximum=1.0, value=0.6,
step=0.05, label="IOU Threshold"),
]
outputs = [gr.Image( type="filepath", label="Output Image"),
gr.Textbox()
]
title = "YOLOv8 Custom Object Detection by Uyen Nguyen"
# examples = [['one.jpg', 900, 0.5, 0.8],
# ['two.jpg', 1152, 0.05, 0.05],
# ['three.jpg', 1024, 0.25, 0.25],
# ['four.jpg', 832, 0.3, 0.3]]
# yolo_app = gr.Interface(
# fn=yoloV8_func,
# inputs=inputs,
# outputs=outputs,
# title=title,
# # examples=examples,
# # cache_examples=True,
# )
# Launch the Gradio interface in debug mode with queue enabled
# yolo_app.launch()
iface = gr.Interface(fn=response2, inputs=inputs, outputs=outputs)
iface.launch()