Supervision is a Python library of reusable computer-vision utilities for detection, segmentation, classification, and tracking pipelines. It is model-agnostic: connectors convert results from libraries such as Ultralytics, Transformers, MMDetection, and Roboflow Inference into a common detections object, so downstream code stays the same when the model changes. It installs from pip and targets Python 3.9 or later.
Annotators draw those detections onto images and video frames and expose configuration options, so a visualisation is composed from separate pieces such as boxes, masks, and labels. Dataset utilities load, split, merge, convert, and save datasets in COCO, Pascal VOC, and YOLO formats, with images loaded on demand as a dataset is indexed or iterated.
Features
- Model connectors: convert results from Ultralytics, Transformers, MMDetection, and Roboflow Inference into one detections type
- Annotators: configurable drawing of boxes, masks, and labels onto images and video frames, composed per use case
- Dataset formats: load and save COCO, Pascal VOC, and YOLO datasets, including conversion between them
- Dataset operations: split by ratio, merge datasets and their class lists, and iterate with lazy image loading
- Zone counting: count detections inside a defined region of a frame
- Video processing: utilities aimed at real-time stream processing, tracking, and time-in-zone analysis
- Task coverage: object detection, instance segmentation, classification, oriented bounding boxes, and metrics
