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

Data Preprocessing

데이터 전처리는 원시 테이블, 텍스트, 이미지를 모델이 요구하는 정제되고 스케일이 조정된 고정 형식의 입력으로 변환합니다. 일반적인 단계, 데이터 누수 방지 규칙, 코드 예제를 다룹니다.

데이터 전처리는 원시 데이터를 머신러닝(ML) 모델이 기대하는 깨끗하고 일관된 형식의 수치 입력으로 변환하는 작업입니다. 학습과 추론에서 같은 방식으로 적용해야 합니다. 테이블 데이터의 경우 결측값 처리, 범주형 값의 숫자 인코딩, 특성 스케일링을 의미합니다. 이미지의 경우 파일 디코딩, 네트워크 입력 크기에 맞춘 리사이즈, 색상 채널 순서 변경, 픽셀값 스케일링을 포함합니다. 전처리는 사실상 모델의 일부입니다. RGB 이미지를 0–1 범위로 스케일링해 학습한 네트워크에 값 범위가 0~255인 BGR 이미지를 입력하면 가중치가 바뀌지 않았더라도 예측 결과의 신뢰성이 떨어집니다.

일반적인 전처리 단계#

  • 데이터 정제: 중복 데이터, 손상된 파일, 불가능한 값을 제거하고 일관되지 않은 라벨이나 단위를 수정합니다.
  • 대치: 열의 중앙값과 같은 통계값, 모델 기반 추정값 또는 별도의 "결측" 범주를 사용해 결측값을 채우거나, 결측이 너무 많은 행을 제거합니다.
  • 인코딩: 범주형 값을 숫자로 변환합니다. 색상처럼 순서가 없는 범주에는 원-핫 인코딩을, 크기처럼 순서가 있는 범주에는 순서형 코드를, 클래스 이름에는 정수 인덱스를 사용합니다.
  • 스케일링 및 정규화: 최솟값-최댓값 스케일링은 특성을 0–1 범위에 매핑하고, 표준화는 평균을 빼고 표준편차로 나눕니다. 따라서 거리를 기반으로 하는 모델에서 밀리미터 단위 특성이 미터 단위 특성을 압도하지 않으며, 경사 하강법도 더 빠르게 수렴합니다. torchvision의 ImageNet 사전 학습 모델 다수는 각 RGB 채널을 평균 0.485, 0.456, 0.406과 표준편차 0.229, 0.224, 0.225를 사용해 표준화한 입력을 기대합니다.
  • 리사이즈: 늘리기, 중앙 자르기 또는 레터박싱을 사용해 모든 이미지를 네트워크 입력 크기에 맞춥니다. 레터박싱은 이미지 크기를 조정해 맞춘 다음 나머지 공간을 패딩하므로 객체의 비율이 유지됩니다.
  • 토큰화: 텍스트를 토큰으로 나누고 각 토큰을 고정된 어휘의 정수 ID에 매핑합니다.

도메인별 전처리 단계가 추가되기도 합니다. CT 스캔은 폐 조직이 보이는 범위처럼 특정 범위의 하운스필드 단위를 모델이 보는 디스플레이 강도에 매핑하도록 윈도잉합니다. 오디오는 고정된 샘플링 주파수로 리샘플링하며, 스펙트로그램으로 변환하는 경우가 많습니다.

학습 데이터에 맞춰 처리한 뒤 모든 데이터에 동일하게 적용#

특성 평균과 표준편차, 대치값, 범주형 어휘 등 전처리에 사용하는 통계량은 학습 분할에서만 계산하고 저장한 뒤 검증, 테스트, 운영 데이터에 변경 없이 적용합니다. 분할 전에 전체 데이터셋에서 통계량을 계산하면 테스트 세트의 정보가 학습 입력에 반영됩니다. 이는 평가 점수를 부풀리는 데이터 누수의 한 형태입니다. scikit-learn Pipeline은 fit에 전달된 데이터 안에서만 전처리 단계를 학습해 이 규칙을 강제합니다. 서빙 시 다른 리사이즈 방식이나 다른 이미지 디코더를 사용하는 등 다른 전처리를 적용하면 학습-서빙 편향이 발생하여 모델이 오프라인에서는 높은 점수를 얻지만 운영 환경에서는 성능이 떨어집니다.

