Home
Login

PyTorch 기반의 최첨단 실시간 객체 감지 모델 YOLOv5는 객체 감지, 이미지 분할 및 이미지 분류 작업을 지원합니다.

AGPL-3.0Python 54.3kultralyticsyolov5 Last Updated: 2025-06-21

YOLOv5 프로젝트 상세 소개

프로젝트 개요

Ultralytics YOLOv5 🚀는 Ultralytics에서 개발한 최첨단(SOTA) 컴퓨터 비전 모델입니다. PyTorch 프레임워크를 기반으로 하는 YOLOv5는 사용 편의성, 속도 및 정확성으로 유명합니다. 광범위한 연구 및 개발의 통찰력과 모범 사례를 융합하여 다양한 시각 AI 작업에 널리 사용됩니다.

프로젝트 주소: https://github.com/ultralytics/yolov5

핵심 기능

멀티태스크 지원

YOLOv5는 다양한 컴퓨터 비전 작업을 지원합니다.

  • 객체 감지: 이미지에서 여러 객체 식별 및 위치 파악
  • 인스턴스 분할: 픽셀 수준의 객체 분할
  • 이미지 분류: 단일 이미지의 범주 분류

기술적 장점

주요 기능으로는 실시간 추론, TTA(테스트 시간 증강) 및 모델 앙상블과 같은 다양한 훈련 기술 지원, TFLite, ONNX, CoreML 및 TensorRT와 같은 내보내기 형식과의 호환성이 있습니다.

모델 아키텍처 및 성능

모델 사양

YOLOv5는 다양한 요구 사항을 충족하기 위해 다양한 모델 크기를 제공합니다.

모델 파라미터 수(M) 속도 정확성 적용 분야
YOLOv5n 1.9 가장 빠름 낮음 모바일 장치, 엣지 컴퓨팅
YOLOv5s 7.2 빠름 중간 일반적인 응용 프로그램
YOLOv5m 21.2 중간 높음 균형 잡힌 성능
YOLOv5l 46.5 느림 높음 고정밀 요구 사항
YOLOv5x 86.7 가장 느림 가장 높음 최고 정밀도 요구 사항

성능 지표

COCO 데이터 세트에서의 성능:

  • YOLOv5s: mAP@0.5:0.95 = 37.4%, 속도 6.4ms (V100)
  • YOLOv5m: mAP@0.5:0.95 = 45.4%, 속도 8.2ms (V100)
  • YOLOv5l: mAP@0.5:0.95 = 49.0%, 속도 10.1ms (V100)
  • YOLOv5x: mAP@0.5:0.95 = 50.7%, 속도 12.1ms (V100)

설치 및 빠른 시작

환경 요구 사항

  • Python >= 3.8.0
  • PyTorch >= 1.8

설치 단계

# 저장소 복제
git clone https://github.com/ultralytics/yolov5
cd yolov5

# 종속성 설치
pip install -r requirements.txt

PyTorch Hub를 사용하여 추론

import torch

# YOLOv5 모델 로드
model = torch.hub.load("ultralytics/yolov5", "yolov5s")

# 입력 이미지 소스 정의
img = "https://ultralytics.com/images/zidane.jpg"

# 추론 실행
results = model(img)

# 결과 처리
results.print()  # 결과를 콘솔에 출력
results.show()   # 창에 결과 표시
results.save()   # 결과를 runs/detect/exp에 저장

명령줄 추론

# 카메라를 사용하여 추론
python detect.py --weights yolov5s.pt --source 0

# 로컬 이미지 파일에 대해 추론
python detect.py --weights yolov5s.pt --source img.jpg

# 비디오 파일에 대해 추론
python detect.py --weights yolov5s.pt --source vid.mp4

# 이미지 디렉토리에 대해 추론
python detect.py --weights yolov5s.pt --source path/to/images/

# YouTube 비디오에 대해 추론
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4'

사용자 정의 모델 훈련

훈련 명령 예제

