Meet YOLO26: next-gen vision AI.

Link to this section주석이 달린 컴퓨터 비전 데이터를 위한 데이터 전처리 기법#

데이터 전처리는 원본 주석 이미지를 컴퓨터 비전 모델이 원활하게 학습할 수 있는 깨끗하고 일관된 입력 데이터로 변환합니다. Ultralytics YOLO26을 사용하면 RGB 변환, [0, 1]로의 스케일링, 리사이징과 같은 핵심 픽셀 작업이 학습 파이프라인 내에서 자동으로 실행되므로, 사용자는 데이터셋을 올바르게 분할하고 클래스 균형을 맞추며 증강(augmentation) 방법을 선택하는 작업에 집중할 수 있습니다. 본 가이드에서는 리사이징, 정규화, 데이터셋 분할, 데이터 증강, 그리고 탐색적 데이터 분석(EDA)과 같은 필수적인 기법을 다룹니다.



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

이 단계는 프로젝트 목표 정의데이터 수집 및 주석 작업을 완료한 후 수행하며, 컴퓨터 비전 프로젝트 워크플로우의 초기 과정에 해당합니다.

Link to this section전처리가 중요한 이유#

전처리는 데이터 형식을 최적화하여 연산 부하를 줄이고 모델 성능을 향상시킵니다. 전처리는 원본 데이터에서 흔히 발생하는 다음 세 가지 문제를 해결합니다:

  • 노이즈: 데이터 내의 무관하거나 무작위적인 변동.
  • 비일관성(Inconsistency): 이미지 크기, 형식 및 품질의 차이.
  • 불균형: 데이터셋 전반에 걸친 클래스나 카테고리의 불균등한 분포.

Link to this section전처리 기법#

주요 기법으로는 리사이징, 정규화, 데이터셋 분할, 증강이 있습니다. YOLO26의 경우 처음 두 가지는 자동으로 수행되며, 분할과 증강은 사용자의 선택이 가장 중요한 단계입니다.

Link to this section이미지 크기 조정#

많은 모델이 일정한 입력 크기를 요구하므로, 리사이징을 통해 이미지를 균일하게 만들고 연산 복잡도를 줄입니다. 두 가지 일반적인 보간법(interpolation method)은 다음과 같습니다:

  • 쌍선형 보간법(Bilinear Interpolation): 가장 가까운 네 픽셀의 가중 평균을 사용하여 픽셀 값을 부드럽게 만듭니다.
  • 최근접 이웃(Nearest Neighbor): 평균을 내지 않고 가장 가까운 픽셀 값을 복사합니다. 속도는 빠르지만 이미지가 더 거칠게 보일 수 있습니다.

Libraries like OpenCV and PIL (Pillow) provide these functions, but with YOLO26 you usually don't resize manually. The imgsz argument during model training handles it: when set to a value such as 640, YOLO scales each image so its largest dimension is 640 pixels while preserving the aspect ratio, then pads the shorter side (default gray, value 114) to reach a square 640 × 640 input.

Link to this section픽셀 값 정규화#

정규화는 픽셀 값을 표준 범위로 스케일링하여 모델이 학습 중에 더 빠르게 수렴하도록 돕습니다. 두 가지 일반적인 기법은 다음과 같습니다:

  • Min-Max 스케일링: 픽셀 값을 0에서 1 사이의 범위로 조정합니다.
  • Z-Score 정규화: 평균과 표준 편차를 기준으로 픽셀 값을 조정합니다.

YOLO26은 전처리 파이프라인의 일부로 정규화를 자동으로 처리합니다. 이미지를 RGB로 변환하고 255로 나누어(min-max 스케일링) 픽셀 값을 [0, 1] 범위로 스케일링합니다. YOLO는 기본적으로 ImageNet 스타일의 평균/표준편차(z-score) 정규화를 적용하지 않으므로, 수동 정규화 단계는 필요하지 않습니다.

Link to this section데이터셋 분할#

데이터를 학습, 검증, 테스트 세트로 분할하면 보지 못한 데이터에 대해 모델을 평가하고 일반화 성능을 측정할 수 있습니다. 일반적으로 학습 70%, 검증 20%, 테스트 10% 비율로 분할합니다. scikit-learn이나 TensorFlow와 같은 도구를 사용하면 이 과정을 간단히 처리할 수 있습니다.

분할 시 다음 사항을 유의하십시오:

  • 클래스 분포 유지: 각 클래스가 학습, 검증, 테스트 세트에 비례적으로 포함되도록 합니다.
  • 클래스 균형: 불균형한 데이터셋의 경우, 학습 세트 내에서만 소수 클래스를 오버샘플링하거나 다수 클래스를 언더샘플링하는 것을 고려하십시오.
