Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Data Cleaning

데이터 정제는 학습 전에 데이터셋의 손상된 파일, 중복, 결측값, 레이블 오류를 찾아 수정합니다. 기법, 도구, 코드 예제를 다룹니다.

데이터 정제는 데이터 세정 또는 데이터 스크러빙이라고도 하며, 데이터셋에서 손상되거나 중복되거나 불완전하거나 일관성이 없거나 잘못 레이블된 레코드를 찾아 수정하거나 제거하는 과정입니다. 머신러닝(ML)에서는 데이터 전처리와 학습에 앞서 이 작업을 수행합니다. 모델은 학습 데이터에 포함된 오류까지 그대로 학습하기 때문입니다. 자전거의 절반이 "오토바이"로 레이블된 이미지로 학습한 탐지기는 두 대상을 혼동하도록 학습하며, 레이블이 잘못된 테스트 세트는 모델의 성능을 잘못 측정합니다. 데이터 정제는 아키텍처보다 데이터를 개선해 모델을 향상시키는 데이터 중심 AI의 핵심 실천 방법입니다.

데이터 품질이 모델의 성능을 제한하는 이유#

데이터 오류는 여러 방식으로 정확도를 떨어뜨립니다. 잘못 레이블된 예시는 잘못된 입력-출력 대응을 학습시키고, 모델이 노이즈를 암기하도록 하여 과적합을 유발합니다. 중복 데이터는 일부 예시에 더 큰 가중치를 부여하며, 복사본이 학습 및 평가 분할에 모두 포함되면 점수를 부풀리는 데이터 누수가 발생합니다. 손상된 파일은 데이터 로더를 중단시키거나 알림 없이 건너뛰게 만들며, 일관되지 않은 클래스 이름은 하나의 범주를 여러 범주로 나눕니다. 벤치마크도 영향을 받습니다. 널리 사용되는 테스트 세트 10개를 조사한 연구는 평균적으로 예시의 최소 3.3%, ImageNet 검증 세트의 최소 6%에 레이블 오류가 있다고 추정했습니다. 수정된 레이블로 평가하면 원래 레이블이 잘못된 테스트 예시의 비중이 단 6% 증가했을 때 ResNet-18이 ResNet-50보다 우수한 성능을 보입니다.

일반적인 데이터 정제 작업#

표 형식 데이터는 보통 pandas와 같은 라이브러리로 정제합니다. 반면 비전 데이터셋은 픽셀부터 바운딩 박스 좌표까지 이미지 파일과 어노테이션을 검사해야 합니다. 임베딩을 비교하면 거의 중복된 이미지를 찾을 수 있으며, 벡터 검색을 사용하면 비교 대상을 수백만 장의 이미지로 확장할 수 있습니다.

  • 결측값: 필드가 비어 있는 레코드는 제거하거나 열 통계 또는 최근접 이웃을 이용한 대치로 값을 채웁니다. 비전 데이터셋에서 레이블 파일이 없는 이미지는 의도적으로 배경 이미지로 사용한 것인지, 아니면 아무도 어노테이션하지 않은 것인지 불분명합니다.
  • 중복 및 거의 중복된 데이터: 바이트 단위로 동일한 파일은 같은 해시를 가집니다. 크기를 조정하거나 재압축한 복사본과 연속된 비디오 프레임은 같은 해시를 갖지 않으므로, 지각 해시 또는 임베딩 유사도를 사용해야 합니다.
  • 손상 및 유효하지 않은 파일: 다운로드가 잘렸거나, 지원되지 않는 형식이거나, 예상하지 못한 색상 모드이거나, 이미지가 너무 작으면 디코딩에 실패하거나 사용할 수 있는 신호가 없습니다.
  • 레이블 오류: 잘못된 클래스, 누락된 객체, 느슨하거나 잘못 배치된 박스는 지도 학습 비전 데이터에서 가장 큰 비용을 초래하는 오류이며 눈으로 찾아내기도 가장 어렵습니다.
  • 일관되지 않은 범주: "Car"와 "car" 같은 철자 차이나 "자동차"와 "차량"처럼 겹치는 클래스는 하나의 분류 체계로 통합하여 각 개념에 하나의 레이블만 부여합니다.
  • 이상치: 음수 나이 또는 이미지 테두리 밖으로 벗어난 박스처럼 불가능한 값은 수정해야 하는 오류입니다. 드물지만 유효한 사례는 유지합니다. 이러한 엣지 케이스가 모델이 가장 많이 학습해야 할 대상인 경우가 많기 때문입니다.