비전 모델의 이미지 전처리#

이미지 모델에는 고정된 텐서 레이아웃이 필요합니다. OpenCV는 이미지를 BGR 순서의 8비트 정수 배열(높이 × 너비 × 채널)로 디코딩하는 반면, PyTorch 네트워크는 채널 우선 RGB 순서의 부동소수점 텐서 배치를 기대합니다. Ultralytics에서 YOLO26 예측을 실행하면 다음 단계가 자동으로 수행됩니다. 이미지의 긴 변이 imgsz(기본값 640픽셀)에 맞도록 왜곡 없이 리사이즈하고, 고정 형태의 내보낸 모델에서는 값 114의 회색 픽셀로 640 × 640 정사각형이 되도록 패딩합니다. PyTorch 모델에서는 32픽셀 스트라이드의 다음 배수까지만 패딩합니다. 그런 다음 BGR을 RGB로 바꾸고 배열 순서를 채널 우선으로 변경한 뒤 255로 나눕니다. 아래의 OpenCV 및 NumPy 스크립트는 정사각형 레터박싱을 수동으로 수행합니다.

import urllib.request

import cv2
import numpy as np

# Download a sample photo and read it as a BGR uint8 array of shape (height, width, 3)
urllib.request.urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
image = cv2.imread("bus.jpg")

# Resize so the longer side is 640 pixels, keeping the aspect ratio
scale = 640 / max(image.shape[:2])
resized = cv2.resize(image, None, fx=scale, fy=scale, interpolation=cv2.INTER_LINEAR)

# Letterbox: center the resized image on a 640x640 canvas of gray (114) padding
canvas = np.full((640, 640, 3), 114, dtype=np.uint8)
top, left = (640 - resized.shape[0]) // 2, (640 - resized.shape[1]) // 2
canvas[top : top + resized.shape[0], left : left + resized.shape[1]] = resized

# Reorder BGR to RGB and HWC to CHW, scale pixels to 0-1, and add a batch dimension
tensor = canvas[:, :, ::-1].transpose(2, 0, 1).astype(np.float32) / 255.0
batch = tensor[None]
print(f"{image.shape} uint8 -> {batch.shape} float32 in [{batch.min():.1f}, {batch.max():.1f}]")

스크립트는 (1080, 810, 3) uint8 -> (1, 3, 640, 640) float32 in [0.0, 1.0]을 출력합니다. 1080 × 810 사진은 양쪽에 80픽셀의 회색 막대가 추가되어 PyTorch 탐지기가 기대하는 레이아웃과 값 범위의 단일 이미지 배치가 됩니다.

  • 데이터 라벨링: 클래스와 박스 같은 정답 대상을 생성합니다. 전처리는 이를 학습 과정에서 읽을 수 있는 숫자 형식으로 변환합니다.
  • 특성 공학: 도메인 지식을 바탕으로 키와 몸무게 열에서 체질량 지수를 계산하는 것처럼 새로운 입력 변수를 만듭니다.
  • 배치 정규화: 학습 및 추론 중 중간 활성값을 표준화하는 네트워크 내부 계층입니다. 전처리의 입력 정규화는 데이터가 네트워크에 도달하기 전에 한 번 수행됩니다.
  • 데이터 증강: 뒤집기, 색상 변경, 모자이크와 같은 무작위 변환을 학습 중에만 적용해 각 예제의 다양한 복사본을 만듭니다. 전처리는 결정론적이며 학습과 추론에 동일하게 적용됩니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

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의 미래를 만들어 가세요!

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