데이터 누수(data leakage) 방지

증강이나 기타 전처리를 적용하기 전에 데이터셋을 분할하고, 해당 변환은 학습 세트에만 적용하십시오. 분할 전에 증강을 적용하면 검증이나 테스트 이미지의 정보가 학습 과정에 영향을 미쳐, 실제 환경에서 성능이 저하되는 왜곡된 높은 점수를 유발할 수 있습니다.

Link to this section데이터셋 증강#

데이터 증강은 기존 이미지의 수정된 버전을 생성하여 데이터셋 크기를 인위적으로 늘립니다. 이는 과적합(overfitting)을 줄이고 일반화 성능을 높이는 데 도움을 주며 다음과 같은 이점이 있습니다:

  • 더 강력한 모델: 조명, 방향, 스케일의 변화는 모델을 실제 환경의 왜곡에 더 강하게 만듭니다.
  • 비용 효율성: 새로운 데이터를 수집하고 라벨링하지 않고도 학습 세트를 확장할 수 있습니다.
  • 데이터의 효율적 활용: 주석이 달린 모든 이미지가 여러 학습 변형을 생성합니다.

Examples of data augmentation techniques including flips, rotations, scaling, and color adjustments applied to a sample image

With YOLO26, augmentation is controlled through training arguments passed to model.train() or the equivalent CLI flags — not by editing the dataset YAML, which defines dataset metadata such as paths, class names, and splits. The built-in augmentations include:

  • Mosaic, MixUp 및 CutMix (mosaic, mixup, cutmix): 여러 이미지를 하나의 학습 샘플로 결합합니다.
  • 플립(Flips) (fliplr, flipud): 이미지를 가로 또는 세로로 뒤집습니다.
  • 기하학적 변환 (degrees, translate, scale, shear, perspective): 이미지를 회전, 이동, 확대/축소 및 변형합니다.
  • HSV 색상 지터(color jitter) (hsv_h, hsv_s, hsv_v): 색상, 채도, 밝기를 변경합니다.
  • 복사-붙여넣기(Copy-paste) (copy_paste): 세그멘테이션을 위해 이미지 간 객체를 복사하고 붙여넣습니다.
학습 시 증강 강도 설정
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Augmentation is configured with training arguments, not the dataset YAML
model.train(data="coco8.yaml", epochs=10, hsv_h=0.015, fliplr=0.5, mosaic=1.0, degrees=10.0)

전체 증강 인자 목록과 기본값은 증강 설정 참조 문서와 전용 YOLO 데이터 증강 가이드를 확인하십시오. albumentations 패키지가 설치되어 있으면, YOLO는 Albumentations 기반의 내장 증강 기능을 자동으로 활성화합니다.

Link to this section사례 연구: 차량 검출을 위한 전처리#

YOLO26을 사용하여 교통 이미지에서 차량을 검출하고 분류하는 프로젝트를 고려해 보겠습니다. 바운딩 박스와 라벨이 주석된 이미지에서 시작하여 각 전처리 결정은 다음과 같이 이루어집니다:

  • 리사이징: 별도의 수동 작업 없음 — YOLO26이 학습 중 imgsz에 맞춰 리사이징합니다.
  • 정규화: 별도의 수동 작업 없음 — YOLO26이 자동으로 픽셀 값을 [0, 1] 범위로 스케일링합니다.
  • 분할: 데이터셋을 학습 70%, 검증 20%, 테스트 10%로 나누고 분할 전반에 걸쳐 클래스 분포를 일정하게 유지합니다.
  • 증강: 교통 환경에 적합한 학습 인자를 설정합니다. 예를 들어 방향 불변성을 위해 fliplr, 주야간 조명 변화를 위해 hsv_v, 다양한 객체 밀도를 위해 mosaic 등을 사용합니다.

이러한 결정이 완료되면, 데이터셋은 탐색적 데이터 분석(EDA)을 수행할 준비가 된 것입니다.

Link to this section탐색적 데이터 분석(EDA)#

EDA는 통계와 시각화를 활용하여 데이터의 패턴과 분포를 파악하고, 학습 전에 클래스 불균형이나 이상치와 같은 문제를 발견하도록 돕습니다.

Link to this section통계적 EDA 기술#

통계적 EDA는 기본 지표(평균, 중앙값, 표준편차, 범위)를 계산하는 것으로 시작하며, 이를 통해 데이터셋 품질을 빠르게 파악하고 초기 이상 현상을 발견할 수 있습니다.

Link to this section시각적 EDA 기술#

