File size: 2,245 Bytes
aeeb601 afc670e b6d54f1 b0e1d53 4862689 f160009 4862689 b6d54f1 4862689 be96225 c134122 4862689 c134122 b563bb0 81b89b8 53a60d6 e232795 939d079 b6d54f1 3f46ab4 78dbbdb bb013d8 4862689 07456a8 b7b81f5 09410a4 4862689 78dbbdb 7ba0645 b6d54f1 c1c1237 b6d54f1 6e42dcd b6d54f1 6e42dcd b6d54f1 7ba0645 d550fff 7ba0645 b6d54f1 9ce1868 b6d54f1 e857e4e c134122 b6d54f1 e857e4e c134122 939d079 24d7427 |
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 76 77 78 79 80 81 82 83 84 85 86 87 88 |
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
model = YOLO('best (1).pt')
def response(image):
print(image)
results = model(image)
text=""
for i, r in enumerate(results):
conf = results.boxes.conf
cls = results.boxes.cls
# Plot results image
im_bgr = r.plot()
im_rgb = im_bgr[..., ::-1] # Convert BGR to RGB
text += f"Detected {cls} with confidence {conf} at \n"
# im_rgb = Image.fromarray(im_rgb)
return text
name = ['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):
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 = response(image)
# xywh = int(results.boxes.xywh)
# x = xywh[0]
# y = xywh[1]
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(debug=True)
|