중국어 | 영어 | 일본어 | 러시아어 | 독일어 | 프랑세즈 | 스페인어 | 포르투갈어 | 터키어 | 베트남 | 아랍어
YOLOv5 ? 수천 시간의 연구 개발을 통해 발전한 모범 사례와 교훈을 통합하여 미래 비전 AI 방법에 대한 Ultralytics 오픈 소스 연구를 대표하는 세계에서 가장 사랑받는 비전 AI입니다.
여기에 있는 리소스가 YOLOv5를 최대한 활용하는 데 도움이 되기를 바랍니다. 자세한 내용은 YOLOv5 Docs를 찾아보고, 지원을 위해 GitHub에 문제를 제기하고, Discord 커뮤니티에 참여하여 질문과 토론을 해보세요!
기업 라이센스를 요청하려면 Ultralytics Licensing에서 양식을 작성하십시오.
욜로11? 새로운
최첨단(SOTA) 비전 모델의 최신 발전인 Ultralytics YOLO11 ™ 출시를 공개하게 되어 기쁘게 생각합니다! 현재 GitHub 에서 사용할 수 있는 YOLO11은 속도, 정확성 및 사용 편의성이라는 유산을 기반으로 구축되었습니다. 물체 감지, 이미지 분할 또는 이미지 분류 등 무엇을 처리하든 YOLO11은 다양한 애플리케이션에서 탁월한 성능과 다양성을 제공합니다.
지금 시작하여 YOLO11의 잠재력을 최대한 활용해보세요! 포괄적인 가이드와 리소스를 보려면 Ultralytics Docs를 방문하세요.
pip 설치 울트라리틱스
선적 서류 비치
훈련, 테스트 및 배포에 대한 전체 문서는 YOLOv5 Docs를 참조하세요. 빠른 시작 예시는 아래를 참조하세요.
PyTorch>=1.8 을 포함하여 Python>=3.8.0 환경에 Repo를 복제하고 요구사항.txt를 설치합니다.
자식 클론 https://github.com/ultralytics/yolov5 # clonecd yolov5 pip install -r 요구사항.txt # 설치
YOLOv5 PyTorch 허브 추론. 모델은 최신 YOLOv5 릴리스에서 자동으로 다운로드됩니다.
import torch# Modelmodel = torch.hub.load("ultralytics/yolov5", "yolov5s") # 또는 yolov5n - yolov5x6, custom# Imagesimg = "https://ultralytics.com/images/zidane.jpg" # 또는 파일, Path, PIL, OpenCV, numpy, list# Inferenceresults = model(img)# Resultsresults.print() # 또는 .show(), .save(), .crop(), .pandas() 등
detect.py
다양한 소스에서 추론을 실행하여 최신 YOLOv5 릴리스에서 자동으로 모델을 다운로드하고 결과를 runs/detect
에 저장합니다.
python detector.py --weights yolov5s.pt --source 0 # 웹캠 img.jpg # 이미지 vid.mp4 # 비디오 화면 # 스크린샷 경로/ # 디렉토리 list.txt # 이미지 목록 list.streams # 스트림 목록 'path/*.jpg' # glob 'https://youtu.be/LNwODJXcvt4' # YouTube 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP 스트림
아래 명령은 YOLOv5 COCO 결과를 재현합니다. 모델과 데이터 세트는 최신 YOLOv5 릴리스에서 자동으로 다운로드됩니다. YOLOv5n/s/m/l/x의 훈련 시간은 V100 GPU에서 1/2/4/6/8일입니다(다중 GPU 배 더 빠름). 가능한 가장 큰 --batch-size
사용하거나 YOLOv5 AutoBatch의 경우 --batch-size -1
전달하세요. V100-16GB에 대한 배치 크기가 표시됩니다.
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128 yolov5s 64 yolov5분 40 yolov5l 24 yolov5x 16
사용자 정의 데이터를 훈련시키시겠습니까? 추천
최고의 훈련 결과를 위한 팁 ☘️
다중 GPU 훈련
파이토치 허브? 새로운
TFLite, ONNX, CoreML, TensorRT 내보내기 ?
NVIDIA Jetson 플랫폼 배포? 새로운
테스트 시간 확대(TTA)
모델 앙상블
모델 가지치기/희소성
하이퍼파라미터의 진화
고정 레이어를 사용한 전이 학습
아키텍처 요약? 새로운
YOLO를 교육하고 배포하기 위한 Ultralytics 허브? 추천
ClearML 로깅
Neural Magic의 Deepsparse를 사용한 YOLOv5
혜성 로깅? 새로운
통합
선도적인 AI 플랫폼과의 주요 통합은 Ultralytics 제품의 기능을 확장하여 데이터 세트 라벨링, 훈련, 시각화 및 모델 관리와 같은 작업을 향상시킵니다. Ultralytics가 W&B, Comet, Roboflow 및 OpenVINO와 협력하여 어떻게 AI 워크플로우를 최적화할 수 있는지 알아보세요.
Ultralytics 허브 ? | W&B | 혜성 ⭐ NEW | 신경마법 |
---|---|---|---|
YOLO 워크플로우 간소화: Ultralytics HUB를 사용하여 손쉽게 라벨링, 교육 및 배포하세요. 지금 시도해보세요! | 가중치 및 편향을 사용하여 실험, 초매개변수 및 결과를 추적합니다. | 영원히 무료인 Comet을 사용하면 YOLOv5 모델을 저장하고 훈련을 재개하며 예측을 대화형으로 시각화 및 디버그할 수 있습니다. | Neural Magic DeepSparse를 사용하여 YOLO11 추론을 최대 6배 더 빠르게 실행 |
Ultralytics 허브
데이터 시각화를 위한 올인원 솔루션인 Ultralytics HUB ⭐, YOLOv5 및 YOLOv8을 통해 원활한 AI를 경험해 보세요. 코딩 없이 모델 교육 및 배포가 가능합니다. 최첨단 플랫폼과 사용자 친화적인 Ultralytics 앱을 사용하여 이미지를 실행 가능한 통찰력으로 변환하고 AI 비전을 쉽게 실현하세요. 지금 무료 로 여행을 시작해보세요!
왜 YOLOv5인가?
YOLOv5는 시작하기 쉽고 배우기 쉽도록 설계되었습니다. 우리는 실제 결과를 우선시합니다.
COCO AP val은 256~1536의 다양한 추론 크기에 걸쳐 5000개 이미지 COCO val2017 데이터 세트에서 측정된 [email protected]:0.95 측정항목을 나타냅니다.
GPU 속도는 배치 크기 32에서 AWS p3.2xlarge V100 인스턴스를 사용하여 COCO val2017 데이터세트에서 이미지당 평균 추론 시간을 측정합니다.
배치 크기 8에서 google/automl의 EfficientDet 데이터입니다.
Python으로 재현 python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
모델 | 크기 (픽셀) | 지도 값 50-95 | 지도 값 50 | 속도 CPU b1 (밀리초) | 속도 V100 b1 (밀리초) | 속도 V100 b32 (밀리초) | 매개변수 (중) | FLOP @640(B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 45.7 | 45 | 6.3 | 0.6 | 1.9 | 4.5 |
YOLOv5 | 640 | 37.4 | 56.8 | 98 | 6.4 | 0.9 | 7.2 | 16.5 |
YOLOv5m | 640 | 45.4 | 64.1 | 224 | 8.2 | 1.7 | 21.2 | 49.0 |
YOLOv5l | 640 | 49.0 | 67.3 | 430 | 10.1 | 2.7 | 46.5 | 109.1 |
YOLOv5x | 640 | 50.7 | 68.9 | 766 | 12.1 | 4.8 | 86.7 | 205.7 |
YOLOv5n6 | 1280 | 36.0 | 54.4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 |
YOLOv5s6 | 1280 | 44.8 | 63.7 | 385 | 8.2 | 3.6 | 12.6 | 16.8 |
YOLOv5m6 | 1280 | 51.3 | 69.3 | 887 | 11.1 | 6.8 | 35.7 | 50.0 |
YOLOv5l6 | 1280 | 53.7 | 71.3 | 1784년 | 15.8 | 10.5 | 76.8 | 111.4 |
YOLOv5x6 + TTA | 1280 1536년 | 55.0 55.8 | 72.7 72.7 | 3136 - | 26.2 - | 19.4 - | 140.7 - | 209.8 - |
모든 체크포인트는 기본 설정을 사용하여 300세대까지 학습됩니다. Nano 및 Small 모델은 hip.scratch-low.yaml hips를 사용하고, 다른 모든 모델은 hip.scratch-high.yaml을 사용합니다.
mAP val 값은 COCO val2017 데이터 세트의 단일 모델 단일 규모에 대한 것입니다.
python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
AWS p3.2xlarge 인스턴스를 사용하여 COCO Val 이미지에 대한 평균 속도 입니다. NMS 시간(~1ms/img)은 포함되지 않습니다.
python val.py --data coco.yaml --img 640 --task speed --batch 1
로 재현
TTA 테스트 시간 확대에는 반사 및 규모 확대가 포함됩니다.
python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
로 재현
분할
새로운 YOLOv5 릴리스 v7.0 인스턴스 분할 모델은 세계에서 가장 빠르고 정확하며 현재의 모든 SOTA 벤치마크를 능가합니다. 우리는 훈련, 검증, 배포가 매우 간단하도록 만들었습니다. 릴리스 노트에서 자세한 내용을 확인하고 빠른 시작 튜토리얼을 보려면 YOLOv5 Segmentation Colab Notebook을 방문하세요.
우리는 A100 GPU를 사용하여 이미지 크기 640에서 300세대 동안 COCO에서 YOLOv5 분할 모델을 훈련했습니다. CPU 속도 테스트를 위해 모든 모델을 ONNX FP32로, GPU 속도 테스트를 위해 TensorRT FP16으로 내보냈습니다. 쉬운 재현성을 위해 Google Colab Pro 노트북에서 모든 속도 테스트를 실행했습니다.
모델 | 크기 (픽셀) | 지도 상자 50-95 | 지도 마스크 50-95 | 열차 시간 300 에포크 A100 (시간) | 속도 ONNX CPU (밀리초) | 속도 TRT A100 (밀리초) | 매개변수 (중) | FLOP @640(B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-세그 | 640 | 27.6 | 23.4 | 80:17 | 62.7 | 1.2 | 2.0 | 7.1 |
YOLOv5s-세그 | 640 | 37.6 | 31.7 | 88:16 | 173.3 | 1.4 | 7.6 | 26.4 |
YOLOv5m-세그 | 640 | 45.0 | 37.1 | 108:36 | 427.0 | 2.2 | 22.0 | 70.8 |
YOLOv5l-세그 | 640 | 49.0 | 39.9 | 66:43 (2x) | 857.4 | 2.9 | 47.9 | 147.7 |
YOLOv5x-세그 | 640 | 50.7 | 41.4 | 62:56 (3x) | 1579.2 | 4.5 | 88.8 | 265.7 |
모든 체크포인트는 이미지 크기 640 및 모든 기본 설정에서 lr0=0.01
및 weight_decay=5e-5
인 SGD 최적화 프로그램을 사용하여 300세대까지 훈련됩니다.
실행은 https://wandb.ai/glenn-jocher/YOLOv5_v70_official에 기록됩니다.
정확도 값은 COCO 데이터 세트의 단일 모델 단일 규모에 대한 것입니다.
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
로 재현
Colab Pro A100 High-RAM 인스턴스를 사용하여 평균 100개 이상의 추론 이미지 속도 를 측정했습니다. 값은 추론 속도만 나타냅니다(NMS는 이미지당 약 1ms를 추가합니다).
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
로 재현
FP32에서는 ONNX로 내보내고 FP16에서는 TensorRT로 export.py
수행했습니다.
python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
YOLOv5 분할 훈련은 --data coco128-seg.yaml
인수를 사용하여 COCO128-seg 분할 데이터 세트 자동 다운로드를 지원하고 bash data/scripts/get_coco.sh --train --val --segments
사용하여 COCO 세그먼트 데이터 세트를 수동으로 다운로드한 다음 지원합니다. python train.py --data coco.yaml
.
# 단일 GPUpython 세그먼트/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640# 다중 GPU DDPpython -m torch.distributed.run --nproc_per_node 4 --master_port 1 세그먼트 /train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --device 0,1,2,3
COCO 데이터 세트에서 YOLOv5s-seg 마스크 mAP 검증:
bash data/scripts/get_coco.sh --val --segments # COCO val 세그먼트 분할 다운로드(780MB, 이미지 5000개)python 세그먼트/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # 검증
사전 학습된 YOLOv5m-seg.pt를 사용하여bus.jpg를 예측합니다.
python 세그먼트/predict.py --가중치 yolov5m-seg.pt --소스 데이터/이미지/bus.jpg
model = torch.hub.load( "ultralytics/yolov5", "custom", "yolov5m-seg.pt") # PyTorch Hub에서 로드(경고: 추론은 아직 지원되지 않음)
YOLOv5s-seg 모델을 ONNX 및 TensorRT로 내보내기:
python import.py --weights yolov5s-seg.pt --include onnx 엔진 --img 640 --device 0
분류
YOLOv5 릴리스 v6.2는 분류 모델 훈련, 검증 및 배포를 지원합니다! 릴리스 노트에서 자세한 내용을 확인하고 빠른 시작 튜토리얼을 보려면 YOLOv5 Classification Colab Notebook을 방문하세요.
우리는 4xA100 인스턴스를 사용하여 ImageNet에서 90세대 동안 YOLOv5-cls 분류 모델을 훈련했으며 비교할 동일한 기본 훈련 설정과 함께 ResNet 및 EfficientNet 모델을 훈련했습니다. CPU 속도 테스트를 위해 모든 모델을 ONNX FP32로, GPU 속도 테스트를 위해 TensorRT FP16으로 내보냈습니다. 쉬운 재현성을 위해 Google Colab Pro에서 모든 속도 테스트를 실행했습니다.
모델 | 크기 (픽셀) | 액세서리 탑1 | 액세서리 탑5 | 훈련 90시대 4xA100(시간) | 속도 ONNX CPU (밀리초) | 속도 텐서RT V100 (밀리초) | 매개변수 (중) | FLOP @224(B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-cls | 224 | 64.6 | 85.4 | 7:59 | 3.3 | 0.5 | 2.5 | 0.5 |
YOLOv5s-cls | 224 | 71.5 | 90.2 | 8:09 | 6.6 | 0.6 | 5.4 | 1.4 |
YOLOv5m-cls | 224 | 75.9 | 92.9 | 10:06 | 15.5 | 0.9 | 12.9 | 3.9 |
YOLOv5l-cls | 224 | 78.0 | 94.0 | 11:56 | 26.9 | 1.4 | 26.5 | 8.5 |
YOLOv5x-cls | 224 | 79.0 | 94.4 | 15:04 | 54.3 | 1.8 | 48.1 | 15.9 |
ResNet18 | 224 | 70.3 | 89.5 | 6:47 | 11.2 | 0.5 | 11.7 | 3.7 |
ResNet34 | 224 | 73.9 | 91.8 | 8:33 | 20.6 | 0.9 | 21.8 | 7.4 |
ResNet50 | 224 | 76.8 | 93.4 | 11:10 | 23.4 | 1.0 | 25.6 | 8.5 |
ResNet101 | 224 | 78.5 | 94.3 | 17:10 | 42.1 | 1.9 | 44.5 | 15.9 |
EfficientNet_b0 | 224 | 75.1 | 92.4 | 13:03 | 12.5 | 1.3 | 5.3 | 1.0 |
EfficientNet_b1 | 224 | 76.4 | 93.2 | 17:04 | 14.9 | 1.6 | 7.8 | 1.5 |
EfficientNet_b2 | 224 | 76.6 | 93.4 | 17:10 | 15.9 | 1.6 | 9.1 | 1.7 |
EfficientNet_b3 | 224 | 77.7 | 94.0 | 19:19 | 18.9 | 1.9 | 12.2 | 2.4 |
모든 체크포인트는 이미지 크기 224 및 모든 기본 설정에서 lr0=0.001
및 weight_decay=5e-5
인 SGD 최적화 프로그램을 사용하여 90세대로 훈련됩니다.
실행은 https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2에 기록됩니다.
정확도 값은 ImageNet-1k 데이터세트의 단일 모델 단일 스케일에 대한 것입니다.
python classify/val.py --data ../datasets/imagenet --img 224
로 재현
속도는 Google Colab Pro V100 High-RAM 인스턴스를 사용하여 100개 이상의 추론 이미지를 평균화했습니다.
python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
로 재현
FP32에서는 ONNX로 내보내고 FP16에서는 TensorRT로 export.py
수행했습니다.
python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
YOLOv5 분류 훈련은 --data
인수를 사용하여 MNIST, Fashion-MNIST, CIFAR10, CIFAR100, Imagenette, Imagewoof 및 ImageNet 데이터세트의 자동 다운로드를 지원합니다. 예를 들어 MNIST 교육을 시작하려면 --data mnist
사용하세요.
# 단일 GPUpython classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128# 다중 GPU DDPpython -m torch.distributed.run --nproc_per_node 4 - -master_port 1 classify/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3
ImageNet-1k 데이터세트에서 YOLOv5m-cls 정확도를 검증합니다.
bash data/scripts/get_imagenet.sh --val # ImageNet 다운로드 val 분할(6.3G, 50000개 이미지)python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # 검증
사전 학습된 YOLOv5s-cls.pt를 사용하여 Bus.jpg를 예측합니다.
파이썬 분류/예측.py --가중치 yolov5s-cls.pt --소스 데이터/이미지/bus.jpg
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt") # PyTorch 허브에서 로드
훈련된 YOLOv5s-cls, ResNet 및 EfficientNet 모델 그룹을 ONNX 및 TensorRT로 내보냅니다.
pythonexport.py --weights yolov5s-cls.pt resnet50.ptefficientnet_b0.pt --include onnx 엔진 --img 224
환경
검증된 환경으로 몇 초 만에 시작하세요. 자세한 내용을 보려면 아래 각 아이콘을 클릭하세요.
기여하다
우리는 귀하의 의견을 환영합니다! 우리는 YOLOv5에 최대한 쉽고 투명하게 기여하고 싶습니다. 시작하려면 기여 가이드를 참조하고 YOLOv5 설문조사를 작성하여 경험에 대한 피드백을 보내주세요. 모든 기여자들에게 감사드립니다!
특허
Ultralytics는 다양한 사용 사례를 수용할 수 있는 두 가지 라이선스 옵션을 제공합니다.
AGPL-3.0 라이선스 : 이 OSI 승인 오픈 소스 라이선스는 학생과 매니아에게 이상적이며 개방형 협업과 지식 공유를 촉진합니다. 자세한 내용은 LICENSE 파일을 참조하세요.
기업 라이선스 : 상업적 용도로 설계된 이 라이선스를 사용하면 AGPL-3.0의 오픈 소스 요구 사항을 우회하여 Ultralytics 소프트웨어와 AI 모델을 상업용 제품 및 서비스에 원활하게 통합할 수 있습니다. 귀하의 시나리오에 당사 솔루션을 상업용 제품에 포함시키는 경우 Ultralytics Licensing을 통해 문의하세요.
연락하다
YOLOv5 버그 보고서 및 기능 요청은 GitHub 문제를 방문하고 Discord 커뮤니티에 참여하여 질문과 토론을 하세요!