Data Labeling
머신 러닝을 위한 데이터 라벨링의 기본을 알아보세요. 객체 감지와 같은 주요 유형을 살펴보고 Ultralytics YOLO26을 사용해 워크플로를 가속하는 방법을 알아보세요.
데이터 라벨링은 이미지, 비디오 프레임, 텍스트 또는 오디오와 같은 원시 데이터를 식별하고, 컨텍스트를 제공하기 위해 유용한 태그나 메타데이터를 추가하는 기본적인 프로세스입니다. 머신 러닝 (ML)의 영역에서 알고리즘은 물리적 세계를 본질적으로 이해할 수 없으므로 이를 안내할 "교사"가 필요합니다. 이러한 안내는 지도 학습에 사용되는 레이블이 지정된 데이터셋의 형태로 제공됩니다. 레이블은 ground truth 역할을 하며, 모델이 예측하려고 하는 올바른 답을 나타냅니다. 간단한 분류기를 학습시키든 Ultralytics YOLO26과 같은 복잡한 아키텍처를 학습시키든, 이러한 레이블의 정확성, 일관성 및 품질이 모델의 성공을 좌우하는 주요 요인입니다.
데이터 라벨링과 데이터 어노테이션 비교#
일상적인 대화에서는 두 용어가 서로 바꿔 사용되는 경우가 많지만, 주목할 만한 미묘한 차이가 있습니다. "데이터 라벨링"은 일반적으로 데이터 항목에 카테고리나 태그를 할당하는 광범위한 행위를 의미합니다(예: 이메일을 "스팸"으로 태그 지정). 반면 데이터 어노테이션은 컴퓨터 비전 (CV)에 더 구체적으로 사용되는 경우가 많으며, bounding box, polygon 또는 keypoint를 사용해 객체의 경계를 정밀하게 지정하는 작업을 포함합니다. 그러나 대부분의 ML 운영 (MLOps) 워크플로에서는 두 용어 모두 고품질 training data를 생성하는 작업을 의미합니다.
컴퓨터 비전의 주요 유형#
라벨링 방법은 모델이 수행해야 하는 작업에 따라 달라집니다. 일반적인 유형은 다음과 같습니다:
- 이미지 분류: 전체 이미지에 단일 레이블을 할당합니다. 예를 들어 날씨 상태를 "흐림" 또는 "맑음"으로 식별합니다.
- 객체 감지: 서로 다른 객체 주위에 2D bounding box를 그려 모델이 객체가 무엇이며 어디에 있는지 학습하도록 합니다.
- 인스턴스 세그멘테이션: 객체 주위에 픽셀 단위로 정확한 마스크 또는 polygon을 생성하며, 이는 정확한 형태와 경계를 파악하는 데 필수적입니다.
- 포즈 추정: 움직임이나 자세를 분석하기 위해 골격 관절과 같은 특정 keypoint를 대상에 표시합니다.
실제 적용 사례#
데이터 라벨링은 AI를 활용하는 거의 모든 산업에서 폭넓게 사용됩니다.
-
자율주행 차량: 자율주행 자동차는 모든 차량, 보행자, 교통 표지판 및 차선 표시가 세심하게 라벨링된 방대한 데이터셋에 의존합니다. 이러한 레이블이 지정된 데이터는 인식 시스템이 복잡한 환경을 안전하게 주행할 수 있도록 합니다. 자율주행 차량 기업은 안전 규정 준수를 보장하기 위해 픽셀 수준의 라벨링에 상당한 투자를 합니다.
-
정밀 농업: 현대 농업에서는 농업 분야의 AI를 사용하여 작물 질병을 감지하거나 생장 단계를 모니터링합니다. 농부들은 "건강한" 잎과 "병든" 잎의 레이블이 지정된 이미지로 학습한 모델을 사용하여 처리를 자동화하고, 화학 물질 사용량을 줄이며 수확량을 높입니다.
라벨링 워크플로#
레이블이 지정된 데이터셋을 만드는 작업은 AI 프로젝트에서 가장 많은 시간이 소요되는 부분인 경우가 많습니다. 이 프로세스는 일반적으로 사람 어노테이터가 레이블을 검증하여 높은 정확도를 보장하는 "휴먼 인 더 루프" (HITL) 방식을 사용합니다. 최신 워크플로에서는 Ultralytics Platform과 같은 도구를 활용하여 데이터셋 관리를 간소화하고 팀이 어노테이션 작업을 협업할 수 있도록 합니다. 또한 액티브 러닝과 같은 고급 기법을 사용할 수 있습니다. 이 방식에서는 모델이 데이터에 사전 레이블을 지정하고 사람이 신뢰도가 낮은 예측만 수정하므로 프로세스 속도를 크게 높일 수 있습니다.
다음 예제에서는 사전 학습된 Ultralytics YOLO26 모델을 사용하여 새 이미지의 레이블을 자동으로 생성하는 방법(자동 라벨링)을 보여줍니다. 그런 다음 사람이 이를 수정할 수 있습니다:
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Run inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Save the detection results to a text file in standard YOLO format
# This file can now be used as a starting point for data labeling
results[0].save_txt("bus_labels.txt")








