pardhunadella's picture
Update app.py
53f0af4 verified
raw
history blame
No virus
2.86 kB
# import gradio as gr
# import cv2
# from ultralytics import YOLO
# model0 = YOLO('yolov8.pt')
# model1 = YOLO('yolov8.pt')
# model2 = YOLO('yolov8.pt')
# model3 = YOLO('yolov8.pt')
# model4 = YOLO('yolov8.pt')
# model5 = YOLO('yolov8.pt')
# models = [model0, model1, model2, model3, model4, model5]
# model_names = ["Model 0", "Model 1", "Model 2", "Model 3", "Model 4", "Model 5"]
# def show_preds_image(image, model_selection=0):
# img = image.read()
# outputs = models[model_selection].predict(source=img)
# results = outputs[0].cpu().numpy()
# for i, det in enumerate(results.boxes.xyxy):
# cv2.rectangle(
# img,
# (int(det[0]), int(det[1])),
# (int(det[2]), int(det[3])),
# color=(0, 0, 255),
# thickness=2,
# lineType=cv2.LINE_AA
# )
# return cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# interface_image = gr.Interface(
# fn=show_preds_image,
# inputs=[
# gr.inputs.Image(type="file", label="Input Image"),
# gr.inputs.Dropdown(
# choices=[(name, idx) for idx, name in enumerate(model_names)],
# label="Select Model",
# default=0
# )
# ],
# outputs=gr.outputs.Image(type="numpy", label="Output Image"),
# title="Panicle detector app",
# )
# interface_image.launch()
import gradio as gr
import cv2
import requests
import os
from ultralytics import YOLO
model0 = YOLO('yolov8.pt')
model1 = YOLO('yolov8.pt')
model2 = YOLO('yolov8.pt')
model3 = YOLO('yolov8.pt')
model4 = YOLO('yolov8.pt')
model5 = YOLO('yolov8.pt')
models = []
models.append(model0)
models.append(model1)
models.append(model2)
models.append(model3)
models.append(model4)
models.append(model5)
path = [['flowering.png']]
def show_preds_image(image_path, selection):
image = cv2.imread(image_path)
outputs = models[selection].predict(source=image_path)
results = outputs[0].cpu().numpy()
for i, det in enumerate(results.boxes.xyxy):
cv2.rectangle(
image,
(int(det[0]), int(det[1])),
(int(det[2]), int(det[3])),
color=(0, 0, 255),
thickness=2,
lineType=cv2.LINE_AA
)
return cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
inputs = [
gr.components.Image(type="filepath", label="Input Image"),
gr.components.Dropdown(choices=[str(i) for i in range(len(models))], label="Select Model", type="index"),
]
outputs_image = [
gr.components.Image(type="numpy", label="Output Image"),
]
model_select = []
interface_image = gr.Interface(
fn=show_preds_image,
inputs=inputs,
outputs=outputs_image,
title="Panicle detector app",
examples=path,
cache_examples=False,
)
gr.TabbedInterface(
[interface_image],
tab_names=['Image inference']
).queue().launch()