roboflow/supervision — We write your reusable computer vision tools. 💜
roboflow/supervision — 재사용 가능한 컴퓨터 비전 도구를 대신 만들어주는 툴킷
Roboflow가 만든 오픈소스 컴퓨터 비전 툴킷 supervision이 GitHub에 올랐습니다. 모델 종류와 무관하게 탐지 결과를 다룰 수 있는 sv.Detections 인터페이스, 커스터마이즈 가능한 시각화 어노테이터, COCO·YOLO·Pascal VOC 간 변환을 지원하는 데이터셋 유틸리티를 제공해 컴퓨터 비전 애플리케이션 개발의 반복 작업을 줄여줍니다.
- 주제
본문
컴퓨터 비전 프로젝트를 하다 보면 모델 추론 자체보다 결과 시각화, 데이터셋 포맷 변환, 추적·존 카운팅 같은 주변 작업에 시간을 더 많이 쓰게 됩니다. Roboflow의 supervision은 이런 '모델 주변의 재사용 가능한 도구'를 모아둔 Python 라이브러리로, 데이터 로딩부터 실시간 존 카운팅까지 애플리케이션 구축에 필요한 빌딩 블록을 제공한다고 소개합니다. GitHub에서 커뮤니티 점수 260을 기록하며 주목받았습니다.
모델에 구애받지 않는 설계
supervision은 특정 프레임워크에 종속되지 않도록 설계되었습니다. 분류(Classification), 객체 탐지(Detection), 세그멘테이션(Segmentation) 모델 어떤 것이든 연결할 수 있으며, Ultralytics, Transformers, MMDetection, Inference 같은 주요 라이브러리용 커넥터를 기본 제공합니다. RF-DETR 같은 일부 통합은 추론 결과를 sv.Detections 객체로 바로 반환합니다. README의 예시를 보면 RFDETRSmall 모델로 image를 추론해 threshold=0.5 기준으로 detections를 얻고, len(detections)가 5를 반환하는 식으로 바로 후처리가 가능합니다. Roboflow Inference를 쓰는 경우에는 API KEY가 필요하며, 추론 결과를 sv.Detections.from_inference(result) 한 줄로 공통 포맷으로 변환할 수 있습니다.
시각화: 조합 가능한 Annotator
탐지 결과를 화면에 그리는 작업도 라이브러리가 담당합니다. BoxAnnotator를 비롯해 용도에 맞게 커스터마이즈할 수 있는 다양한 어노테이터를 제공하며, annotator.annotate(scene=image.copy(), detections=detections) 형태로 호출해 바운딩 박스·레이블 등이 그려진 프레임을 얻습니다. 데모 영상으로는 축구 선수 추적, 교통 분석, 차량 추적 결과가 제시되어 있습니다.
데이터셋 로드·분할·병합·변환
데이터셋 유틸리티도 핵심 기능입니다. DetectionDataset.from_coco, from_yolo, from_pascal_voc로 각 포맷의 데이터셋을 불러올 수 있고, 이미지는 순회 시점에 온디맨드로 로드됩니다. split(split_ratio=0.7)으로 학습·검증·테스트 세트를 나누고, DetectionDataset.merge([ds_1, ds_2])로 클래스가 다른 데이터셋을 합칠 수 있습니다 — 예시에서는 클래스 ['dog', 'person'] 100개와 ['cat'] 200개를 병합해 300개·3클래스 데이터셋을 만듭니다. 저장은 as_yolo, as_pascal_voc, as_coco로 하며, from_yolo(...).as_pascal_voc(...)처럼 체이닝하면 포맷 변환기로도 쓸 수 있습니다. Roboflow 플랫폼의 워크스페이스에서 dataset.download("coco")로 내려받은 데이터와 바로 연동됩니다.
설치와 학습 자료
설치는 Python 3.10 이상 환경에서 pip install supervision이며 conda, mamba, 소스 설치 가이드도 제공됩니다. 실전 활용을 위한 하우투 가이드·엔드투엔드 예제·치트시트·쿡북이 문서로 정리되어 있고, 대표 튜토리얼로는 체류 시간(Dwell Time) 분석, 그리고 YOLO·ByteTrack·Roboflow Inference를 활용한 차량 추적 및 속도 추정(탐지 필터링, 원근 변환 포함)이 있습니다.
원문: GitHub / 번역·요약: Trawling