中文 | 한국어 | 日本語 | Русский | 俄羅斯德語 |法語 |西班牙語 |葡萄牙語 |土耳其 |越南 | Tiếng Việt |巴黎
YOLOv5?是世界上最受歡迎的視覺人工智慧,代表 Ultralytics 對未來視覺人工智慧方法的開源研究,融合了數千小時研發過程中獲得的經驗教訓和最佳實踐。
我們希望這裡的資源能幫助您充分利用 YOLOv5。請瀏覽 YOLOv5 文件以了解詳細信息,在 GitHub 上提出問題以獲得支持,並加入我們的 Discord 社區提出問題和討論!
要申請企業許可證,請填寫 Ultralytics Licensing 處的表格。
YOLO11?新的
我們很高興推出 Ultralytics YOLO11 ™,這是我們最先進 (SOTA) 視覺模型的最新進展! YOLO11 現已在GitHub上發布,它建立在我們的速度、精確度和易用性傳統之上。無論您是處理物件偵測、影像分割或影像分類,YOLO11 都能提供在各種應用中脫穎而出所需的效能和多功能性。
今天就開始釋放 YOLO11 的全部潛力!請造訪 Ultralytics 文件以取得全面的指南和資源:
pip 安裝 ultralytics
文件
有關訓練、測試和部署的完整文檔,請參閱 YOLOv5 文件。請參閱下面的快速入門範例。
在Python>=3.8.0環境(包括PyTorch>=1.8 )中複製儲存庫並安裝requirements.txt。
git 克隆 https://github.com/ultralytics/yolov5 # clonecd yolov5 pip install -r requests.txt # 安裝
YOLOv5 PyTorch Hub 推理。模型會從最新的 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 版本自動下載。在 V100 GPU 上,YOLOv5n/s/m/l/x 的訓練時間為 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 約洛夫5s 64 約洛夫5米40 約洛夫5l 24 約洛夫5x 16
訓練自訂資料?受到推崇的
獲得最佳訓練效果的秘訣☘️
多GPU訓練
PyTorch 中心?新的
TFLite、ONNX、CoreML、TensorRT 匯出?
NVIDIA Jetson 平台部署?新的
測試時間增強 (TTA)
模型集成
模型剪枝/稀疏性
超參數演化
使用凍結層進行遷移學習
架構總結 ?新的
用於訓練和部署 YOLO 的 Ultralytics HUB?受到推崇的
ClearML 日誌記錄
YOLOv5 與 Neural Magic 的 Deepsparse
彗星記錄?新的
整合
我們與領先的人工智慧平台的關鍵整合擴展了 Ultralytics 產品的功能,增強了資料集標記、培訓、視覺化和模型管理等任務。了解 Ultralytics 如何與 W&B、Comet、Roboflow 和 OpenVINO 合作優化您的 AI 工作流程。
超解集線器? | 溫布利 | 彗星 ⭐ 新 | 神經魔法 |
---|---|---|---|
簡化 YOLO 工作流程:使用 Ultralytics HUB 輕鬆標記、訓練和部署。立即嘗試! | 使用權重和偏差來追蹤實驗、超參數和結果 | Comet 永久免費,可讓您保存 YOLOv5 模型、恢復訓練以及互動式視覺化和調試預測 | 使用 Neural Magic DeepSparse 將 YOLO11 推理速度提高 6 倍 |
超解集線器
使用 Ultralytics HUB ⭐ 體驗無縫 AI,它是資料視覺化、YOLOv5 和 YOLOv8 的一體化解決方案?模型訓練和部署,無需任何編碼。使用我們的尖端平台和用戶友好的 Ultralytics 應用程序,將圖像轉化為可行的見解,並輕鬆將您的 AI 願景變為現實。立即免費開始您的旅程!
為什麼選擇YOLOv5
YOLOv5 的設計非常容易上手且易於學習。我們優先考慮現實世界的結果。
COCO AP val表示 [email protected]:0.95 指標,在 5000 張影像的 COCO val2017 資料集上測量,推理大小從 256 到 1536。
GPU 速度使用 AWS p3.2xlarge V100 執行個體(批次大小為 32)測量 COCO val2017 資料集上每個影像的平均推理時間。
EfficientDet資料來自 google/automl,批次大小為 8。
透過python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
重現
模型 | 尺寸 (像素) | 平均AP值 50-95 | 平均AP值 50 | 速度 中央處理器b1 (多發性硬化症) | 速度 V100 B1 (多發性硬化症) | 速度 V100 b32 (多發性硬化症) | 參數 (男) | 失敗次數 @640(乙) |
---|---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 45.7 | 45 | 6.3 | 0.6 | 1.9 | 4.5 |
YOLOv5s | 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 個 epoch。 Nano 和 Small 模型使用 hyp.scratch-low.yaml hyps,所有其他模型使用 hyp.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 時間(~1 ms/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 分段 Colab 筆記本以獲取快速入門教程。
我們使用 A100 GPU 在 COCO 上以影像大小 640 訓練 YOLOv5 分割模型 300 個時期。我們將所有模型匯出到 ONNX FP32 進行 CPU 速度測試,匯出到 TensorRT FP16 進行 GPU 速度測試。我們在 Google Colab Pro 筆記型電腦上執行了所有速度測試,以便輕鬆重現。
模型 | 尺寸 (像素) | 地圖框 50-95 | 地圖掩模 50-95 | 列車時間 300 個紀元 A100(小時) | 速度 ONNX CPU (多發性硬化症) | 速度 TRT A100 (多發性硬化症) | 參數 (男) | 失敗次數 @640(乙) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-seg | 640 | 27.6 | 23.4 | 80:17 | 62.7 | 1.2 | 2.0 | 7.1 |
YOLOv5s-seg | 640 | 37.6 | 31.7 | 88:16 | 173.3 | 1.4 | 7.6 | 26.4 |
YOLOv5m-seg | 640 | 45.0 | 37.1 | 108:36 | 427.0 | 2.2 | 22.0 | 70.8 |
YOLOv5l-seg | 640 | 49.0 | 39.9 | 66:43 (2x) | 857.4 | 2.9 | 47.9 | 147.7 |
YOLOv5x-seg | 640 | 50.7 | 41.4 | 62:56 (3x) | 1579.2 | 4.5 | 88.8 | 265.7 |
所有檢查點均使用 SGD 優化器在影像大小 640 和所有預設下訓練至 300 個 epoch,其中lr0=0.01
和weight_decay=5e-5
。
運行記錄到 https://wandb.ai/glenn-jocher/YOLOv5_v70_official
準確度值適用於 COCO 資料集上的單模型單尺度。
透過python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
重現
使用 Colab Pro A100 高 RAM 實例計算 100 多個推理影像的平均速度。值僅表示推理速度(NMS 每張影像增加約 1 毫秒)。
透過python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
重現
使用export.py
匯出到 FP32 的 ONNX 和 FP16 的 TensorRT。
透過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-segments資料集,則python train.py --data coco.yaml
。
# 單GPUpython segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640# 多GPU DDPpython -m torch.distributed.run --nproc_per_node 4 --master_port 1ch.distributed.run --nproc_per_node 4 --master_port 1 segment/trainseg. .py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --設備0,1,2,3
在 COCO 資料集上驗證 YOLOv5s-seg mask mAP:
bash data/scripts/get_coco.sh --val --segments # 下載COCO val 分段分割(780MB,5000 個圖像)python segment/val.py --weights yolov5s-seg.pt --data coco.yaml -- img 640 # 證實
使用預先訓練的YOLOv5m-seg.pt來預測bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg
model = torch.hub.load( "ultralytics/yolov5", "custom", "yolov5m-seg.pt") # 從 PyTorch Hub 載入(警告:尚不支援推理)
將 YOLOv5s-seg 模型匯出到 ONNX 和 TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx 引擎 --img 640 --device 0
分類
YOLOv5 版本 v6.2 帶來了對分類模型訓練、驗證和部署的支援!請參閱我們的發行說明中的完整詳細信息,並訪問我們的 YOLOv5 分類 Colab Notebook 以獲取快速入門教程。
我們使用 4xA100 實例在 ImageNet 上訓練 YOLOv5-cls 分類模型 90 個週期,並使用相同的預設訓練設定訓練 ResNet 和 EfficientNet 模型進行比較。我們將所有模型匯出到 ONNX FP32 進行 CPU 速度測試,匯出到 TensorRT FP16 進行 GPU 速度測試。我們在 Google Colab Pro 上執行了所有速度測試,以便輕鬆重現。
模型 | 尺寸 (像素) | ACC 前1名 | ACC 前5名 | 訓練 90 紀元 4xA100(小時) | 速度 ONNX CPU (多發性硬化症) | 速度 張量RT V100 (多發性硬化症) | 參數 (男) | 失敗次數 @224(乙) |
---|---|---|---|---|---|---|---|---|
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 |
殘差網路18 | 224 | 70.3 | 89.5 | 6:47 | 11.2 | 0.5 | 11.7 | 3.7 |
殘差網路34 | 224 | 73.9 | 91.8 | 8:33 | 20.6 | 0.9 | 21.8 | 7.4 |
殘網50 | 224 | 76.8 | 93.4 | 11:10 | 23.4 | 1.0 | 25.6 | 8.5 |
殘網101 | 224 | 78.5 | 94.3 | 17:10 | 42.1 | 1.9 | 44.5 | 15.9 |
高效率網路_b0 | 224 | 75.1 | 92.4 | 13:03 | 12.5 | 1.3 | 5.3 | 1.0 |
高效率網路_b1 | 224 | 76.4 | 93.2 | 17:04 | 14.9 | 1.6 | 7.8 | 1.5 |
高效率網路_b2 | 224 | 76.6 | 93.4 | 17:10 | 15.9 | 1.6 | 9.1 | 1.7 |
高效率網路_b3 | 224 | 77.7 | 94.0 | 19:19 | 18.9 | 1.9 | 12.2 | 2.4 |
所有檢查點均使用 SGD 優化器在影像大小 224 和所有預設下訓練至 90 個 epoch,其中lr0=0.001
且weight_decay=5e-5
。
運行記錄到 https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2
準確度值適用於 ImageNet-1k 資料集上的單模型單尺度。
透過python classify/val.py --data ../datasets/imagenet --img 224
重現
使用 Google Colab Pro V100 高 RAM 實例計算 100 多個推理影像的平均速度。
透過python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
重現
使用export.py
匯出到 FP32 的 ONNX 和 FP16 的 TensorRT。
透過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_nodeport 4 - -master_nodeport 1分類/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 split (6.3G, 50000 張圖片)python Classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # 證實
使用預先訓練的YOLOv5s-cls.pt來預測bus.jpg:
python Classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt") # 從 PyTorch Hub 加載
將一組經過訓練的 YOLOv5s-cls、ResNet 和 EfficientNet 模型匯出到 ONNX 和 TensorRT:
python export.py --weights yolov5s-cls.pt resnet50.pt effectivenet_b0.pt --include onnx 引擎 --img 224
環境
幾秒鐘內即可開始使用我們經過驗證的環境。點擊下面的每個圖示以了解詳細資訊。
貢獻
我們喜歡您的意見!我們希望為 YOLOv5 做出貢獻盡可能簡單和透明。請參閱我們的貢獻指南以開始使用,並填寫 YOLOv5 調查,向我們發送有關您的體驗的回饋。感謝我們所有的貢獻者!
執照
Ultralytics 提供兩種許可選項來適應不同的用例:
AGPL-3.0 授權:此 OSI 批准的開源授權非常適合學生和愛好者,促進開放協作和知識共享。有關更多詳細信息,請參閱許可證文件。
企業許可證:該許可證專為商業用途而設計,允許將 Ultralytics 軟體和人工智慧模型無縫整合到商業產品和服務中,繞過 AGPL-3.0 的開源要求。如果您的方案涉及將我們的解決方案嵌入到商業產品中,請透過 Ultralytics 授權進行聯絡。
接觸
有關 YOLOv5 錯誤報告和功能請求,請訪問 GitHub 問題,並加入我們的 Discord 社群提出問題和討論!