mennamostafa55555 commited on
Commit
b7df221
·
1 Parent(s): e0ed50e

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +78 -0
app.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import supervision as sv
2
+ import gradio as gr
3
+ from ultralytics import YOLO
4
+ import sahi
5
+ import numpy as np
6
+
7
+
8
+
9
+ # Images
10
+ sahi.utils.file.download_from_url(
11
+ "https://transform.roboflow.com/bViBvBXkjUWzz4lYXwtoVTE2gpO2/210fe71d15bb416b0dfde415686da572/thumb.jpg",
12
+ "wh1.jpg",
13
+ )
14
+ sahi.utils.file.download_from_url(
15
+ "https://transform.roboflow.com/bViBvBXkjUWzz4lYXwtoVTE2gpO2/6731f1ac3e966e90ccc0057c86b42c74/thumb.jpg",
16
+ "wh2.jpg",
17
+ )
18
+ sahi.utils.file.download_from_url(
19
+ "https://transform.roboflow.com/bViBvBXkjUWzz4lYXwtoVTE2gpO2/ba9fc3cc24849c0408d5e2ddd4a4a4ed/thumb.jpg",
20
+ "wh3.jpg",
21
+ )
22
+
23
+
24
+
25
+
26
+ annotatorbbox = sv.BoxAnnotator()
27
+ annotatormask=sv.MaskAnnotator()
28
+
29
+
30
+ def yolov8_inference(
31
+ image: gr.inputs.Image = None,
32
+ model_name: gr.inputs.Dropdown = None,
33
+ image_size: gr.inputs.Slider = 640,
34
+ conf_threshold: gr.inputs.Slider = 0.25,
35
+ iou_threshold: gr.inputs.Slider = 0.45,
36
+ ):
37
+
38
+
39
+ image=image[:, :, ::-1].astype(np.uint8)
40
+ model = YOLO("/content/segment/train2/weights/best.pt")
41
+
42
+ results = model(image,imgsz=640)[0]
43
+ image=image[:, :, ::-1].astype(np.uint8)
44
+ detections = sv.Detections.from_yolov8(results)
45
+ annotated_image = annotatorbbox.annotate(scene=image, detections=detections)
46
+
47
+
48
+
49
+
50
+ return annotated_image
51
+
52
+ image_input = gr.inputs.Image() # Adjust the shape according to your requirements
53
+
54
+ inputs = [
55
+ gr.inputs.Image(label="Input Image"),
56
+ gr.Slider(
57
+ minimum=0.0, maximum=1.0, value=0.25, step=0.05, label="Confidence Threshold"
58
+ ),
59
+ gr.Slider(minimum=0.0, maximum=1.0, value=0.45, step=0.05, label="IOU Threshold"),
60
+ ]
61
+
62
+ outputs = gr.Image(type="filepath", label="Output Image")
63
+ title = "Ultralytics YOLOv8 Segmentation Demo"
64
+ import os
65
+ examples = [
66
+ ["wh1.jpg", 0.6, 0.45],
67
+ ["wh2.jpg", 0.25, 0.45],
68
+ ["wh3.jpg", 0.25, 0.45],
69
+ ]
70
+ demo_app = gr.Interface(examples=examples,
71
+ fn=yolov8_inference,
72
+ inputs=inputs,
73
+ outputs=outputs,
74
+ title=title,
75
+ cache_examples=True,
76
+ theme="default",
77
+ )
78
+ demo_app.launch(debug=False, enable_queue=True)