| 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 | |
| gradio_app = gr.Blocks() | |
| with gradio_app: | |
| gr.HTML( | |
| """ | |
| <h1 style='text-align: center'> | |
| YOLOv10: Real-Time End-to-End Object Detection | |
| </h1> | |
| """) | |
| gr.HTML( | |
| """ | |
| <h3 style='text-align: center'> | |
| Follow me for more! | |
| <a href='https://twitter.com/kadirnar_ai' target='_blank'>Twitter</a> | <a href='https://github.com/kadirnar' target='_blank'>Github</a> | <a href='https://www.linkedin.com/in/kadir-nar/' target='_blank'>Linkedin</a> | <a href='https://www.huggingface.co/kadirnar/' target='_blank'>HuggingFace</a> | |
| </h3> | |
| """) | |
| input_image = gr.Image(type="numpy") | |
| output_image = gr.Image(type="numpy", label="Annotated Image") | |
| gr.Interface( | |
| fn=detect, | |
| inputs=input_image, | |
| outputs=output_image, | |
| title='YOLOv10 Object Detection', | |
| description='Detect objects in images using the YOLOv10 model' | |
| ) | |
| gradio_app.launch() |