Data annotation
데이터 주석은 기계가 정보를 이해할 수 있도록 데이터 세트의 관련 정보/메타데이터에 라벨을 지정하거나 태그를 지정하는 것입니다. 데이터 세트는 이미지, 오디오 파일, 비디오 영상, 텍스트 등 어떤 형식이든 될 수 있습니다.
데이터는 인공지능 발전의 3대 핵심요소 중 하나이다. 컴퓨터 인식 엔진의 개발에는 주석을 달아야 하는 대규모 훈련 데이터가 필요합니다. 이러한 데이터에는 이미지, 사운드, 텍스트 등이 포함됩니다. 이러한 유형의 데이터에 대한 주석에는 분류, 프레임, 주석, 표시 등이 포함됩니다.
Categories
- Annotation Tool - 머신 러닝 등에 사용되는 Data annotation 작업을 위한 도구 모음.
- AI-Hub
- 라벨 역전파 (Label Propagation)
라벨링 주의 사항
| 작업본 | 작업 수정본 |
| | |
| ddrm의 플레이트 상단부는 중요하지만 대충 그어버리지 말자. | |
| 작업본 | 작업 수정본 |
| | |
| ddrm의 플레이트 좌/우 엣지는 중요함. | |
분류
- 자동화 라벨링(Auto-labeling)
- 인공지능과 머신러닝 알고리즘을 이용하여 라벨링 작업을 자동화.
- 모델이 데이터를 자동으로 라벨링하고, 사람이 검토 및 수정하는 방식.
- 라벨링 도구가 초기 라벨을 생성하고, 사람이 이를 검토하고 수정.
- 효율성을 높이며 정확도를 유지하는 방법.
- 클라우드 플랫폼을 통해 라벨링 작업을 수행.
- 데이터 저장, 협업, 접근성이 용이.
- 여러 사람이 동시에 라벨링 작업을 수행할 수 있는 협업 기능 제공.
- 프로젝트 관리와 작업 분담이 쉬움.
- 라벨링된 데이터를 변형하여 데이터셋을 확장.
- 모델의 성능을 높이기 위한 방법.
3D 포인트 클라우드 라벨링 방식 정리
포인트마다 class id와 instance id를 스칼라 값으로 부여하는 방식(per-point labeling)은 3D 포인트 클라우드 semantic / instance / panoptic segmentation 라벨링에서 가장 보편적인 표현 방식이다.
거의 모든 공개 데이터셋과 학습 프레임워크는 최종적으로 포인트 수와 길이가 같은 정수 배열 2개(semantic, instance) 형태로 수렴한다.
단, 공식 표준(ISO 등)은 존재하지 않으며, 저장 포맷은 데이터셋마다 다르다.
사실상 표준(de facto) 포맷
| 포맷 / 출처 | 저장 방식 | 주 사용 분야 |
| ASPRS LAS 1.4 | 포인트 레코드의 | 항공/지상 LiDAR, GIS 업계 (유일하게 "공식 규격"에 가까움) |
| SemanticKITTI | 포인트당 | 자율주행 LiDAR, 연구 커뮤니티에서 널리 차용 |
| nuScenes lidarseg / panoptic | 포인트당 | 자율주행 |
| ScanNet | 메시 정점 + over-segmentation( | 실내 RGB-D |
| S3DIS | 방마다 인스턴스별 txt 파일 ( | 실내 |
| Pointcept 전처리 포맷 | 장면별 폴더에 | PTv3 등 최신 백본 학습 |
ScanNet, S3DIS처럼 저장 구조가 달라 보여도 로더 단계에서는 모두 포인트별 semantic 배열 + instance 배열로 변환된다. 따라서 포인트별 스칼라 필드 방식은 원본 데이터 표현으로서 가장 범용적인 형태이다.
라벨링 도구
Segmentation 계열
- CloudCompare — 영역 잘라내기(Segment) → 스칼라 필드 상수 채우기 → 병합. 연구실·소규모 산업 프로젝트에서 매우 흔한 워크플로
- point_labeler — SemanticKITTI 제작에 사용된 도구
- Semantic Segmentation Editor — Hitachi 제작
- 상용 툴 — Segments.ai, Supervisely, BasicAI 등
위 도구들의 출력은 모두 결국 포인트별 라벨 배열이다.
Detection 계열 (참고)
- CVAT, labelCloud 등은 주로 3D bounding box(cuboid) 라벨링용
- detection 태스크용이며 세그멘테이션과는 다른 계열
실무 권장 사항
1. 클래스 매핑 파일 별도 관리
-
id → name매핑과 ignore 라벨 값(보통-1또는255)을 명시한 yaml/json 파일 작성 - 데이터와 함께 버전 관리하는 것이 사실상 관례
2. instance id 규칙 정의
- 장면(scene) 내에서 유일하게 부여
- 배경/stuff 클래스는
-1(또는0)로 지정
3. CloudCompare 스칼라 필드 주의점
- 스칼라 필드는 기본적으로 float으로 저장됨
- PLY 내보내기 시 속성 이름에
scalar_접두어가 붙음 (예:scalar_class) - 로더에서 속성 이름을 맞추고 정수로 캐스팅할 것:
# Round float scalar field and cast to int / float 스칼라 필드를 반올림 후 정수로 변환
segment = np.rint(ply["vertex"]["scalar_class"]).astype(np.int32)
4. 원본과 학습용 포맷 분리
- 원본은 PLY(스칼라 필드)로 유지
- 학습 시에는 프레임워크 요구 포맷(예: Pointcept의
segment.npy,instance.npy)으로 변환하는 스크립트를 별도로 둠 - 라벨링 도구와 학습 코드가 분리되어 관리가 용이해짐
See also
Favorite site
- Data annotation - Simple English Wikipedia, the free encyclopedia
- Annotation - Wikipedia
- 데이터 라벨링이란? - 정의, 유형, 국내 업체 비교 - 데이터헌트
- 9번째 이야기 - 데이터 라벨링(labeling), 데이터 어노테이션(annotation)
- What is Data Labeling? - Data Labeling Explained - AWS
- (딥러닝) 데이터 어노테이션이란 (data annotation), 어노테이션 기법
- 216만 원짜리 라벨링을 9만 원으로 줄이기 | GeekNews
- [원문] 216만 원짜리 라벨링을 9만 원으로 줄였다 | NARUBROWN의 기술 블로그
- 이미지 라벨링 비용 96% 절감: 사람이 할 일을 시스템에 맡겨라는 예산과 시간이 부족한 환경에서도, 사람의 반복 노동을 소프트웨어 파이프라인으로 대체해 핵심 기능을 구현한 실전 엔지니어링 사례를 다룸
- 핵심 요약
- 문제 인식: 유명 캐릭터 인형을 자동 인식·등록하는 기능에 적합한 기존 모델은 존재하지 않았고, 사람 라벨링은 비용·속도·확장성 모두 한계가 명확했음.
- 접근 방식: “사람을 더 투입할 것인가”가 아니라, 사람의 판단 과정을 시스템으로 분해해 파이프라인화.
- CLIP 필터링 – 의미 없는 이미지 대량 제거로 LLM 비용 절감
- YOLO 탐지 – 주인공 객체만 크롭해 분석 범위 축소
- LVM 라벨링 – 정제된 데이터에만 고성능 VLM 투입
- LVM 검증 – 신뢰도 기반 조건부 검증으로 호출 수 추가 감소