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

Data Augmentation

데이터 증강은 뒤집기, 자르기, 색상 변경 등 기존 이미지를 무작위로 변환한 복사본으로 모델을 학습시켜 일반화 성능을 높입니다.

데이터 증강은 기존 예제에 플립, 크롭, 크기 조정, 색상 변경 및 이미지 혼합과 같은 무작위 변환을 적용해 학습 데이터셋의 다양성을 높입니다. 변환된 사본은 원래 라벨을 그대로 유지하므로 모델은 시점, 조명 및 위치가 달라져도 객체가 동일한 객체라는 점을 학습합니다. 새 이미지를 수집하고 라벨링하는 작업은 느리고 비용이 많이 듭니다. 따라서 증강은 과적합을 방지하는 가장 저렴한 방법이며, 거의 모든 최신 컴퓨터 비전 모델이 증강을 사용해 학습합니다.

데이터 증강의 작동 방식#

대부분의 학습 파이프라인은 온라인 증강을 사용합니다. 데이터 로더가 배치를 구성할 때 각 이미지를 변환하고 매번 새로운 무작위 파라미터를 선택하므로, 에포크마다 이미지의 서로 다른 버전을 보게 됩니다. 오프라인 증강은 학습 전에 변환된 사본을 정해진 수만큼 디스크에 저장하는 방식으로, 저장 공간을 늘리고 모델이 접하는 고유한 변형의 수를 크게 줄입니다.

증강이 데이터를 왜곡하지 않도록 두 가지 규칙을 지켜야 합니다. 첫째, 라벨은 픽셀과 함께 이동해야 합니다. 객체 탐지, 인스턴스 세그멘테이션, 포즈 추정에서는 기하학적 변환을 적용할 때 모든 바운딩 박스, 마스크, 키포인트를 업데이트해야 하며, 수평 반전에서는 좌우 키포인트도 서로 바꿔야 합니다. 둘째, 실제 환경에서 일어날 수 있는 변환이어야 합니다. 수직 반전은 항공 이미지와 현미경 이미지에 적합하지만, 거리 장면에서는 추론 시점에 나타나지 않는 거꾸로 된 자동차를 만듭니다. 이미지와 함께 박스를 전달하면 Torchvision 변환이 첫 번째 규칙을 자동으로 처리합니다.

from urllib.request import urlopen

from PIL import Image
from torchvision import tv_tensors
from torchvision.transforms import v2

image = Image.open(urlopen("https://ultralytics.com/images/bus.jpg"))  # 810 x 1080 pixels
boxes = tv_tensors.BoundingBoxes([[50, 400, 250, 900]], format="XYXY", canvas_size=(1080, 810))

# Flip every time (p=1.0) and shift colors; the box must move with the pixels
augment = v2.Compose([v2.RandomHorizontalFlip(p=1.0), v2.ColorJitter(brightness=0.4, saturation=0.7)])
new_image, new_boxes = augment(image, boxes)

print(f"Original box: {boxes.tolist()}")
print(f"Flipped box:  {new_boxes.tolist()}")

이미지 왼쪽에 있는 남성 주변의 박스는 810픽셀 너비를 기준으로 좌우 반전되어 [50, 400, 250, 900]에서 [560, 400, 760, 900]로 이동합니다. 반면 색상 지터는 박스를 건드리지 않고 픽셀만 변경합니다.

일반적인 기법#

  • 기하학적 변환: 플립, 회전, 크기 조정, 이동, 크롭, 기울이기 및 원근 왜곡으로 다양한 카메라 위치와 객체 크기를 모사합니다.
  • 광도 변환: 밝기, 대비, 채도 및 색조를 변경하고 블러와 노이즈를 추가해 다양한 조명, 센서 및 이미지 품질을 모사합니다.
  • 가림: 랜덤 지우기와 컷아웃으로 사각형 영역을 비워 모델이 객체의 특정 부분 하나에 의존하지 못하게 합니다.
  • 이미지 혼합: MixUp은 이미지 두 장과 라벨을 혼합하고, CutMix는 한 이미지의 패치를 다른 이미지에 붙여 넣습니다. 모자이크는 이미지 네 장을 하나의 학습 샘플로 타일링하며, 복사-붙여넣기는 세그멘테이션된 객체를 새 배경으로 옮깁니다.
  • 자동화된 정책: RandAugment는 변환 수와 강도라는 두 가지 설정만으로 제어되는 무작위 변환 시퀀스를 적용해, 이전에 학습된 정책에서 필요했던 비용이 큰 탐색 과정을 없앱니다.

객체 검출을 위한 증강 파이프라인#

검출 파이프라인은 여러 변환을 연결하고 각각에 자체 확률을 적용하므로 모든 학습 이미지가 서로 다른 무작위 조합을 받습니다.

Ultralytics YOLO 학습은 기본적으로 이 파이프라인을 실행합니다. 모든 이미지에 모자이크를 적용하고(mosaic=1.0), 수평 플립을 50% 확률로 적용하며(fliplr=0.5), 최대 ±50% 크기 조정과 HSV 색상 변경을 적용합니다. 마지막 10개 에포크에서는 모자이크를 끄고(close_mosaic=10) 모델이 완전하고 자연스러운 이미지로 학습을 마치도록 합니다.

from ultralytics import YOLO

# 사전 학습된 YOLO26n 모델을 불러옵니다
model = YOLO("yolo26n.pt")

# fliplr: 수평 플립 확률; scale: 확대/축소 범위(+/- 70%); degrees: 회전 범위(+/- 5)
results = model.train(data="coco8.yaml", epochs=10, fliplr=0.5, scale=0.7, degrees=5.0)

이 실행 중 YOLO26 트레이너는 박스를 그린 첫 번째 증강 배치 세 개를 train_batch0.jpg, train_batch1.jpg 및 train_batch2.jpg으로 저장하므로, 긴 학습을 시작하기 전에 각 설정의 효과를 확인할 수 있습니다.

  • 합성 데이터: 렌더링 엔진, 시뮬레이터 또는 확산 모델로 처음부터 생성합니다. 증강은 이미 존재하는 실제 이미지를 수정합니다.
  • 데이터 전처리: 학습과 추론 중 모든 이미지에 동일하게 적용되는 크기 조정 및 정규화와 같은 결정적 단계입니다. 증강은 무작위로 적용되며 학습 중에만 실행됩니다.
  • 테스트 시 증강(TTA): 플립 및 크기 조정된 사본과 같이 동일한 입력의 증강 버전 여러 개에서 추론을 실행한 다음 예측을 병합하여, 정확도를 조금 높이는 대신 연산량을 늘립니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

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

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