====== Supervision (Roboflow) ======
//Vytvořeno: **7.7.2026** | Aktualizováno: **~~LASTMOD~~**//
[[https://github.com/roboflow/supervision|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 [[https://supervision.roboflow.com/latest/|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í:
* sjednocení výstupů modelů přes objekt ''sv.Detections'',
* anotace obrázků a videa pomocí bounding boxů, masek a labelů,
* tracking objektů napříč snímky s perzistentními ID,
* filtrování a počítání detekcí v polygonových nebo liniových zónách,
* načítání, převod a ukládání datasetů ve formátech YOLO, COCO a Pascal VOC,
* vyhodnocování modelů pomocí metrik jako mAP, recall, precision nebo F1.
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 [[https://raw.githubusercontent.com/roboflow/supervision/develop/pyproject.toml|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:
- Model vytvoří predikce nad obrázkem nebo videem.
- Výstup se převede na jednotný objekt ''sv.Detections'', případně ho některé integrace vrací přímo.
- 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:
* COCO,
* YOLO,
* Pascal VOC.
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:
* rychlá vizualizace výsledků object detection nebo segmentation modelu,
* video analytika — tracking objektů, počítání průchodů, práce se zónami,
* příprava a konverze datasetů mezi běžnými formáty,
* kontrola kvality anotací a výstupů modelu,
* prototypování aplikací nad YOLO, RF-DETR, Roboflow Inference nebo jinými modely.
===== Omezení a poznámky =====
* Supervision nenahrazuje samotný model. Je to aplikační a utility vrstva kolem výstupů modelů.
* Podpora konkrétních modelových knihoven a konvertorů se může měnit podle verze.
* U produkčního použití je potřeba hlídat závislosti na OpenCV, NumPy a dalších balíčcích podle cílového prostředí.
* Pro konkrétní API je lepší vycházet z verzované dokumentace k instalované verzi balíčku, ne pouze z README na vývojové větvi.
===== Zdroje =====
* [[https://github.com/roboflow/supervision|roboflow/supervision – GitHub repozitář]]
* [[https://supervision.roboflow.com/latest/|Supervision – oficiální dokumentace]]
* [[https://raw.githubusercontent.com/roboflow/supervision/develop/pyproject.toml|Supervision – pyproject.toml ve větvi develop]]