RizwanMunawar commited on
Commit
2f5236c
β€’
1 Parent(s): 21a46ed
Files changed (1) hide show
  1. app.py +44 -0
app.py CHANGED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import PIL.Image as Image
3
+
4
+ from ultralytics import ASSETS, YOLO
5
+
6
+ model = None
7
+
8
+
9
+ def predict_image(img, conf_threshold, iou_threshold, model_name):
10
+ """Predicts objects in an image using a YOLOv8 model with adjustable confidence and IOU thresholds."""
11
+ model = YOLO(model_name)
12
+ results = model.predict(
13
+ source=img,
14
+ conf=conf_threshold,
15
+ iou=iou_threshold,
16
+ show_labels=True,
17
+ show_conf=True,
18
+ imgsz=640,
19
+ )
20
+
21
+ for r in results:
22
+ im_array = r.plot()
23
+ im = Image.fromarray(im_array[..., ::-1])
24
+
25
+ return im
26
+
27
+
28
+ iface = gr.Interface(
29
+ fn=predict_image,
30
+ inputs=[
31
+ gr.Image(type="pil", label="Upload Image"),
32
+ gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
33
+ gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
34
+ gr.Radio(choices=["yolov8n", "yolov8s", "yolov8m"], label="Model Name", value="yolov8n"),
35
+ ],
36
+ outputs=gr.Image(type="pil", label="Result"),
37
+ title="Ultralytics Gradio Application πŸš€",
38
+ description="Upload images for inference. The Ultralytics YOLOv8n model is used by default.",
39
+ examples=[
40
+ [ASSETS / "bus.jpg", 0.25, 0.45, "yolov8n.pt"],
41
+ [ASSETS / "zidane.jpg", 0.25, 0.45, "yolov8n.pt"],
42
+ ],
43
+ )
44
+ iface.launch(share=True)