▶️25

[영상] YOLOv8 커스텀 데이터 학습하기

Day 2: CNN 기반 불량 분류

학습 목표

YOLOv8 커스텀 데이터셋 학습 파이프라인 5단계를 순서대로 설명할 수 있다 ResNet과 EfficientNet의 아키텍처 차이와 제조 적용 기준을 비교할 수 있다 전이학습이 소규모 제조 데이터셋에서 효과적인 이유를 설명할 수 있다 클래스 불균형 문제를 해결하는 3가지 전략을 적용할 수 있다

영상 핵심 정리 — YOLOv8 커스텀 데이터 학습

전이학습 아키텍처 비교

모델파라미터Top-1추론속도추천
ResNet-5026M84.3%보통백본
EfficientNet-B05.3M85.2%빠름엣지
YOLOv8n3.2M4–6ms실시간 탐지
YOLOv8m25.9M10–12ms정확도

전이학습 원리: ImageNet 학습된 초기 레이어(엣지·텍스처·형태)는 제조 이미지에도 유효. 마지막 분류 레이어만 교체로 소규모(500장~) 실용 수준.

YOLOv8 학습 파이프라인

# data.yaml
train: ./datasets/defect/train
val:   ./datasets/defect/val
nc: 3
names: ['normal', 'scratch', 'crack']

from ultralytics import YOLO
model = YOLO('yolov8n.pt')
results = model.train(
    data='data.yaml',
    epochs=50, imgsz=640,
    augment=True
)

클래스 불균형 대응

전략 1: 데이터 증강
  - Mosaic: 4장 합성 → 불량 빈도 증가
  - CLAHE: 조도 변화 시뮬레이션

전략 2: 손실 가중치
  - 불량 클래스 weight=10
  - Focal Loss (어려운 샘플 집중)

전략 3: 평가 지표 변경
  - Accuracy → F1 + Recall 중심
  - FN 비용 >> FP 비용

함정 주의: epochs=300으로 무조건 길게 학습하면 과적합. 제조 소규모 데이터는 early stopping + validation loss 모니터링 필수. 보통 30~80 epoch.

다음 task와의 연결

다음 reading에서 CNN 아키텍처 ResNet, EfficientNet 구조 차이를 도식으로 비교한다.

AI로 학습하기 — 꿀팁
🤖YOLOv8 data.yaml 설정 파일 생성AI 학습 팁

AI 에이전트에게 제조 불량 탐지용 YOLOv8 커스텀 학습을 위한 data.yaml과 전이학습 코드를 작성하게 하고, EfficientNet과 ResNet50의 파라미터 효율성을 검토하세요.

제조 불량 탐지를 위한 YOLOv8 커스텀 학습 파이프라인을 설정해줘. 불량 유형(스크래치·찍힘·이물질·형상불량) 4종의 data.yaml 파일을 작성하고, model.train() 한 줄로 시작하는 파인튜닝 코드를 포함해줘. ImageNet 전이학습이 제조 불량 탐지에 효과적인 이유, EfficientNet이 ResNet50 대비 파라미터 1/5로 동등 정확도를 내는 원리도 설명해줘.
이 팁이 도움이 됐나요?
핵심 포인트
  • 전이학습은 ImageNet 1400만 장의 특징 추출기를 공짜로 쓰는 것
  • EfficientNet은 ResNet50 대비 파라미터 5분의 1로 동등 정확도
  • YOLOv8 파인튜닝은 model.train() 한 줄로 시작하지만 data.yaml이 핵심
  • 클래스 불균형은 증강·가중치·언더샘플링으로 대응