# COCO 데이터 세트에서 YOLOv5s를 300 epoch 동안 훈련
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64

# YOLOv5m 훈련
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40

# YOLOv5l 훈련
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24

다중 GPU 훈련

# 다중 GPU 분산 훈련 사용
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 train.py --data coco.yaml --weights '' --cfg yolov5s.yaml --batch-size 64 --device 0,1,2,3

인스턴스 분할 기능

YOLOv5 v7.0 버전은 인스턴스 분할 기능을 도입하여 COCO 데이터 세트에서 최첨단 성능을 달성했습니다.

분할 모델 성능

모델 mAP^box mAP^mask 파라미터 수(M) 속도(ms)
YOLOv5n-seg 27.6 23.4 2.0 59.2
YOLOv5s-seg 37.6 32.0 7.6 63.7
YOLOv5m-seg 45.0 37.1 22.0 89.5
YOLOv5l-seg 49.0 39.9 47.8 168.4
YOLOv5x-seg 50.7 41.4 88.8 265.7

분할 훈련 예제

# 분할 모델 훈련
python segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640

# 분할 모델 검증
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640

# 분할 모델을 사용하여 예측
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg

이미지 분류 기능

YOLOv5 v6.2 버전은 이미지 분류 기능을 추가했으며, ImageNet 데이터 세트에서 90 epoch 동안 훈련한 결과는 다음과 같습니다.

분류 모델 성능

모델 Top1 정확도 Top5 정확도 파라미터 수(M) 속도(ms)
YOLOv5s-cls 71.5% 90.2% 5.5 1.7
YOLOv5m-cls 75.9% 92.9% 13.0 2.8
YOLOv5l-cls 78.0% 94.0% 27.4 4.9
YOLOv5x-cls 79.0% 94.4% 55.4 8.7

분류 훈련 예제

# CIFAR-100 데이터 세트에서 훈련
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128

# ImageNet 모델 검증
python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224

# 이미지 분류 예측
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg

모델 내보내기 및 배포

YOLOv5는 다양한 배포 형식을 지원합니다.

# ONNX 형식으로 내보내기
python export.py --weights yolov5s.pt --include onnx

# TensorRT 형식으로 내보내기
python export.py --weights yolov5s.pt --include engine

# CoreML 형식으로 내보내기 (iOS에 적합)
python export.py --weights yolov5s.pt --include coreml

# TFLite 형식으로 내보내기 (모바일 장치에 적합)
python export.py --weights yolov5s.pt --include tflite

고급 기능

테스트 시간 증강(TTA)

반사 및 스케일 증강을 통해 예측 정확도 향상:

python val.py --data coco.yaml --img 1536 --iou 0.7 --augment

모델 앙상블

더 나은 성능을 위해 여러 모델 결합:

python val.py --data coco.yaml --weights yolov5s.pt yolov5m.pt yolov5l.pt yolov5x.pt

초매개변수 진화

최적의 훈련 초매개변수를 자동으로 찾기:

python train.py --data coco.yaml --evolve 300

통합 및 생태계

YOLOv5는 여러 주요 AI 플랫폼과 긴밀하게 통합됩니다.

  • Weights & Biases: 실험 추적 및 시각화
  • Comet ML: 실험 관리 및 모니터링
  • Roboflow: 데이터 주석 및 관리
  • Intel OpenVINO: 모델 최적화 및 배포
  • Neural Magic: 모델 희소화 및 가속화
  • Ultralytics HUB: 원스톱 훈련 및 배포 플랫폼

커뮤니티 및 지원

요약

YOLOv5는 객체 감지 분야의 중요한 이정표로서 뛰어난 성능, 사용 편의성 및 풍부한 기능을 통해 학술 연구 및 산업 응용 분야에서 선호하는 프레임워크가 되었습니다. 초보자이든 전문 개발자이든 YOLOv5 생태계에서 적합한 솔루션을 찾을 수 있습니다.

Star History Chart