상세 컨텐츠

본문 제목

YOLOv8 사용하는 법 (Python API 활용)

딥러닝

by 찐공돌이@ 2024. 10. 30. 22:57

본문

 

YOLOv8은 Ultralytics에서 개발한 최신 객체 탐지 모델로, 이전 버전보다 더 빠른 처리 속도와 높은 정확도를 제공하고 있다. 이 가이드는 YOLOv8을 설치하고 데이터셋을 준비하는 법, 모델 학습 및 테스트 방법, 그리고 Python API를 활용하는 방법을 단계별로 설명한다.

 

YOLOv8이란?

YOLOv8은 이전 버전인 YOLOv5를 개선한 객체 탐지 모델로, 이미지와 비디오에서 객체를 탐지하는 데 사용된다. 다양한 모델 크기(yolov8n, yolov8s, yolov8m, yolov8l, yolov8x)를 제공하여 여러 하드웨어 환경에 맞게 최적화할 수 있으며, 자율 주행, 보안, 의료 영상 분석, 산업 자동화 등 여러 분야에 활용되고 있다.

 

YOLOv8 주요 특징

  1. 다양한 모델 크기 지원: Nano부터 Xlarge까지 모델 크기를 선택할 수 있다.
  2. 빠른 학습 및 추론 속도: 실시간 응용에 적합한 속도를 제공한다.
  3. 정확도 향상: 향상된 구조와 최적화된 알고리즘으로 높은 정확도를 지원한다.
  4. 커스터마이징 가능: Python API로 파인튜닝 및 하이퍼파라미터 조정이 가능하다.
  5. 다양한 활용 분야: 자율 주행, 보안, 의료, 산업 분야에서 활발히 사용되고 있다.

 

YOLOv8 설치 방법

먼저 YOLOv8을 설치하려면 Ultralytics 라이브러리를 설치해야 한다. 터미널에 다음 명령어를 입력하면 된다.

pip install ultralytics

 

 

설치가 완료되면 YOLOv8이 정상적으로 설치됐는지 확인한다. 아래 코드를 실행해서 버전을 출력한다.

import ultralytics 
print(ultralytics.__version__)

 

YOLOv8 모델 로드 하는 방법

YOLOv8은 다양한 크기의 모델을 제공하고 있다. 여기서는 yolov8n(Nano 모델)을 예시로 사용하여 모델을 불러온다.

 

 

모델을 사용하는 방법은 두 가지가 있는데 첫번째는 사전학습된 yolov8 모델을 이용하는 방법이 있고, 두번째는 새로운 모델을 새로 학습하는 방법이 있다.

1) 사전 학습된 yolov8 모델을 사용하는 방법 (nano 모델)

from ultralytics import YOLO 
# YOLOv8 모델 불러오기 
model = YOLO('yolov8n.pt')

 

사전 학습된 YOLOv8 Nano 모델이 로드된다.

 

2) 새로운 모델로 새로 학습하는 방법 (nano 모델)

from ultralytics import YOLO 
model = YOLO('yolov8n.yaml')

 

새로운 모델이 학습되면서 생성 된다.

 

YOLOv8 데이터셋 준비 방법

YOLOv8 모델을 학습하려면 이미지 데이터셋이 필요하다. COCO, VOC 형식 또는 커스텀 데이터셋을 사용할 수 있으며, 이미지 폴더와 라벨 파일(.yaml) 형식으로 구성해야 한다. 아래는 데이터셋의 라벨 파일 예시이다. 참고로 Labelme와 같은 어노테이션 프로그램을 사용하면 자동적으로 .yaml 파일을 생성해주어 파일명만 집어 넣어 주면 된다.

# data.yaml 파일 예시 
train: path/to/train/images 
val: path/to/val/images 
nc: 2 # 클래스 개수 
names: ['class1', 'class2'] # 클래스 이름
  • train: 학습 이미지 경로
  • val: 검증 이미지 경로
  • nc: 총 클래스 개수
  • names: 클래스 이름 목록

 

YOLOv8 모델 학습하는 방법

데이터셋이 준비되었으면 YOLOv8 모델 학습을 시작할 수 있다. 아래 코드는 YOLOv8 모델 학습 예시이다.

# YOLOv8 모델 학습 
results = model.train(data='data.yaml', epochs=50, imgsz=640, batch=16)
  • data: 데이터셋 파일 경로 (예: data.yaml).
  • epochs: 학습할 에포크 수 (반복 횟수).
  • imgsz: 이미지 크기 (권장 크기는 640).
  • batch: 배치 크기 (한 번에 학습하는 데이터 샘플 수).

이 과정을 통해 YOLOv8 모델이 데이터셋에 맞게 학습되며, 학습이 완료되면 학습된 가중치를 사용할 수 있다.

 

YOLOv8 학습 모델 테스트 방법

학습이 완료된 후 YOLOv8 모델을 테스트할 수 있다. 테스트 이미지를 사용하여 예측 결과를 확인하려면 아래 코드를 실행한다.

# 테스트 이미지 예측 
results = model('path/to/test/image.jpg') 
results.show() # 예측 결과 이미지 표시

 

YOLOv8 Python API 사용법

YOLOv8의 Python API는 이미지 예측, 모델 평가, 추가 학습(파인튜닝) 등 다양한 작업을 지원한다. 다음은 YOLOv8 API를 사용하여 예측 결과를 분석하는 방법이다.

 
YOLOv8로 학습에 사용되지 않은 이미지 예측 하는 법
  • 이미지 예측
results = model.predict(source="image.jpg")

 

  • 동영상 예측: 
results = model.predict(source="video.mp4")
  • 모델 평가: 
metrics = model.val(data='data.yaml')

 

YOLOv8 API의 추가 기능

YOLOv8 API는 다양한 기능을 제공하여 모델을 세부적으로 조정하고 최적화할 수 있다. 하이퍼파라미터 조정, 파인튜닝 등을 통해 YOLOv8의 성능을 더욱 향상할 수 있다.

이 가이드를 통해 YOLOv8 설치부터 학습, 테스트 및 API 활용까지 모든 단계를 확인할 수 있으며, YOLOv8을 효과적으로 적용하는 방법에 대해 배울 수 있다.

 

 

관련글 더보기