Spaces:
Build error
Build error
from glob import glob | |
from PIL import Image | |
from ultralytics import YOLO | |
from utils import draw_bbox | |
import gradio as gr | |
import numpy as np | |
import subprocess | |
with gr.Blocks() as demo: | |
gr.Markdown("Detect planes demo.") | |
models=["SSD", "FasterRCNN", "CenterNet", "RetinaNet", "DETR", "RTMDET", "YOLOv5", "YOLOv8"] | |
with gr.Tab("Image"): | |
with gr.Row(): | |
with gr.Column(): | |
image_input_single = gr.Image() | |
image_output = gr.Image(visible = True) | |
with gr.Row(): | |
drop = gr.Dropdown([m for m in models], label="Model selection", type ="index", value=models[0]) | |
image_button = gr.Button("Detect", variant = 'primary') | |
with gr.Column(visible=True) as output_row: | |
object_count = gr.Textbox(value = 0,label="Aircrafts detected") | |
def runmodel(input_img, model_num): | |
Image.fromarray(input_img).save(source:="inptest.jpg") | |
print("Using model", model_name:=models[model_num]) | |
conf = 0.3 | |
if model_name in models[:-2]: | |
cmd = f"python3 image_inference.py {source} inference/{model_name.lower()}_config.py --weights inference/models/{model_name.lower()}best.pth --out-dir inference/results/{model_name.lower()}_inference --pred-score-thr {conf}" | |
subprocess.run(cmd, shell=True) | |
im, count = draw_bbox(model_name.lower()) | |
if model_name == "YOLOv5": | |
cmd = f"python3 yolov5/detect.py --weights inference/models/yolov5best.pt --source {source} --save-txt --save-conf --project inference/results/yolov5_inference --name predict" | |
subprocess.run(cmd, shell=True) | |
im, count = draw_bbox(model_name.lower()) | |
if model_name == "YOLOv8": | |
model = YOLO('inference/models/yolov8best.pt') | |
results = model(source, imgsz=1024, conf = conf, save_txt = True, save_conf = True, save = True, project = "inference/results/yolov8_inference") | |
im, count = draw_bbox(model_name.lower()) | |
return im, count | |
image_button.click(runmodel, inputs=[image_input_single, drop], outputs=[image_output, object_count]) | |
demo.launch() |