YOLO v8(You Only Look Once version 8)은 Ultralytics에서 개발한 최신 객체 탐지(Object Detection) 모델입니다.
YOLO는 빠른 속도와 높은 정확도를 갖춘 실시간 객체 탐지 모델인데, v8은 이전 버전보다 더 높은 정확도와 성능 최적화를 제공합니다.
1. YOLO v8의 특징
✅ 다양한 컴퓨터 비전 작업 지원
YOLO v8은 단순한 객체 탐지가 아니라, 다양한 컴퓨터 비전 작업을 지원합니다.
- Object Detection (객체 탐지) → 이미지/영상에서 객체의 위치(Bounding Box)와 클래스를 탐지
- Image Segmentation (이미지 분할) → 객체의 윤곽을 픽셀 단위로 분할(Mask 생성)
- Classification (분류) → 이미지 내 객체가 어떤 카테고리에 속하는지 분류
- Pose Estimation (포즈 추정) → 사람의 관절 위치(Keypoint Detection) 탐지
✅ 더 빠르고 정확한 성능
- YOLO v7보다 더 가벼운 구조로 빠르고 효율적
- 최신 CNN 구조와 패턴 학습 최적화
- 모바일, 임베디드 환경에서도 실행 가능
✅ 간단한 사용법 (Python API 지원)
- ultralytics 라이브러리를 통해 쉽게 모델을 불러오고 학습 가능
- PyTorch 기반으로 커스텀 데이터 학습 가능
2. YOLO v8 설치 및 사용법
1) 설치
YOLO v8을 사용하려면 ultralytics 패키지를 설치해야 합니다.
pip install ultralytics
2) 모델 불러오기
Python에서 YOLO v8 모델을 불러오는 방법
from ultralytics import YOLO
# 사전 훈련된 YOLO v8 모델 불러오기
model = YOLO("yolov8n.pt") # n: Nano, s: Small, m: Medium, l: Large, x: Extra Large
# 이미지에서 객체 탐지 수행
results = model("image.jpg")
# 탐지된 객체 출력
results.show()
3) 실시간 웹캠 객체 탐지
YOLO v8을 이용해 웹캠을 통해 실시간 객체 탐지도 가능합니다.
model = YOLO("yolov8n.pt") # 사전 훈련된 모델 로드
model.predict(source=0, show=True) # 웹캠(0번 장치)에서 실시간 탐지
3. YOLO v8의 모델 종류
YOLO v8은 다양한 크기의 모델을 제공합니다.
모델 크기가 클수록 정확도가 높지만 속도가 느려집니다.
모델 | 크기 | 속도(FPS) | 정확도(mAP) |
YOLOv8n | Nano | 가장 빠름 | 낮음 |
YOLOv8s | Small | 빠름 | 중간 |
YOLOv8m | Medium | 중간 | 높음 |
YOLOv8l | Large | 느림 | 높음 |
YOLOv8x | Extra Large | 가장 느림 | 가장 정확 |
임베디드 시스템에서는 YOLOv8n이나 YOLOv8s를 사용을 추천드립니다.
4. YOLO v8의 커스텀 학습(Custom Training)
YOLO v8은 자신만의 데이터셋을 이용해 모델을 학습 가능합니다.
기본적으로 YOLO 포맷의 데이터셋을 사용해야 합니다.
1) 데이터셋 준비
데이터는 train, val, test 폴더로 구성되어 있어야 합니다.
data.yaml 파일을 만들어 클래스 정보와 경로를 지정해야 합니다.
ex) data.yaml 예시
path: /content/dataset
train: images/train
val: images/val
test: images/test
nc: 2 # 클래스 개수 (예: "고양이", "개" 2개)
names: ["cat", "dog"]
2) 학습 시작
model = YOLO("yolov8n.pt") # 사전 학습된 모델 로드
# 학습 시작 (에포크 50회)
model.train(data="data.yaml", epochs=50, imgsz=640)
5. YOLO v8의 응용 분야
YOLO v8은 다양한 산업에서 활용 가능합니다.
- 🚗 자율 주행 → 차량 및 보행자 탐지
- 📷 CCTV 보안 시스템 → 침입자 탐지
- 🤖 로봇 비전 → 로봇이 사물을 인식하도록 학습
- 🏥 의료 영상 분석 → X-ray 및 CT 이미지에서 질병 탐지
- 🛍️ 리테일 분석 → 고객 행동 분석 및 제품 탐지
6. YOLO v8과 이전 버전(YOLO v7, v6) 비교
버전 | 주요 특징 | 정확도 | 속도 | 추가 기능 |
YOLOv5 | PyTorch 기반, 가볍고 빠름 | 중간 | 빠름 | ❌ |
YOLOv6 | CNN 최적화, 경량화 | 높음 | 빠름 | ❌ |
YOLOv7 | 최신 CNN 아키텍처, 높은 정확도 | 높음 | 중간 | ❌ |
YOLOv8 | 새로운 구조, Segmentaion(분할), Pose(포즈 추정) 지원 | 매우 높음 | 빠름 | 지원 |
YOLO v8은 탐지뿐만 아니라 Segmentaion, Pose Estimation까지 지원하는 것이 차별점입니다!
- YOLO v8은 최신 객체 탐지 모델로 빠르고 정확
- 객체 탐지, 분할(Segmentation), 포즈 추정(Pose Estimation)까지 지원
- Python 코드 몇 줄로 쉽게 사용 가능
- 커스텀 데이터셋 학습도 가능하여 실무에서 활용하기 좋습니다.
💡 임베디드 시스템, IoT, 자율 주행, 보안, 헬스케어 등 다양한 분야에 활용할 수 있습니다.