본문 바로가기
카테고리 없음

YOLOv8 : 사전 학습 모델, 정확도

by 쨔우쨔우 2025. 3. 21.
반응형

YOLO는 사전 학습된 모델을 제공하며, 이미 다양한 객체(사물)에 대해 학습된 상태입니다.

 

1. YOLO의 사전 학습된 모델(Pretrained Models)

YOLO는 COCO(Common Objects in Context) 데이터셋을 기반으로 학습된 모델을 제공합니다.

COCO 데이터셋에는 80가지 객체 클래스가 포함되어 있습니다.

 

COCO 데이터셋에 포함된 객체 목록 (80개 클래스)

🚗 탈것: person, bicycle, car, motorcycle, airplane, bus, train, truck, boat
🐶 동물: bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe
🍎 음식: apple, orange, banana, sandwich, pizza, donut, cake
📱 도구: laptop, mouse, remote, keyboard, cell phone
🏠 가구: chair, couch, potted plant, bed, dining table, toilet, tv
🛍️ 생활용품: handbag, suitcase, umbrella, toothbrush, hair drier
스포츠: baseball bat, skateboard, surfboard, tennis racket

 

즉, 기본 YOLO 모델을 사용하면 위의 80개 클래스에 대해 객체 감지가 가능합니다.

하지만, 특정한 사물(예 : 반도체 칩, 의료용 기기, 특정 동물 등)은 기본 모델로 감지할 수 없기 때문에 추가 학습(fine-tuning)이 필요할 수 있습니다.

 

face detection

 

2. YOLO v8을 사용한 객체 감지 예제

YOLO v8을 설치하고 바로 사전 학습된 모델을 사용해 객체를 감지할 수 있습니다.

 

1) YOLO v8 설치

pip install ultralytics

 

2) 객체 감지 코드 (이미지)

from ultralytics import YOLO

# YOLOv8 사전 학습된 모델 로드
model = YOLO("yolov8n.pt")  # 'n'은 가장 작은 모델 (빠름)

# 이미지에서 객체 감지
results = model("image.jpg")

# 감지된 객체 출력
results.show()

 

3) 객체 감지 코드 (웹)

model = YOLO("yolov8n.pt")  # 사전 학습된 모델 로드

# 웹캠 실시간 감지
model.predict(source=0, show=True)

 

이 코드만 실행하면 바로 80가지 객체를 감지할 수 있습니다!

 

3. 특정 사물을 감지하려면? (추가 학습 필요)

만약 YOLO의 사전 학습된 모델이 감지하지 못하는 객체(예 : 특정 부품, 질병 이미지 등)를 찾고 싶다면 추가 학습이 필요합니다.

  1.  YOLO가 감지할 수 있도록 데이터셋을 준비(라벨링 필요)
  2. YOLO 모델을 학습 (Transfer Learning)
  3. 새로운 객체를 감지할 수 있는 맞춤형 YOLO 모델 사용

추가 학습을 위해서는 다음과 같은 과정이 필요합니다.

yolo train model=yolov8n.pt data=custom_dataset.yaml epochs=50

 

이렇게 하면 YOLO 모델이 새로운 객체를 학습하고 감지할 수 있도록 조정됩니다.

 

 

  • YOLO는 COCO 데이터셋 기반으로 80개 객체를 이미 학습한 상태입니다.
  • 따라서 자동차, 사람, 동물, 가구 등 기본적인 사물들은 바로 감지 가능합니다.
  • 하지만 특정한 사물(예: 특정 브랜드 제품, 산업용 부품, 의료 영상 등)은 추가 학습이 필요합니다.
  • 최신 버전인 YOLOv8을 사용하면 간단한 코드로 실시간 객체 감지가 가능합니다.

4. 사전 학습된 객체 탐지 정확도는?

YOLO의 정확도는 mAP(mean Average Precision, 평균 정밀도)로 측정됩니다.

사전 학습된 모델의 정확도는 사용하는 모델 크기와 데이터셋에 따라 다릅니다.

 

YOLO v8 사전 학습 모델의 정확도

Ultralytics에서 제공하는 YOLO v8 모델의 COCO 데이터셋 기준 정확도(mAP50-95)는 다음과 같습니다.

모델 크기 속도 mAP@50(정확도) mAP@50-95(정확도)
YOLOv8n Nano 가장 빠름 67.3% 37.3%
YOLOv8s Small 빠름 74.3% 44.9%
YOLOv8m Medium 중간 79.0% 50.2%
YOLOv8l Large 느림 81.8% 53.5%
YOLOv8x Extra Large 가장 느림 82.8% 54.6%

 

 

- mAP@50-95 : IoU(Intersection over Union) 임계값이 0.50~0.95 사이일 때의 평균 정밀도

- mAP@50 : IoU 0.50에서의 정밀도

즉, YOLOv8x가 가장 정확도가 높고, YOLOv8n이 가장 가벼운 모델입니다.

 

  • YOLOv8의 정확도는 모델 크기에 따라 67.3%~82.8% (mAP@50) 수준
  • YOLOv8x가 가장 정확도가 높지만 속도가 느림
  • YOLOv8n은 빠르고 가벼워서 임베디드 환경에서 적합
  • YOLOv8은 YOLOv7보다 속도와 정확도가 개선됨

💡 사용 목적에 맞는 모델을 선택하는 것이 중요합니다.
💡 추가 학습(Fine-tuning)을 하면 특정 사물에 대한 정확도를 더 높일 수 있습니다.

 

기본적으로 사전 학습된 모델을 바로 솔루션에 적용하기에는 정확도가 부족하다고 생각됩니다.

특히, 정확도가 필요한 산업(예 : 의료 영상 분석, 자율주행, 보안 감시 등)에서는 추가적인 개선이 필요합니다.

반응형