본문 바로가기
Data & AI Intelligence/▶AI & Agent

YOLO

by 류딩이2026. 2. 24.
 
 
 
YOLO Fine-Tuning & Parameter Guide (2026 Today)
2026 Updated

YOLO 

Fine-Tuning YOLO11 Ultralytics Python 3.12+
개요: 본 가이드는 2026년 최신 기술 기준(YOLO11 및 Ultralytics 8.3+)을 바탕으로 객체 탐지 모델의 성능을 끌어올리는 파인튜닝 방법과 필수 파라미터의 의미를 상세히 다룹니다. 초보자를 위한 친절한 코드 설명부터 실무 활용 예시까지 한 번에 정리했습니다.

1. 파인튜닝 및 주요 학습 파라미터 설명

파인튜닝(Fine-Tuning)이란 사전에 학습된 가중치(Weights)를 기반으로 새로운 데이터셋에 맞춰 미세 조정하는 기법입니다.

아래는 학습 시 모델의 성능과 속도를 결정짓는 핵심 파라미터 리스트입니다.
파라미터 설명 영향
epochs 전체 데이터를 반복 학습하는 횟수 정확도 향상 (너무 높으면 과적합 발생)
imgsz 입력 이미지의 해상도 설정 (640, 1024 등) 높을수록 작은 객체 탐지 유리, 속도는 저하
batch 한 번의 가중치 갱신에 사용되는 이미지 수 GPU 메모리 사용량 및 학습 안정성 결정
lr0 초기 학습률 (Learning Rate) 학습이 수렴하는 속도와 최적화 품질 결정
patience 개선이 없을 때 조기 종료(Early Stopping) 기준 불필요한 학습 시간 단축 및 과적합 방지

2. [초보자] 첫걸음을 위한 기초 파인튜닝 코드

처음 시작하시는 분들을 위해 가장 안정적이고 표준적인 학습 코드를 준비했습니다.
 
 
 
from ultralytics import YOLO

# 1. 사전 학습된 나노(Nano) 모델 로드 (가장 가볍고 빠름)
# 초보자 단계에서는 학습 속도가 빠른 'n' 모델을 추천합니다.
model = YOLO('yolo11n.pt') 

# 2. 기초 파인튜닝 시작
model.train(
    data='custom_dataset.yaml',  # 내 데이터셋 정보 파일 (이미지 경로 등)
    epochs=50,                   # 50번 반복 학습 (초보 단계 적정 수준)
    imgsz=640,                   # 표준 해상도 설정
    batch=16,                    # 한 번에 16장씩 처리 (일반적인 환경)
    device='0',                  # 0번 GPU 사용 (GPU가 없다면 'cpu' 입력)
    name='basic_project'         # 결과물이 저장될 폴더명
)

3. [실무] 고성능 모델을 위한 심화 튜닝 전략

실제 서비스 환경에서는 데이터 증강(Augmentation)과 최적화 알고리즘 설정이 매우 중요합니다.
 
 
 
# 실무용 고도화 튜닝 예시
model.train(
    data='industrial_data.yaml',
    epochs=200,                  # 충분한 학습을 위해 에포크 상향
    imgsz=1024,                  # 정밀한 탐지를 위해 이미지 크기 확대
    batch=-1,                    # -1은 GPU 메모리에 맞춰 배치를 자동 최적화함 (실무 꿀팁)
    optimizer='AdamW',           # 최신 딥러닝에서 가장 선호되는 최적화 함수
    lr0=0.001,                   # 학습률을 수동으로 제어하여 안정성 확보
    patience=30,                 # 30회 동안 개선 없으면 조기 종료 (과적합 방지)
    augment=True,                # 데이터 증강 활성화 (색상변화, 노이즈 등 추가)
    mosaic=1.0,                  # 4장 이미지를 섞어 학습 (복잡한 환경 대비)
    mixup=0.15,                  # 이미지 겹치기 증강 (객체 겹침 현상 대응)
    val=True                     # 학습 중간에 매번 검증 수행
)

4. [유용한 활용] 추론 결과 데이터 커스텀 가공

단순히 화면에 보여주는 것을 넘어, 실무에서는 탐지 데이터를 DB에 저장하거나 로그를 남기는 작업이 필수입니다.
 
 
 
# 실시간 추론 및 데이터 추출 활용 예시
results = model.predict(
    source='video.mp4',          # 분석할 소스 (웹캠 '0' 혹은 동영상 경로)
    conf=0.45,                   # 신뢰도 45% 이상만 검출
    save=True,                   # 분석 결과 영상 저장
    stream=True                  # 대용량 영상 처리를 위한 스트리밍 모드 (메모리 절약)
)

for r in results:
    boxes = r.boxes
    for box in boxes:
        # 실무 데이터 활용: 좌표, 확률, 클래스명 추출
        x1, y1, x2, y2 = box.xyxy[0].tolist() # 박스 좌표값 리스트 변환
        score = box.conf[0].item()            # 검출 확률(정확도)
        cls_id = int(box.cls[0])              # 객체 클래스 번호
        
        # 특정 확률 이상인 객체만 로깅
        if score > 0.8:
            print(f"ID: {cls_id} | 좌표: [{x1:.1f}, {y1:.1f}] | 확률: {score*100:.1f}%")
Data & AI Intelligence ▶ AI & Agent

© 2026 AI Developer Blog. All rights reserved.

TOP