Obsah

Supervision (Roboflow)

Vytvořeno: 7.7.2026 | Aktualizováno: 07.07.2026 23:48

Supervision je open-source Python knihovna od Roboflow pro stavbu aplikací v oblasti počítačového vidění. Poskytuje opakovaně použitelné nástroje pro práci s detekcemi, anotacemi, trackingem, zónami, datasety a vyhodnocováním modelů, aby se kolem modelů dal rychleji stavět aplikační kód.

K čemu slouží

Podle oficiální dokumentace je Supervision zaměřený na produkční i experimentální computer vision workflow. Není to model ani trénovací framework, ale pomocná vrstva kolem modelů a jejich výstupů.

Typické použití:

Supervision je modelově agnostický. Dokumentace uvádí konvertory nebo podporu pro výstupy z nástrojů jako Ultralytics, Roboflow Inference, Transformers, SAM, Detectron2, MMDetection, YOLO-NAS, PaddleDet, NCNN, Azure AI Vision a VLM parserů.

Instalace

Základní instalace přes pip:

pip install supervision

Při práci s konkrétní verzí je dobré zkontrolovat požadovanou verzi Pythonu. Ve vývojovém pyproject.toml je pro větev develop uvedeno requires-python = „>=3.10“. Stránka dokumentace latest zároveň v instalační části uvádí Python>=3.9, takže rozhodující je konkrétní instalovaná verze balíčku.

Některé ukázky vyžadují volitelné balíčky podle použitého modelu nebo zdroje dat. Například ukázka s RF-DETR v README používá:

pip install pillow rfdetr

Základní workflow

Zjednodušený postup práce:

  1. Model vytvoří predikce nad obrázkem nebo videem.
  2. Výstup se převede na jednotný objekt sv.Detections, případně ho některé integrace vrací přímo.
  3. Nad detekcemi se provede anotace, filtrování, tracking, zónové počítání nebo export.

Příklad z README s modelem RF-DETR:

import supervision as sv
from PIL import Image
from rfdetr import RFDETRSmall
 
image = Image.open("path/to/image.jpg")
model = RFDETRSmall()
detections = model.predict(image, threshold=0.5)
 
len(detections)

Příklad anotace detekcí do obrázku:

import cv2
import supervision as sv
 
image = cv2.imread("path/to/image.jpg")
detections = sv.Detections(...)
 
box_annotator = sv.BoxAnnotator()
annotated_frame = box_annotator.annotate(
    scene=image.copy(),
    detections=detections,
)

Práce s datasety

Supervision obsahuje utility pro načítání, slučování, dělení a ukládání datasetů. Podle README a dokumentace podporuje hlavně běžné formáty používané v object detection workflow:

Příklad načtení COCO datasetu:

import supervision as sv
 
dataset = sv.DetectionDataset.from_coco(
    images_directory_path="path/to/images",
    annotations_path="path/to/_annotations.coco.json",
)
 
path, image, annotation = dataset[0]

Příklad rozdělení datasetu:

train_dataset, test_dataset = dataset.split(split_ratio=0.7)
test_dataset, valid_dataset = test_dataset.split(split_ratio=0.5)

Kdy se hodí

Supervision dává smysl hlavně tehdy, když už existuje model nebo inference služba a je potřeba kolem ní postavit praktické zpracování výstupů.

Typické scénáře:

Omezení a poznámky

Zdroje