|
import gradio as gr |
|
from ultralytics import YOLOv10 |
|
import supervision as sv |
|
|
|
MODEL_PATH = 'yolov10n.pt' |
|
model = YOLOv10(MODEL_PATH) |
|
box_annotator = sv.BoxAnnotator() |
|
|
|
def detect(image): |
|
results = model(source=image, conf=0.25, verbose=False)[0] |
|
detections = sv.Detections.from_ultralytics(results) |
|
|
|
labels = [ |
|
f"{model.model.names[class_id]} {confidence:.2f}" |
|
for class_id, confidence in zip(detections.class_id, detections.confidence) |
|
] |
|
annotated_image = box_annotator.annotate(image, detections=detections, labels=labels) |
|
|
|
return annotated_image |
|
|
|
gr.Interface( |
|
fn=detect, |
|
inputs=gr.inputs.Image(type="numpy"), |
|
outputs=gr.outputs.Image(type="numpy", label="Annotated Image"), |
|
title='YOLOv10 Object Detection', |
|
description='Detect objects in images using the YOLOv10 model' |
|
).launch() |