Supervision은 Roboflow가 만든 오픈소스 컴퓨터 비전(computer vision) 유틸리티 라이브러리로, 모델에 종속되지 않는(model-agnostic) API를 통해 탐지(detection), 어노테이션(annotation), 데이터셋 관리를 통일된 방식으로 처리한다. GitHub: roboflow/supervision. PyPI 기준 월 수백만 건 이상 다운로드되는 대표적인 CV 유틸리티 라이브러리다.
등장 배경
컴퓨터 비전 생태계는 YOLO, Transformers, MMDetection 등 다양한 모델 라이브러리가 저마다 다른 출력 형식을 사용한다. 각 라이브러리마다 바운딩 박스를 그리거나 IoU를 계산하는 코드를 반복 작성해야 했다. Supervision은 이를 해결하기 위해 어떤 모델에서 나온 결과든 sv.Detections 객체로 통일하고, 풍부한 어노테이터·데이터셋 유틸리티를 제공한다.
핵심 기능
모델 커넥터(Model Connectors)
인기 있는 모델 라이브러리의 출력을 sv.Detections로 변환하는 일급 지원:
import cv2
import supervision as sv
from ultralytics import YOLO
image = cv2.imread("image.jpg")
model = YOLO("yolov8s.pt")
result = model(image)[0]
detections = sv.Detections.from_ultralytics(result)
# Transformers, MMDetection, Inference 등도 동일한 패턴어노테이터(Annotators)
박스, 마스크, 레이블, 히트맵 등 고도로 커스터마이즈 가능한 시각화 도구:
box_annotator = sv.BoxAnnotator()
annotated_frame = box_annotator.annotate(
scene=image.copy(),
detections=detections
)데이터셋 유틸리티
COCO, YOLO, Pascal VOC 형식의 로드·분할·병합·저장:
ds = sv.DetectionDataset.from_coco(
images_directory_path="./train",
annotations_path="./train/_annotations.coco.json",
)설치
pip install supervision
# Python 3.9+ 필요누가 쓰면 좋은가
- 컴퓨터 비전 엔지니어: 여러 모델 라이브러리를 동시에 실험하면서 통일된 후처리 코드 유지
- ML 연구자: 데이터셋 형식 변환, 어노테이션 검증, 시각화 작업을 빠르게 처리
- 프로덕션 팀: 재현 가능하고 테스트 가능한 CV 파이프라인 구축
라이선스 및 관련 문서
- GitHub: roboflow/supervision
- 문서: supervision.roboflow.com
- 라이선스: MIT
- Trendshift 124위 레포지토리