|
import gradio as gr |
|
import torch |
|
from ultralyticsplus import YOLO, render_result |
|
|
|
def yoloFunc(image: gr.inputs.Image = None, |
|
image_size: int = 640, |
|
conf_threshold: float = 0.4, |
|
iou_threshold: float = 0.5): |
|
model_path = 'best.pt' |
|
model = YOLO(model_path) |
|
|
|
results = model.predict(image, |
|
image_size=image_size, |
|
conf_threshold=conf_threshold, |
|
iou_threshold=iou_threshold |
|
) |
|
|
|
box = results[0].boxes |
|
|
|
render = render_result(model=model, image=image, results=results[0]) |
|
return render |
|
|
|
inputs = [ |
|
gr.inputs.Image(type='filepath', label="Input Image"), |
|
gr.inputs.Slider(minimum=320, maximum=1024, default=640, step=32, label="Image Size"), |
|
gr.inputs.Slider(minimum=0.1, maximum=1.0, default=0.4, steps=0.05, label="Confidence Threshold"), |
|
gr.inputs.Slider(minimum=0.1, maximum=1.0, default=0.5, steps=0.05, label="IOU Threshold") |
|
] |
|
|
|
outputs = gr.outputs.Image(type='filepath', label="Output Image") |
|
|
|
title = "Pothole Detection" |
|
|
|
yolo_app = gr.Interface( |
|
fn=yoloFunc, |
|
inputs=inputs, |
|
outputs=outputs, |
|
title=title, |
|
) |
|
|
|
yolo_app.launch(debug=True, enable_queue=True) |