모델을 사용한 레이블 오류 탐지#

모든 레이블을 일일이 검토하는 방식은 확장하기 어려우므로, 정제 파이프라인에서는 학습된 모델을 사용해 검사할 레이블의 우선순위를 정합니다. 오픈 소스 cleanlab 라이브러리로 구현된 신뢰도 학습은 교차 검증에서 얻은 샘플 외 예측 확률을 사용하여, 모델이 주어진 레이블과 다른 클래스를 높은 신뢰도로 예측하는 예시를 표시합니다. 최종 판단은 여전히 사람이 내립니다. 앞서 언급한 테스트 세트 연구에서는 크라우드소싱 검토자가 알고리즘으로 표시된 후보 중 51%를 실제 레이블 오류로 확인했습니다.

파일 검사 자동화#

파일 단위 검사는 새 데이터 배치마다 실행할 수 있을 만큼 비용이 낮으며, 데이터셋 품질 관리 강의에서 다루는 라벨 및 클래스 균형 감사와 함께 수행할 수 있습니다. 다음 스크립트는 이미지 하나, 완전히 동일한 사본, 잘린 파일이 들어 있는 작은 폴더를 만들고 Pillow와 콘텐츠 해시를 사용해 사본과 손상된 파일을 표시합니다.

import hashlib
from pathlib import Path

from PIL import Image

# A tiny image folder: one original, one exact copy, and one truncated download
folder = Path("images")
folder.mkdir(exist_ok=True)
Image.new("RGB", (640, 480), "orange").save(folder / "a.jpg")
(folder / "b.jpg").write_bytes((folder / "a.jpg").read_bytes())
(folder / "c.jpg").write_bytes((folder / "a.jpg").read_bytes()[:1000])

seen = {}
for path in sorted(folder.glob("*.jpg")):
    try:
        Image.open(path).load()  # decode every pixel; a truncated file raises OSError
    except OSError as error:
        print(f"{path.name}: corrupt ({error})")
        continue
    digest = hashlib.md5(path.read_bytes()).hexdigest()  # identical bytes give identical hashes
    if digest in seen:
        print(f"{path.name}: duplicate of {seen[digest]}")
    seen.setdefault(digest, path.name)

스크립트는 b.jpg: duplicate of a.jpg과 c.jpg: corrupt (image file is truncated (5 bytes not processed))을 출력합니다. 이미지 파일을 완전히 디코딩하는 것이 중요합니다. 파일을 열 때 헤더만 읽을 수 있으며, 잘린 파일도 이 단계를 통과할 수 있기 때문입니다. Ultralytics YOLO는 데이터셋의 레이블 캐시를 생성할 때마다 관련 검사를 수행합니다. 이미지 끝 표시자가 없는 JPEG를 다시 저장하고, 중복 레이블 행을 제거하며, 이미지 크기가 10픽셀 미만이거나 좌표가 이미지 범위를 벗어나거나 클래스 ID가 데이터셋 YAML에 정의된 범위를 벗어나는 이미지-레이블 쌍을 건너뛴 다음, 검사 요약에 이미지, 배경, 손상 항목 수를 보고합니다.

  • 데이터 전처리: 크기 조정 및 픽셀 값 정규화와 같이 이미 올바른 데이터를 모델이 기대하는 형식으로 변환합니다. 정제는 어떤 데이터가 올바른지 판단합니다.
  • 데이터 증강: 학습 중 정제된 데이터에 좌우 반전이나 색상 변화와 같은 의도적인 변형을 추가합니다.
  • 데이터 레이블링: 레이블이 없는 데이터에 레이블을 생성하는 작업이며, 정제는 이미 존재하는 레이블을 감사하고 수정하는 작업입니다.
  • 데이터셋 편향: 데이터셋에 오류가 없더라도 일부 조건이나 집단이 충분히 포함되지 않을 수 있습니다. 편향을 바로잡으려면 다른 데이터를 수집해야 하며, 정제만으로는 해결할 수 없습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요