CVAT 사용법: 빠르고 정확한 어노테이션을 위한 친절한 단계별 가이드
컴퓨터 비전 모델을 훈련해 본 적이 있다면, 아마 다른 사람들과 똑같은 문제에 직면했을 것입니다. 바로 데이터에 훌륭한 라벨이 필요하다는 것이죠. CVAT(Computer Vision Annotation Tool)는 고품질 이미지 및 비디오 어노테이션 생성을 위한 가장 인기 있는 플랫폼 중 하나이며, 오픈 소스이고 강력하며 사이드 프로젝트에서 프로덕션 파이프라인까지 확장되도록 구축되었습니다. 이 사용법 가이드는 설치, 설정, 라벨링 워크플로, 자동화 도우미, 품질 관리 및 내보내기를 안내하여 혼란 없이 처음부터 깔끔한 데이터 세트를 만들 수 있도록 도와줍니다.
예제, 바로 가기 및 피해야 할 함정과 함께 실용적이고 직접적으로 설명하겠습니다.
CVAT란 무엇이며 왜 사용해야 할까요?
CVAT는 이미지 및 비디오 어노테이션을 위한 웹 기반 도구입니다. 객체 감지, 분할, 분류 및 추적을 지원합니다. 로컬 또는 서버에서 실행하고, 팀원을 초대하고, 프로젝트/작업을 관리하고, 라벨을 일반적인 형식(예: COCO, YOLO, VOC)으로 내보낼 수 있습니다. 반복 가능하고 협업적이며 정확한 라벨링이 필요한 경우 CVAT가 해답입니다.
- 보간/추적 기능으로 이미지 및 긴 비디오 처리
- 인기 있는 훈련 프레임워크를 위한 다양한 내보내기 형식
공식적인 오리엔테이션을 위해 CVAT 팀의 "Getting Started"가 유용한 입문서입니다.
빠른 설정: CVAT를 실행하는 가장 빠른 방법
CVAT의 일반적인 설치 경로는 Docker를 사용합니다. 서버, 데이터베이스 및 종속성을 번들로 제공하므로 몇 분 안에 시작할 수 있습니다.
- Docker 및 Docker Compose (또는 Docker Desktop)
- 권장 사항: 최신 CPU, 충분한 RAM(비디오 중심 작업의 경우 8–16GB 이상)
- CVAT 리포지토리를 복제하고 Compose 스크립트를 실행하거나 컨테이너 이미지를 직접 사용합니다. 공식 문서는 정확한 명령 및 환경 변수를 제공합니다. Docker Hub에도 게시된 서버 이미지가 있습니다.
- 컨테이너가 실행되면 브라우저(일반적으로 {http://localhost:8080})를 열고 관리자/사용자를 생성하고 로그인합니다.
팁: 탑재된 볼륨에 데이터를 저장하면 작업, 프로젝트 및 어노테이션이 업데이트 시에도 유지됩니다.
CVAT 워크플로 한눈에 보기
프로젝트 → 작업 → 작업의 세 가지 레이어로 생각하십시오.
- 프로젝트: 관련 작업 모음(예: "Retail Shelf Detection 2025"). 전역 라벨을 정의합니다.
- 작업: 단일 라벨링 단위(예: 1,000개의 이미지 배치 또는 2시간 비디오).
- 작업: 작업 분할(예: 긴 비디오 조각)이 어노테이터에게 할당됩니다.
이 구조를 통해 대규모 데이터 세트를 관리하고, 팀원에게 작업을 할당하고, 라벨 정의를 일관되게 유지할 수 있습니다.
1단계: 프로젝트 및 라벨 생성(스키마 설계)
데이터를 업로드하기 전에 온톨로지(라벨링 대상 및 방법)를 정의합니다.
모범 사례:
- 클래스 이름을 짧고 일관성 있게, 설명적으로 유지하십시오.
- 그리기가 필요하지 않은 메타데이터에 속성을 사용하십시오(예: "is_crowd").
- 의도적으로 계층적이지 않은 경우 클래스가 겹치지 않도록 하십시오(예: ).
프로젝트 수준에서 라벨을 정의하여 관련된 모든 작업이 라벨을 상속받도록 할 수 있습니다.
2단계: 작업 생성 및 데이터 업로드
대시보드에서:
- 데이터 업로드: 설정을 기반으로 이미지 드래그 앤 드롭, 디렉터리 지정 또는 클라우드 스토리지 링크(예: S3, Azure Blob) 제공.
- 라벨이 올바른지 확인하고(상속되거나 작업별) 생성을 누릅니다.
긴 비디오의 경우 각 작업을 관리하기 쉽고 어노테이터에게 반응성이 좋도록 청크로 나누거나 자동 작업 분할을 활성화하는 것이 좋습니다.
3단계: 올바른 어노테이션 모드 선택
CVAT는 여러 어노테이션 도구를 지원합니다.
- 다각형/폴리라인: 인스턴스/시맨틱 분할, 도로 차선, 균열에 사용됩니다.
- 큐보이드: 2D 이미지에서 3D와 같은 원근감 박스에 사용됩니다.
- 포인트: 키포인트 또는 랜드마크(자세, 얼굴 랜드마크).
- 태그: 이미지 수준 라벨(예: "daytime").
키보드 단축키를 사용하면 속도가 크게 향상됩니다.
- Shift/Alt 키를 누른 상태에서 모양을 제한하고 스냅합니다(도구에 따라 다름).
팁: 라벨 목록을 작고 집중적으로 유지하십시오. 클래스가 너무 많으면 어노테이터 속도가 느려지고 오류율이 증가합니다.
4단계: 비디오 어노테이션—보간 및 추적
비디오의 경우 모든 프레임에 어노테이션을 달지 마십시오. 대신:
- 보간/추적 활성화: CVAT는 모양을 앞으로 전파할 수 있으며, 필요에 따라 새 키프레임에서 수정할 수 있습니다.
- 객체가 가려지거나 다시 나타날 때 트랙을 분할하거나 병합합니다.
- 시퀀스를 깔끔하게 유지하기 위해 "outside" 또는 "occluded"와 같은 상태를 표시합니다.
이렇게 하면 시간 일관성을 유지하면서 시간을 크게 절약할 수 있습니다. 연구 및 커뮤니티 모범 사례에서는 비디오 라벨링 속도를 높이기 위해 대화형/자체 어노테이션 지원을 권장합니다.
5단계: 자동 어노테이션 및 지원 도구 사용
CVAT는 작업 속도를 높이기 위해 지원 라벨링을 지원합니다. 배포에 따라 다음을 수행할 수 있습니다.
- 상자/마스크를 제안하기 위해 내장된 모델 지원 기능을 사용합니다.
- 서버 측 모델을 실행하여 프레임을 미리 라벨링한 다음 수정합니다.
작고 고품질의 시드 세트로 시작하여 빠른 모델을 훈련하고 이를 사용하여 나머지 데이터에 미리 라벨을 지정합니다. 반복적으로 수정하고 다시 훈련합니다.
참고: 구체적인 내용은 환경에서 활성화하는 모델에 따라 다릅니다. 공식 문서 및 커뮤니티 자습서에서는 모델을 CVAT에 연결하고 UI에서 자동 어노테이션을 활성화하는 방법을 보여줍니다.
6단계: 역할 및 검토를 통한 협업
CVAT는 다중 사용자입니다. 일반적인 역할은 다음과 같습니다.
- 프로젝트 관리자: 라벨 정의, 작업/작업 생성, 어노테이터 할당
명확한 지침 설정: 올바른/잘못된 어노테이션, 속성 정의 및 에지 케이스(예: "반사 라벨?")의 예. 검토 도구(주석, 문제 플래그 및 상태 변경)를 사용하여 품질을 강화합니다.
7단계: 신뢰할 수 있는 품질 관리
몇 가지 실용적인 QC 전략:
- 골드 작업: 전문가가 라벨링한 이미지를 몇 개 삽입하여 어노테이터를 벤치마킹합니다.
- 중복: 동일한 작업을 두 명의 어노테이터에게 할당합니다. IoU 및 합의 비교.
- 스폿 검사: 검토자가 각 작업의 일정 비율을 감사합니다.
- 메트릭: 모델 훈련 중에 클래스별 혼동 패턴을 추적하여 지침을 개선합니다.
시간이 지남에 따른 일관성이 일회성 완벽한 라벨보다 중요합니다. 결정을 문서화하고 에지 케이스를 발견하면 라벨 가이드를 업데이트하십시오.
8단계: 저장, 버전 관리 및 내보내기
자주 저장하십시오(CVAT는 자동 저장도 지원합니다). 준비가 되면:
- 내보내기 형식: COCO, YOLO, Pascal VOC 등. 훈련 코드가 예상하는 형식을 선택하십시오.
- 프레임 범위: 특정 세그먼트 또는 전체 작업을 내보냅니다.
- 필터: 필요한 경우 특정 라벨 또는 속성만 내보냅니다.
최신 내보내기 옵션 및 매개변수는 공식 문서를 참조하십시오. 설치 및 서버 이미지 세부 정보는 문서 및 Docker Hub 페이지를 참조하십시오.
실용적인 시나리오 및 팁
시나리오 1: 소매 선반의 객체 감지
- 속도를 위해 상자를 사용하십시오. 와 같은 속성을 추가합니다.
- 가벼운 훈련 파이프라인을 위해 YOLO로 내보냅니다.
시나리오 2: 도로 차선 분할
- 프레임 간에 보간합니다. 회전 시 수정합니다.
- 프레임워크에 따라 COCO panoptic/segmentation으로 내보냅니다.
시나리오 3: 안전 장비 준수
- 진입/출구 지점에서 폐색을 주의 깊게 검토합니다.
전문가 팁:
- UI 응답성을 유지하기 위해 작업 수를 몇 천 개의 이미지 미만으로 유지하거나 긴 비디오를 분할하십시오.
- 성능과 선명도의 균형을 맞추기 위해 이미지 크기를 정규화하거나 비디오를 압축하십시오.
- 데이터 세트 버전 관리—명확한 태그(예: )로 내보내고 완료되면 작업을 잠급니다.
일반적인 문제 해결
- 큰 비디오에서 UI가 느려지는 경우: 더 짧은 작업으로 분할합니다. 미리보기 해상도 및 프리패치 크기를 줄입니다.
- 추적 시 어노테이션 드리프트: 특히 빠른 움직임이나 폐색 중에는 키프레임을 더 자주 추가합니다.
- 혼란스러운 라벨: 온톨로지를 리팩터링합니다. 구체적인 내용을 속성으로 이동합니다. 시각적 예제를 제공합니다.
- 내보내기 불일치: 대상 훈련 라이브러리의 예상 필드(예: YOLO 클래스 인덱스 매핑, COCO 카테고리 ID)를 다시 확인합니다.
ML 파이프라인에 통합
- 전처리: 어노테이션 속도를 높이기 위해 CVAT에 업로드하기 전에 이미지 크기를 조정/정규화합니다.
- 자동화: 빠른 모델로 미리 라벨링하고 CVAT에서 수정 한 다음 반복합니다.
- 데이터 CI: 라벨을 코드처럼 처리합니다(버전 관리된 내보내기, 체크섬 및 변경 로그).
- 저장소: 대규모 비디오 데이터 세트에 클라우드 버킷 및 수명 주기 정책을 사용합니다.
참고: AI 도우미를 사용하여 지침을 문서화하거나, 라벨 분류를 생성하거나, 검토자 피드백을 요약하는 경우 와 같은 도구를 사용하면 명확한 지침과 일관된 검토 체크리스트를 만들 수 있습니다. 결정을 캡처하고, 예제를 생성하고, 팀을 위한 공유 가능한 플레이북으로 만들 수 있습니다. 자세한 내용은 를 참조하십시오.
30분 스타터 계획
- 5분: CVAT를 로컬에 설치하고 실행합니다.
- 5분: 3–5개의 라벨과 2개의 속성으로 프로젝트를 만듭니다.
- 10분: 상자를 사용하여 20개의 이미지에 어노테이션을 달고 단축키를 배웁니다.
- 5분: YOLO로 내보내고 빠른 훈련 패스를 실행합니다.
결국 원시 이미지에서 훈련 가능한 데이터 세트에 이르는 전체 루프를 갖게 됩니다.
자세히 알아볼 수 있는 곳
- 더 빠른 워크플로를 위해 비디오에 대한 대화형/자체 어노테이션에 대한 연구.
주요 내용
- 먼저 라벨을 정의하십시오. 스키마 설계를 통해 다운스트림 문제를 방지할 수 있습니다.
- 비디오에는 보간 및 추적을 사용하십시오. 키프레임을 현명하게 사용하십시오.
- 자동 어노테이션은 작업 속도를 높입니다. 사람의 검토는 품질을 보장합니다.
- 훈련 코드가 예상하는 형식으로 내보냅니다. 모든 것을 버전 관리하십시오.
- 작게 시작하고 빠르게 반복하며 명확한 지침으로 확장하십시오.
FAQ