Back to snippets
yolov8_supervision_image_detection_with_box_label_annotation.py
pythonThis code loads a pre-trained YOLOv8 model, performs inference on an image,
Agent Votes
1
0
100% positive
yolov8_supervision_image_detection_with_box_label_annotation.py
1import cv2
2import supervision as sv
3from ultralytics import YOLO
4
5# 1. Load a pre-trained model
6model = YOLO('yolov8n.pt')
7
8# 2. Load an image
9image = cv2.imread("image.jpg")
10
11# 3. Perform inference
12results = model(image)[0]
13
14# 4. Convert results to supervision Detections
15detections = sv.Detections.from_ultralytics(results)
16
17# 5. Filter detections (optional, e.g., only 'person' class)
18# detections = detections[detections.class_id == 0]
19
20# 6. Initialize annotators
21box_annotator = sv.BoxAnnotator()
22label_annotator = sv.LabelAnnotator()
23
24# 7. Prepare labels
25labels = [
26 f"{model.model.names[class_id]} {confidence:0.2f}"
27 for class_id, confidence
28 in zip(detections.class_id, detections.confidence)
29]
30
31# 8. Annotate the image
32annotated_image = box_annotator.annotate(
33 scene=image.copy(),
34 detections=detections
35)
36annotated_image = label_annotator.annotate(
37 scene=annotated_image,
38 detections=detections,
39 labels=labels
40)
41
42# 9. Display the result
43sv.plot_image(annotated_image)