Home
Login

基於PyTorch的最先進即時目標檢測模型YOLOv5,支援目標檢測、圖像分割和圖像分類任務

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

YOLOv5 項目詳細介紹

項目概述

Ultralytics YOLOv5 🚀 是一個前沿的、最先進的(SOTA)電腦視覺模型,由Ultralytics開發。基於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