시각화는 요약 통계에서 놓치기 쉬운 패턴(클래스 불균형, 이상치 등)을 드러냅니다. 주요 도구는 다음과 같습니다:

  • 히스토그램 및 박스 플롯: 픽셀 값 분포를 보여주고 강도나 특징 분포의 이상치를 표시합니다.
  • 막대 차트: 클래스별 예시 개수를 비교하여 클래스 불균형을 드러냅니다.
  • 산점도: 이미지 특징이나 주석 간의 관계를 탐색합니다.
  • 히트맵: 픽셀 강도 분포나 이미지 전반의 주석 공간 분포를 시각화합니다.

Link to this sectionEDA를 위한 Ultralytics 플랫폼#

코딩 없이 EDA를 수행하려면 Ultralytics Platform에 데이터셋을 업로드하십시오. 데이터셋의 Charts 탭은 분할 분포, 상위 클래스 개수, 이미지 가로/세로 히스토그램, 주석 위치 및 이미지 크기의 2D 히트맵 등 주요 EDA 시각화를 자동으로 생성합니다. Images 탭에서는 주석 오버레이가 포함된 그리드, 컴팩트 또는 테이블 뷰로 데이터를 브라우징할 수 있어, 코드 작성 없이도 잘못 라벨링된 예시나 불균형한 클래스를 쉽게 찾을 수 있습니다.

Link to this section결론#

적절하게 분할, 정규화, 증강된 데이터는 노이즈를 줄이고 일반화 성능을 향상시켜, 원본 이미지들을 신뢰할 수 있는 학습 세트로 탈바꿈시킵니다. 데이터셋 전처리가 완료되면 다음 단계는 모델 학습입니다. 진행 중 질문이 생기면 Ultralytics GitHub 저장소Ultralytics Discord 서버를 통해 커뮤니티에 문의하십시오.

Link to this sectionFAQ#

Link to this section컴퓨터 비전 프로젝트에서 데이터 전처리가 중요한 이유는 무엇입니까?#

전처리는 데이터가 깨끗하고 일관되며 학습에 최적화된 형식을 갖추도록 보장합니다. 원본 데이터의 노이즈, 불일치, 클래스 불균형 문제를 해결함으로써 리사이징, 정규화, 증강, 데이터셋 분할과 같은 단계는 연산 부하를 줄이고 모델 성능을 향상시킵니다. 전처리가 더 넓은 워크플로우 내에서 어떻게 작용하는지는 컴퓨터 비전 프로젝트의 단계를 참조하십시오.

Link to this sectionUltralytics YOLO를 사용하여 데이터 증강을 어떻게 사용합니까?#

데이터셋 YAML 파일이 아닌 학습 인자를 통해 증강을 설정하십시오. fliplr, mosaic, hsv_h, degrees와 같은 인자를 model.train()(또는 대응하는 CLI 플래그)에 전달하여 각 변환의 확률과 강도를 설정합니다. 이들은 증강 설정에 정의되어 있으며 YOLO 데이터 증강 가이드에서 자세히 설명합니다.

Link to this section컴퓨터 비전 데이터를 위한 최고의 정규화 기법은 무엇입니까?#

가장 일반적인 두 가지 기법은 min-max 스케일링(픽셀을 0에서 1 사이 범위로 재조정)과 z-score 정규화(평균과 표준편차 기준 재조정)입니다. YOLO26은 이미지를 RGB로 변환하고 픽셀 값을 255로 나누는 min-max 스케일링을 자동으로 적용하므로 수동 정규화 단계가 필요하지 않습니다. 기본적으로 z-score 정규화는 적용되지 않습니다.

Link to this section학습을 위해 주석이 달린 데이터셋을 어떻게 분할해야 하나요?#

일반적인 관행은 학습 70%, 검증 20%, 테스트 10%입니다. 세 분할 모두에서 클래스 분포를 유지하고, 분할 후 학습 세트에만 증강을 적용하여 데이터 누수(data leakage)를 방지하십시오. scikit-learn이나 TensorFlow와 같은 도구는 분할을 효율적으로 처리합니다. 업스트림 데이터셋 준비는 데이터 수집 및 주석 가이드를 참조하십시오.

Link to this sectionYOLO26은 수동 리사이징 없이 다양한 이미지 크기를 처리할 수 있습니까?#

네. imgsz 인자는 학습 및 추론 중에 이미지를 리사이징하여 가장 긴 차원이 지정된 크기(예: 640픽셀)와 일치하게 하고 종횡비를 유지하며, 짧은 쪽을 패딩합니다. 직접 이미지를 리사이징할 필요는 없습니다. 자세한 내용은 모델 학습 문서를 확인하십시오.

댓글