Reference for ultralytics/data/annotator.py
Note
This file is available at https://github.com/ultralytics/ultralytics/blob/main/ultralytics/data/annotator.py. If you spot a problem please help fix it by contributing a Pull Request 🛠️. Thank you 🙏!
ultralytics.data.annotator.auto_annotate
auto_annotate(
data,
det_model="yolo11x.pt",
sam_model="sam_b.pt",
device="",
conf=0.25,
iou=0.45,
imgsz=640,
max_det=300,
classes=None,
output_dir=None,
)
Automatically annotates images using a YOLO object detection model and a SAM segmentation model.
This function processes images in a specified directory, detects objects using a YOLO model, and then generates segmentation masks using a SAM model. The resulting annotations are saved as text files.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data | str | Path to a folder containing images to be annotated. | required |
det_model | str | Path or name of the pre-trained YOLO detection model. | 'yolo11x.pt' |
sam_model | str | Path or name of the pre-trained SAM segmentation model. | 'sam_b.pt' |
device | str | Device to run the models on (e.g., 'cpu', 'cuda', '0'). | '' |
conf | float | Confidence threshold for detection model; default is 0.25. | 0.25 |
iou | float | IoU threshold for filtering overlapping boxes in detection results; default is 0.45. | 0.45 |
imgsz | int | Input image resize dimension; default is 640. | 640 |
max_det | int | Limits detections per image to control outputs in dense scenes. | 300 |
classes | list | Filters predictions to specified class IDs, returning only relevant detections. | None |
output_dir | str | None | Directory to save the annotated results. If None, a default directory is created. | None |
Examples:
>>> from ultralytics.data.annotator import auto_annotate
>>> auto_annotate(data="ultralytics/assets", det_model="yolo11n.pt", sam_model="mobile_sam.pt")
Notes
- The function creates a new directory for output if not specified.
- Annotation results are saved as text files with the same names as the input images.
- Each line in the output text file represents a detected object with its class ID and segmentation points.