비디오 어노테이션 도구 비교: CVAT, Label Studio, ELAN, BORIS, Potato
CVAT, Label Studio, ELAN, BORIS, VIA, V7, Potato를 객체 추적, 시간 구간, 행동 코딩, 마스크 전파 기준으로 비교하고, 각 도구가 일치도를 측정하는 방식도 정리했습니다.
비디오 어노테이션은 대개 두 가지 작업 중 하나입니다. 객체 추적은 무언가를 도형으로 둘러싸고 프레임을 따라 추적하는 작업이며, 오픈소스로는 CVAT이 기준이 되는 도구입니다. 시간 어노테이션은 무언가가 언제 일어났는지 표시하는 작업이며, 언어학과 행동 연구에서는 ELAN과 BORIS가 표준입니다. Potato는 여러 어노테이터가 참여하는 연구를 위해 두 작업을 모두 브라우저에서 처리하고, 이벤트의 시작과 끝 시점에 대해 어노테이터들이 얼마나 일치하는지 보고합니다.
객체 추적은 비디오 속 객체를 따라갑니다. 보통 키프레임에서 객체를 그리고 그 사이 프레임을 보간합니다. 시간 구간은 시작 시각, 끝 시각, 레이블(동작이나 화자 턴 등)로 이루어집니다. 마스크 전파는 모델을 이용해 세그멘테이션 마스크를 다음 프레임으로 넘깁니다.
이 페이지는 비디오를 다룹니다. 모든 데이터 유형을 한 페이지에서 비교한 내용은 AI 주석 도구 비교에 있습니다.
비교해 볼 만한 비디오 어노테이션 도구는?
| 도구 | 실행 방식 | 라이선스와 비용 | 적합한 경우 |
|---|---|---|---|
| Potato | 자체 호스팅 웹 앱 | GPL-3.0, 무료 | 다중 어노테이터 연구: 추적, 시간 구간, 구간별 질문, 일치도 |
| CVAT | 자체 호스팅 또는 호스팅 | MIT. 호스팅은 사용자당 월 33달러 | 대량의 박스, 폴리곤, 점 추적 |
| Label Studio | 자체 호스팅 또는 호스팅 | Apache-2.0 Community Edition, 유료 플랜 있음 | VideoRectangle을 이용한 객체 추적, TimelineLabels를 이용한 프레임 범위 레이블 |
| ELAN | 데스크톱 앱 | GPL-3.0 | 최대 4개의 연결된 비디오에 대한 시간 정렬 티어 |
| BORIS | Linux, Windows, macOS, Android용 데스크톱 앱 | GPL-3.0 | 비디오, 오디오, 현장 관찰에서 행동 이벤트 기록 |
| Prodigy | 로컬에서 실행하는 웹 앱 | 독점 | 오디오 인터페이스를 통한 비디오 위 타임스탬프 영역 |
| VIA 3 | 브라우저에서 오프라인으로 실행되는 단일 HTML 파일 | BSD-2-Clause | 설치 없는 소규모 비디오 프로젝트 |
| V7, Supervisely | 호스팅 (Supervisely는 자체 호스팅도 가능) | 상용 | 모델 기반 마스크 전파와 관리형 워크플로를 갖춘 추적 |
프레임을 가로질러 객체 추적하기
CVAT의 트랙 모드는 서로 다른 프레임의 도형을 하나의 객체로 묶습니다. 어노테이터가 몇몇 키프레임에서 도형을 조정하면 CVAT이 그 사이 프레임을 선형 보간하며, 사각형, 폴리곤, 점에 적용됩니다. Label Studio의 VideoRectangle 태그는 비디오에 박스 단위 객체 추적을 제공합니다. V7, Supervisely, Segments.ai는 보간으로 추적하고 모델로 마스크를 전파합니다.
Potato의 video_annotation 스키마에는 키프레임 사이에서 박스와 폴리곤을 보간하는 추적 모드가 있습니다. SAM 2를 이용한 마스크 전파는 서버에서 실행됩니다. 브라우저에는 마스크를 앞으로 넘기는 더 가벼운 경로가 있습니다. 비디오 객체 추적 어노테이션 방법을 참고하세요.
무언가가 일어난 시점 표시하기
Label Studio의 TimelineLabels 태그는 클릭으로 한 프레임에, 드래그로 프레임 범위에 레이블을 붙입니다. ELAN은 스키마에 필요한 만큼의 티어에 타임라인 어노테이션을 붙이며, 통제 어휘와 최대 4개의 동기화된 비디오를 지원합니다. BORIS는 비디오, 오디오, 현장 관찰에서 행동 이벤트를 기록하고 코딩합니다. Prodigy는 비디오 타임스탬프에 맞춰 영역을 기록하고, VIA 3는 이미지와 오디오뿐 아니라 비디오도 어노테이션합니다.
Potato에서는 시간 구간을 타임라인에서 레이블링합니다. 버전 2.9부터 segment_schemes로 어떤 어노테이션 유형이든 구간 안에 넣을 수 있어서, 구간마다 고유한 평가나 자유 응답 질문을 붙일 수 있습니다. 비디오 어노테이션을 참고하세요.
비디오 어노테이션의 일치도
이벤트 시작 시점을 표시하는 두 어노테이터가 같은 프레임을 고르지는 않습니다. 그래서 시간 일치도는 두 표시가 얼마나 떨어져 있어도 같은 것으로 볼지에 따라 달라집니다.
- ELAN에는 어노테이터 간 신뢰도 계산 기능이 내장되어 있습니다. 정해진 최소 비율 이상 겹치는 어노테이션을 연결하는 수정 Cohen κ와, 분할 결과를 무작위로 생성한 분할과 비교해 우연을 고려하는 Staccato 알고리즘입니다.
- Potato는 겹침에 대한 시간 IoU, 경계 위치에 대한 α, 레이블에 대한 α, 이벤트를 표시했는지 여부에 대한 α를 보고하며, 매칭 허용 오차는 여러 값에 걸친 스윕으로 보여 줍니다. 문서에는 한 가지 제약이 명시되어 있습니다. 구간 겹침에는 아직 우연 기준선이 없습니다. 시간 축 일치도를 참고하세요.
- CVAT의 합의 엔진은 클래스별 임계값에 대해 원시 IoU로 어노테이터를 비교합니다.
트랙과 마스크의 경우 Potato는 마스크를 마스크 합의와 STAPLE로 프레임마다 비교하고, 박스는 바운딩 박스의 어노테이터 간 일치도 측정 방법에서 설명하는 도형 일치도로 비교합니다.
형식
Potato는 트랙을 MOT로, 비디오 객체 세그멘테이션 마스크를 DAVIS로, 시간 정렬 어노테이션을 ELAN에서 열 수 있는 EAF로 내보냅니다. 컴퓨터 비전 형식을 참고하세요.
Potato의 추적 작업
annotation_schemes:
- annotation_type: video_annotation
name: tracks
description: "Draw the object once, then press Track forward."
source_field: video_url
mode: tracking
labels:
- {name: subject, color: "#d1495b"}
tracking_options:
interpolation: linear
auto_advance_frames: 5
video_fps: 12
frame_stepping: trueframe_stepping을 켜면 어노테이터가 한 프레임씩 이동할 수 있고, auto_advance_frames는 Track forward가 건너뛰는 폭을 정합니다.
비디오에서 Potato가 하지 않는 것
- 객체별 속성은 아직 지원하지 않습니다. 트랙에는 레이블 하나만 붙습니다. 가림이나 잘림 표시에는 별도의 보조 스키마가 필요합니다.
- 브라우저에서 마스크를 전파하지 않습니다. SAM 2 전파는 서버에서 실행됩니다.
- 관리형 인력을 제공하지 않습니다. 직접 어노테이터를 구하거나 Prolific에서 모집하세요.
2026년 8월과 9월에 각 프로젝트의 문서에서 확인했습니다.
자주 묻는 질문
가장 좋은 무료 비디오 어노테이션 도구는 무엇인가요?
대량의 객체 추적이라면 CVAT이 무료이고 성숙하며 자체 호스팅됩니다. 시간에 따른 행동이나 발화 코딩이라면 ELAN과 BORIS가 무료 데스크톱 도구입니다. 여러 어노테이터가 브라우저에서 같은 비디오에 레이블을 붙이고 일치도를 보고해야 하는 연구라면 Potato가 이를 무료로 제공합니다.
키프레임 사이를 보간하는 비디오 어노테이션 도구는?
CVAT의 트랙 모드는 키프레임 사이에서 사각형, 폴리곤, 점을 선형 보간합니다. Potato의 추적 모드는 박스와 폴리곤을 보간합니다. V7과 Supervisely는 보간에 더해 모델로 마스크도 전파합니다. Label Studio의 VideoRectangle은 박스를 추적합니다.
비디오 행동 코딩에는 무엇을 써야 하나요?
BORIS와 ELAN이 자리 잡은 무료 도구이며, ELAN은 티어 쌍 사이의 어노테이터 간 신뢰도를 계산할 수 있습니다. 여러 코더가 브라우저에서 같은 코딩 스키마를 적용하고 전체의 일치도를 보고해야 한다면 Potato의 시간 구간이 맞습니다.
비디오 어노테이션의 일치도는 어떻게 측정하나요?
이벤트는 허용 오차 안에서 어노테이터별 구간을 짝짓고, 겹침, 경계 일치, 레이블 일치를 보고하세요. 0.25초에서의 일치와 2초에서의 일치는 서로 다른 주장이므로 여러 허용 오차로 보여 주는 것이 좋습니다. 트랙은 박스와 마스크의 IoU로 프레임마다 도형을 비교합니다.
Potato의 비디오 마스크 전파는 어디서 실행되나요?
서버에서 SAM 2로 실행됩니다. 브라우저에는 모델 없이 마스크를 다음 프레임으로 복사하는 더 가벼운 경로가 있습니다.