Spaces:
Running
on
Zero
Running
on
Zero
File size: 2,134 Bytes
f1c31b8 55311cc de1d17c f1c31b8 55311cc a6972d6 f1c31b8 8458b85 f1c31b8 a6972d6 f1c31b8 aec3a67 a8a7793 ed335e7 de1d17c 5c0b724 de1d17c a8a7793 de1d17c 00700b7 f1c31b8 d325ab8 f1c31b8 a8a7793 f1c31b8 a8a7793 f1c31b8 a99bf86 f1c31b8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
import gradio as gr
import spaces
import os
@spaces.GPU
def yolov9_inference(img_path, model_path,image_size, conf_threshold, iou_threshold):
"""
Load a YOLOv9 model, configure it, perform inference on an image, and optionally adjust
the input size and apply test time augmentation.
:param model_path: Path to the YOLOv9 model file.
:param conf_threshold: Confidence threshold for NMS.
:param iou_threshold: IoU threshold for NMS.
:param img_path: Path to the image file.
:param size: Optional, input size for inference.
:return: A tuple containing the detections (boxes, scores, categories) and the results object for further actions like displaying.
"""
# Import YOLOv9
import yolov9
# Load the model
model = yolov9.load(model_path, device="cuda:0")
# Set model parameters
model.conf = conf_threshold
model.iou = iou_threshold
# Perform inference
results = model(img_path, size=image_size)
# Optionally, show detection bounding boxes on image
save_path = 'output/'
results.save(labels=True, save_dir=save_path, exist_ok=True)
print("save_path:",save_path)
print("img_path:",img_path)
new_image_path = os.path.basename(img_path)
output_path = save_path + new_image_path
print(f"Output image saved to {output_path}")
return output_path
inputs = [
gr.Image(type="filepath", label="Input Image"),
gr.Dropdown(
label="Model",
choices=[
"gelan-c.pt",
"gelan-e.pt",
"yolov9-c.pt",
"yolov9-e.pt",
],
value="gelan-c.pt",
),
gr.Slider(minimum=320, maximum=1280, value=640, step=32, label="Image Size"),
gr.Slider(minimum=0.0, maximum=1.0, value=0.25, step=0.05, label="Confidence Threshold"),
gr.Slider(minimum=0.0, maximum=1.0, value=0.45, step=0.05, label="IOU Threshold"),
]
outputs = gr.Image(type="filepath",label="Output Image")
title = "YOLOv9"
demo_app = gr.Interface(
fn=yolov9_inference,
inputs=inputs,
outputs=outputs,
title=title,
)
demo_app.launch(debug=True) |