模型概述
模型特點
模型能力
使用案例
🚀 YOLOv5
YOLOv5 🚀 是全球最受歡迎的視覺人工智能項目,代表了Ultralytics對未來視覺AI方法的開源研究成果。它融合了數千小時研發過程中積累的經驗和最佳實踐。我們希望這裡的資源能幫助你充分發揮YOLOv5的潛力。你可以查看 YOLOv5文檔 瞭解詳細信息,在 GitHub 上提出問題以獲取支持,還可以加入我們的 Discord 社區進行交流討論!如需企業許可證,請填寫 Ultralytics許可證申請 表單。
中文 | 한국어 | 日本語 | Русский | Deutsch | Français | Español | Português | Türkçe | Tiếng Việt | العربية
🚀 快速開始
YOLO11 🚀 新品發佈
我們很高興地宣佈Ultralytics YOLO11 🚀 正式發佈,這是我們最先進的視覺模型的最新成果!現在可以在 GitHub 上獲取。YOLO11繼承了我們在速度、精度和易用性方面的傳統優勢。無論你是進行目標檢測、圖像分割還是圖像分類,YOLO11都能在各種應用場景中展現出色的性能和多功能性。立即開始使用,釋放YOLO11的全部潛力!訪問 Ultralytics文檔 獲取全面的指南和資源:
pip install ultralytics
文檔
請查看 YOLOv5文檔 以獲取關於訓練、測試和部署的完整文檔。以下是快速入門示例。
安裝
克隆倉庫並在 Python>=3.8.0 環境中安裝 requirements.txt,包括 PyTorch>=1.8。
git clone https://github.com/ultralytics/yolov5 # 克隆倉庫
cd yolov5
pip install -r requirements.txt # 安裝依賴
推理
使用YOLOv5的 PyTorch Hub 進行推理。模型 會自動從最新的YOLOv5 版本 下載。
import torch
# 模型
model = torch.hub.load("ultralytics/yolov5", "yolov5s") # 或者選擇 yolov5n - yolov5x6,也支持自定義模型
# 圖像
img = "https://ultralytics.com/images/zidane.jpg" # 也可以是文件、路徑、PIL、OpenCV、numpy數組或列表
# 推理
results = model(img)
# 結果
results.print() # 或者使用 .show()、.save()、.crop()、.pandas() 等方法
使用 detect.py 進行推理
detect.py
可以對多種數據源進行推理,會自動從最新的YOLOv5 版本 下載 模型 並將結果保存到 runs/detect
目錄。
python detect.py --weights yolov5s.pt --source 0 # 網絡攝像頭
img.jpg # 圖像
vid.mp4 # 視頻
screen # 屏幕截圖
path/ # 目錄
list.txt # 圖像列表
list.streams # 流列表
'path/*.jpg' # 通配符
'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
,或者傳遞 --batch-size -1
以使用YOLOv5的 AutoBatch 功能。以下是V100-16GB的批量大小示例。
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128
yolov5s 64
yolov5m 40
yolov5l 24
yolov5x 16

教程
- 訓練自定義數據 🚀 推薦
- 獲得最佳訓練結果的提示 ☘️
- 多GPU訓練
- PyTorch Hub 🌟 新功能
- TFLite、ONNX、CoreML、TensorRT 導出 🚀
- NVIDIA Jetson 平臺部署 🌟 新功能
- 測試時數據增強 (TTA)
- 模型集成
- 模型剪枝/稀疏化
- 超參數進化
- 凍結層的遷移學習
- 架構概述 🌟 新功能
- 使用Ultralytics HUB訓練和部署YOLO 🚀 推薦
- ClearML 日誌記錄
- 結合Neural Magic的Deepsparse使用YOLOv5
- Comet 日誌記錄 🌟 新功能
✨ 主要特性
集成
我們與領先的AI平臺進行了關鍵集成,擴展了Ultralytics產品的功能,增強了數據集標註、訓練、可視化和模型管理等任務的能力。瞭解Ultralytics如何與 W&B、Comet、Roboflow 和 OpenVINO 合作,優化你的AI工作流程。

Ultralytics HUB 🚀 | W&B | Comet ⭐ 新品 | Neural Magic |
---|---|---|---|
使用 Ultralytics HUB 簡化YOLO工作流程:輕鬆進行標註、訓練和部署。立即試用! | 使用 Weights & Biases 跟蹤實驗、超參數和結果 | 永久免費的 Comet 讓你可以保存YOLOv5模型、恢復訓練,並交互式地可視化和調試預測結果 | 使用 Neural Magic DeepSparse 可使YOLO11推理速度提高6倍 |
Ultralytics HUB
通過 Ultralytics HUB ⭐ 體驗無縫的AI之旅,這是一個一站式解決方案,無需編碼即可進行數據可視化、YOLOv5和YOLOv8 🚀 模型的訓練和部署。使用我們先進的平臺和用戶友好的 Ultralytics應用,將圖像轉化為可操作的見解,輕鬆實現你的AI願景。現在就免費開始你的旅程!

