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 데이터 세트에서의 성능:
# 저장소 복제
git clone https://github.com/ultralytics/yolov5
cd yolov5
# 종속성 설치
pip install -r requirements.txt
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 분산 훈련 사용
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
반사 및 스케일 증강을 통해 예측 정확도 향상:
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 플랫폼과 긴밀하게 통합됩니다.
YOLOv5는 객체 감지 분야의 중요한 이정표로서 뛰어난 성능, 사용 편의성 및 풍부한 기능을 통해 학술 연구 및 산업 응용 분야에서 선호하는 프레임워크가 되었습니다. 초보자이든 전문 개발자이든 YOLOv5 생태계에서 적합한 솔루션을 찾을 수 있습니다.