import gradio as gr from ultralytics import YOLO import spaces @spaces.GPU(duration=200) def LeYOLO_inference(image, model_id, image_size, conf_threshold, iou_threshold): model = YOLO(f"{model_id}.pt") results = model(source=image, imgsz=image_size, iou=iou_threshold, conf=conf_threshold, verbose=False)[0] def app(): with gr.Blocks(): with gr.Row(): with gr.Column(): image = gr.Image(type="pil", label="Image") model_id = gr.Dropdown( label="Model", choices=[ "yolov10n", "yolov10s", "yolov10m", "yolov10b", "yolov10l", "yolov10x", ], value="yolov10m", ) image_size = gr.Slider( label="Image Size", minimum=320, maximum=1280, step=32, value=640, ) conf_threshold = gr.Slider( label="Confidence Threshold", minimum=0.1, maximum=1.0, step=0.1, value=0.25, ) iou_threshold = gr.Slider( label="IoU Threshold", minimum=0.1, maximum=1.0, step=0.1, value=0.45, ) yolov10_infer = gr.Button(value="Detect Objects") with gr.Column(): output_image = gr.Image(type="pil", label="Annotated Image") yolov10_infer.click( fn=yolov10_inference, inputs=[ image, model_id, image_size, conf_threshold, iou_threshold, ], outputs=[output_image], ) gr.Examples( examples=[ [ "dog.jpeg", "yolov10x", 640, 0.25, 0.45, ], [ "huggingface.jpg", "yolov10m", 640, 0.25, 0.45, ], [ "zidane.jpg", "yolov10b", 640, 0.25, 0.45, ], ], fn=LeYOLO_inference, inputs=[ image, model_id, image_size, conf_threshold, iou_threshold, ], outputs=[output_image], cache_examples="lazy", ) gradio_app = gr.Blocks() with gradio_app: gr.HTML( """