為什麼選擇YOLOv5
YOLOv5的設計初衷是讓用戶輕鬆上手,易於學習。我們更注重在現實世界中的應用效果。
YOLOv5-P5 640 圖表
圖表說明
- COCO AP val 表示在 COCO val2017 數據集的5000張圖像上,在256到1536的不同推理尺寸下測量的mAP@0.5:0.95指標。
- GPU速度 表示在 COCO val2017 數據集上,使用 AWS p3.2xlarge V100實例,批量大小為32時每張圖像的平均推理時間。
- 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
復現結果。
預訓練模型
模型 | 尺寸 (像素) |
mAP驗證集 50-95 |
mAP驗證集 50 |
速度 CPU 批量1 (毫秒) |
速度 V100 批量1 (毫秒) |
速度 V100 批量32 (毫秒) |
參數 (M) |
浮點運算次數 @640 (B) |
---|---|---|---|---|---|---|---|---|
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 超參數,其他模型使用 hyp.scratch-high.yaml。
- mAPval 值是在 COCO val2017 數據集上的單模型單尺度結果。可通過
python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
復現。 - 速度 是在 AWS p3.2xlarge 實例上對COCO驗證集圖像的平均推理時間,不包括NMS時間(約1毫秒/圖像)。可通過
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個epoch。我們將所有模型導出為ONNX FP32進行CPU速度測試,導出為TensorRT FP16進行GPU速度測試。為了便於復現,所有速度測試都在Google Colab Pro 筆記本上進行。
模型 | 尺寸 (像素) |
mAP邊界框 50-95 |
mAP掩碼 50-95 |
訓練時間 300個epoch A100 (小時) |
速度 ONNX CPU (毫秒) |
速度 TRT A100 (毫秒) |
參數 (M) |
浮點運算次數 @640 (B) |
---|---|---|---|---|---|---|---|---|
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 (2倍) | 857.4 | 2.9 | 47.9 | 147.7 |
YOLOv5x-seg | 640 | 50.7 | 41.4 | 62:56 (3倍) | 1579.2 | 4.5 | 88.8 | 265.7 |
- 所有預訓練模型均使用SGD優化器,在圖像尺寸為640的情況下,以
lr0=0.01
和weight_decay=5e-5
的默認設置訓練300個epoch。訓練記錄可查看 https://wandb.ai/glenn-jocher/YOLOv5_v70_official。 - 準確率 值是在COCO數據集上的單模型單尺度結果。可通過
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
復現。 - 速度 是在Google Colab Pro A100高內存實例上對100張推理圖像的平均推理時間,僅表示推理速度(NMS每張圖像約增加1毫秒)。可通過
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
復現。 - 使用
export.py
將模型導出為ONNX FP32和TensorRT FP16。可通過python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
復現。
分割使用示例 
訓練
YOLOv5分割訓練支持使用 --data coco128-seg.yaml
參數自動下載COCO128-seg分割數據集,也支持手動下載COCO-segments數據集,使用 bash data/scripts/get_coco.sh --train --val --segments
下載數據,然後使用 python train.py --data coco.yaml
進行訓練。
# 單GPU訓練
python segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640
# 多GPU DDP訓練
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/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驗證集的分割數據 (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 engine --img 640 --device 0
分類
在 YOLOv5 v6.2版本 中,我們增加了對分類模型訓練、驗證和部署的支持!查看 發佈說明 獲取詳細信息,訪問 YOLOv5分類Colab筆記本 進行快速入門教程。
分類預訓練模型
我們使用4個A100實例在ImageNet數據集上對YOLOv5-cls分類模型進行了90個epoch的訓練,並使用相同的默認訓練設置同時訓練了ResNet和EfficientNet模型進行比較。我們將所有模型導出為ONNX FP32進行CPU速度測試,導出為TensorRT FP16進行GPU速度測試。為了便於復現,所有速度測試都在Google Colab Pro 上進行。
模型 | 尺寸 (像素) |
準確率 top1 |
準確率 top5 |
訓練時間 90個epoch 4xA100 (小時) |
速度 ONNX CPU (毫秒) |
速度 TensorRT V100 (毫秒) |
參數 (M) |
浮點運算次數 @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 |
表格說明 (點擊展開)
- 所有預訓練模型均使用SGD優化器,在圖像尺寸為224的情況下,以
lr0=0.001
和weight_decay=5e-5
的默認設置訓練90個epoch。訓練記錄可查看 https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2。 - 準確率 值是在 ImageNet-1k 數據集上的單模型單尺度結果。可通過
python classify/val.py --data ../datasets/imagenet --img 224
復現。 - 速度 是在Google Colab Pro V100高內存實例上對100張推理圖像的平均推理時間。可通過
python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
復現。 - 使用
export.py
將模型導出為ONNX FP32和TensorRT FP16。可通過python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
復現。
分類使用示例 
訓練
YOLOv5分類訓練支持使用 --data
參數自動下載MNIST、Fashion-MNIST、CIFAR10、CIFAR100、Imagenette、Imagewoof和ImageNet數據集。例如,使用 --data mnist
開始在MNIST數據集上訓練。
# 單GPU訓練
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128
# 多GPU DDP訓練
python -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驗證集 (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 efficientnet_b0.pt --include onnx engine --img 224
環境
使用我們經過驗證的環境,你可以在幾秒鐘內開始使用。點擊下面的圖標獲取詳細信息。
貢獻
我們歡迎你的參與!我們致力於讓貢獻YOLOv5變得簡單透明。請查看 貢獻指南 開始你的貢獻之旅,並填寫 YOLOv5調查問卷 給我們反饋你的使用體驗。感謝所有貢獻者!

📄 許可證
Ultralytics提供兩種許可選項,以滿足不同的使用場景:
- AGPL-3.0許可證:這是一種 OSI批准 的開源許可證,非常適合學生和愛好者,促進開放協作和知識共享。查看 LICENSE 文件獲取更多詳細信息。
- 企業許可證:專為商業用途設計,該許可證允許將Ultralytics的軟件和AI模型無縫集成到商業產品和服務中,無需遵循AGPL-3.0的開源要求。如果你的場景涉及將我們的解決方案嵌入到商業產品中,請通過 Ultralytics許可證申請 與我們聯繫。
📞 聯繫我們
如果你有YOLOv5的問題報告或功能請求,請訪問 GitHub Issues,並加入我們的 Discord 社區進行交流討論!











