pardhunadella commited on
Commit
53f0af4
1 Parent(s): 1d51cfb

Update app.py

Browse files

Updated model selection code.

Files changed (1) hide show
  1. app.py +80 -15
app.py CHANGED
@@ -1,3 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  import cv2
3
  import requests
@@ -5,6 +55,8 @@ import os
5
 
6
  from ultralytics import YOLO
7
 
 
 
8
  model0 = YOLO('yolov8.pt')
9
  model1 = YOLO('yolov8.pt')
10
  model2 = YOLO('yolov8.pt')
@@ -12,13 +64,23 @@ model3 = YOLO('yolov8.pt')
12
  model4 = YOLO('yolov8.pt')
13
  model5 = YOLO('yolov8.pt')
14
 
15
- models = [model0, model1, model2, model3, model4, model5]
16
- model_names = ["Model 0", "Model 1", "Model 2", "Model 3", "Model 4", "Model 5"]
 
 
 
 
 
 
 
 
17
 
18
 
19
- def show_preds_image(image_path, model_selection=0):
 
 
20
  image = cv2.imread(image_path)
21
- outputs = models[model_selection].predict(source=image_path)
22
  results = outputs[0].cpu().numpy()
23
  for i, det in enumerate(results.boxes.xyxy):
24
  cv2.rectangle(
@@ -31,23 +93,26 @@ def show_preds_image(image_path, model_selection=0):
31
  )
32
  return cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
33
 
34
-
35
- inputs_image = [
36
- gr.inputs.Image(type="file", label="Input Image"),
37
- gr.inputs.Dropdown(
38
- choices=[(name, idx) for idx, name in enumerate(model_names)],
39
- label="Select Model",
40
- default=0
41
- )
42
  ]
43
  outputs_image = [
44
- gr.outputs.Image(type="numpy", label="Output Image"),
45
  ]
 
46
  interface_image = gr.Interface(
47
  fn=show_preds_image,
48
- inputs=inputs_image,
49
  outputs=outputs_image,
50
  title="Panicle detector app",
 
 
51
  )
52
 
53
- interface_image.launch()
 
 
 
 
 
 
1
+ # import gradio as gr
2
+ # import cv2
3
+ # from ultralytics import YOLO
4
+
5
+ # model0 = YOLO('yolov8.pt')
6
+ # model1 = YOLO('yolov8.pt')
7
+ # model2 = YOLO('yolov8.pt')
8
+ # model3 = YOLO('yolov8.pt')
9
+ # model4 = YOLO('yolov8.pt')
10
+ # model5 = YOLO('yolov8.pt')
11
+
12
+ # models = [model0, model1, model2, model3, model4, model5]
13
+ # model_names = ["Model 0", "Model 1", "Model 2", "Model 3", "Model 4", "Model 5"]
14
+
15
+ # def show_preds_image(image, model_selection=0):
16
+ # img = image.read()
17
+ # outputs = models[model_selection].predict(source=img)
18
+ # results = outputs[0].cpu().numpy()
19
+ # for i, det in enumerate(results.boxes.xyxy):
20
+ # cv2.rectangle(
21
+ # img,
22
+ # (int(det[0]), int(det[1])),
23
+ # (int(det[2]), int(det[3])),
24
+ # color=(0, 0, 255),
25
+ # thickness=2,
26
+ # lineType=cv2.LINE_AA
27
+ # )
28
+ # return cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
29
+
30
+ # interface_image = gr.Interface(
31
+ # fn=show_preds_image,
32
+ # inputs=[
33
+ # gr.inputs.Image(type="file", label="Input Image"),
34
+ # gr.inputs.Dropdown(
35
+ # choices=[(name, idx) for idx, name in enumerate(model_names)],
36
+ # label="Select Model",
37
+ # default=0
38
+ # )
39
+ # ],
40
+ # outputs=gr.outputs.Image(type="numpy", label="Output Image"),
41
+ # title="Panicle detector app",
42
+ # )
43
+
44
+ # interface_image.launch()
45
+
46
+
47
+
48
+
49
+
50
+
51
  import gradio as gr
52
  import cv2
53
  import requests
 
55
 
56
  from ultralytics import YOLO
57
 
58
+
59
+
60
  model0 = YOLO('yolov8.pt')
61
  model1 = YOLO('yolov8.pt')
62
  model2 = YOLO('yolov8.pt')
 
64
  model4 = YOLO('yolov8.pt')
65
  model5 = YOLO('yolov8.pt')
66
 
67
+ models = []
68
+ models.append(model0)
69
+ models.append(model1)
70
+ models.append(model2)
71
+ models.append(model3)
72
+ models.append(model4)
73
+ models.append(model5)
74
+
75
+
76
+ path = [['flowering.png']]
77
 
78
 
79
+
80
+
81
+ def show_preds_image(image_path, selection):
82
  image = cv2.imread(image_path)
83
+ outputs = models[selection].predict(source=image_path)
84
  results = outputs[0].cpu().numpy()
85
  for i, det in enumerate(results.boxes.xyxy):
86
  cv2.rectangle(
 
93
  )
94
  return cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
95
 
96
+ inputs = [
97
+ gr.components.Image(type="filepath", label="Input Image"),
98
+ gr.components.Dropdown(choices=[str(i) for i in range(len(models))], label="Select Model", type="index"),
 
 
 
 
 
99
  ]
100
  outputs_image = [
101
+ gr.components.Image(type="numpy", label="Output Image"),
102
  ]
103
+ model_select = []
104
  interface_image = gr.Interface(
105
  fn=show_preds_image,
106
+ inputs=inputs,
107
  outputs=outputs_image,
108
  title="Panicle detector app",
109
+ examples=path,
110
+ cache_examples=False,
111
  )
112
 
113
+
114
+
115
+ gr.TabbedInterface(
116
+ [interface_image],
117
+ tab_names=['Image inference']
118
+ ).queue().launch()