Spaces:
Sleeping
A newer version of the Gradio SDK is available:
5.26.0
中文 | 한국어 | 日本語 | Русский | Deutsch | Français | Español | Português | Türkçe | Tiếng Việt | العربية
Ultralytics YOLOv5 🚀 是由 Ultralytics 开发的尖端、达到业界顶尖水平(SOTA)的计算机视觉模型。基于 PyTorch 框架,YOLOv5 以其易用性、速度和准确性而闻名。它融合了广泛研究和开发的见解与最佳实践,使其成为各种视觉 AI 任务的热门选择,包括目标检测、图像分割和图像分类。
我们希望这里的资源能帮助您充分利用 YOLOv5。请浏览 YOLOv5 文档获取详细信息,在 GitHub 上提出 issue 以获得支持,并加入我们的 Discord 社区进行提问和讨论!
如需申请企业许可证,请填写 Ultralytics 授权许可 表格。
🚀 YOLO11:下一代进化
我们激动地宣布推出 Ultralytics YOLO11 🚀,这是我们业界顶尖(SOTA)视觉模型的最新进展!YOLO11 现已在 Ultralytics YOLO GitHub 仓库发布,它继承了我们速度快、精度高和易于使用的传统。无论您是处理目标检测、实例分割、姿态估计、图像分类还是旋转目标检测 (OBB),YOLO11 都能提供在多样化应用中脱颖而出所需的性能和多功能性。
立即开始,释放 YOLO11 的全部潜力!访问 Ultralytics 文档获取全面的指南和资源:
# 安装 ultralytics 包
pip install ultralytics
📚 文档
请参阅 YOLOv5 文档,了解有关训练、测试和部署的完整文档。请参阅下方的快速入门示例。
安装
克隆仓库并在 Python>=3.8.0 环境中安装依赖项。确保您已安装 PyTorch>=1.8。
# 克隆 YOLOv5 仓库
git clone https://github.com/ultralytics/yolov5
# 导航到克隆的目录
cd yolov5
# 安装所需的包
pip install -r requirements.txt
使用 PyTorch Hub 进行推理
通过 PyTorch Hub 使用 YOLOv5 进行推理。模型 会自动从最新的 YOLOv5 发布版本下载。
import torch
# 加载 YOLOv5 模型(选项:yolov5n, yolov5s, yolov5m, yolov5l, yolov5x)
model = torch.hub.load("ultralytics/yolov5", "yolov5s") # 默认:yolov5s
# 定义输入图像源(URL、本地文件、PIL 图像、OpenCV 帧、numpy 数组或列表)
img = "https://ultralytics.com/images/zidane.jpg" # 示例图像
# 执行推理(自动处理批处理、调整大小、归一化)
results = model(img)
# 处理结果(选项:.print(), .show(), .save(), .crop(), .pandas())
results.print() # 将结果打印到控制台
results.show() # 在窗口中显示结果
results.save() # 将结果保存到 runs/detect/exp
使用 detect.py 进行推理
detect.py
脚本在各种来源上运行推理。它会自动从最新的 YOLOv5 发布版本下载模型,并将结果保存到 runs/detect
目录。
# 使用网络摄像头运行推理
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 screen
# 对图像目录运行推理
python detect.py --weights yolov5s.pt --source path/to/images/
# 对列出图像路径的文本文件运行推理
python detect.py --weights yolov5s.pt --source list.txt
# 对列出流 URL 的文本文件运行推理
python detect.py --weights yolov5s.pt --source list.streams
# 使用 glob 模式对图像运行推理
python detect.py --weights yolov5s.pt --source 'path/to/*.jpg'
# 对 YouTube 视频 URL 运行推理
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4'
# 对 RTSP、RTMP 或 HTTP 流运行推理
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4'
训练
以下命令演示了如何复现 YOLOv5 在 COCO 数据集上的结果。模型和数据集都会自动从最新的 YOLOv5 发布版本下载。YOLOv5n/s/m/l/x 的训练时间在单个 NVIDIA V100 GPU 上大约需要 1/2/4/6/8 天。使用多 GPU 训练可以显著减少训练时间。请使用硬件允许的最大 --batch-size
,或使用 --batch-size -1
以启用 YOLOv5 AutoBatch。下面显示的批处理大小适用于 V100-16GB GPU。
# 在 COCO 上训练 YOLOv5n 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128
# 在 COCO 上训练 YOLOv5s 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64
# 在 COCO 上训练 YOLOv5m 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40
# 在 COCO 上训练 YOLOv5l 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24
# 在 COCO 上训练 YOLOv5x 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16

教程
- 训练自定义数据 🚀 推荐:学习如何在您自己的数据集上训练 YOLOv5。
- 获得最佳训练结果的技巧 ☘️:利用专家技巧提升模型性能。
- **多 GPU 训练**:使用多个 GPU 加速训练。
- PyTorch Hub 集成 🌟 新增:使用 PyTorch Hub 轻松加载模型。
- 模型导出 (TFLite, ONNX, CoreML, TensorRT) 🚀:将您的模型转换为各种部署格式,如 ONNX 或 TensorRT。
- NVIDIA Jetson 部署 🌟 新增:在 NVIDIA Jetson 设备上部署 YOLOv5。
- **测试时增强 (TTA)**:使用 TTA 提高预测准确性。
- **模型集成**:组合多个模型以获得更好的性能。
- **模型剪枝/稀疏化**:优化模型的大小和速度。
- **超参数进化**:自动找到最佳训练超参数。
- **使用冻结层的迁移学习**:使用迁移学习高效地将预训练模型应用于新任务。
- 架构摘要 🌟 新增:了解 YOLOv5 模型架构。
- Ultralytics HUB 训练 🚀 推荐:使用 Ultralytics HUB 训练和部署 YOLO 模型。
- **ClearML 日志记录**:与 ClearML 集成以进行实验跟踪。
- **Neural Magic DeepSparse 集成**:使用 DeepSparse 加速推理。
- Comet 日志记录 🌟 新增:使用 Comet ML 记录实验。
🧩 集成
我们与领先 AI 平台的关键集成扩展了 Ultralytics 产品的功能,增强了诸如数据集标注、训练、可视化和模型管理等任务。了解 Ultralytics 如何与 Weights & Biases、Comet ML、Roboflow 和 Intel OpenVINO 等合作伙伴协作,优化您的 AI 工作流程。在 Ultralytics 集成 探索更多信息。

Ultralytics HUB 🌟 | Weights & Biases | Comet | Neural Magic |
---|---|---|---|
简化 YOLO 工作流程:使用 Ultralytics HUB 轻松标注、训练和部署。立即试用! | 使用 Weights & Biases 跟踪实验、超参数和结果。 | 永久免费的 Comet ML 让您保存 YOLO 模型、恢复训练并交互式地可视化预测。 | 使用 Neural Magic DeepSparse 将 YOLO 推理速度提高多达 6 倍。 |
⭐ Ultralytics HUB
通过 Ultralytics HUB ⭐ 体验无缝的 AI 开发,这是构建、训练和部署计算机视觉模型的终极平台。可视化数据集,训练 YOLOv5 和 YOLOv8 🚀 模型,并将它们部署到实际应用中,无需编写任何代码。使用我们尖端的工具和用户友好的 Ultralytics App 将图像转化为可操作的见解。今天就免费开始您的旅程吧!

🤔 为何选择 YOLOv5?
YOLOv5 的设计旨在简单易用。我们优先考虑实际性能和可访问性。
YOLOv5-P5 640 图表
图表说明
- COCO AP val 表示在 交并比 (IoU) 阈值从 0.5 到 0.95 范围内的平均精度均值 (mAP),在包含 5000 张图像的 COCO val2017 数据集上,使用各种推理尺寸(256 到 1536 像素)测量得出。
- GPU Speed 使用批处理大小为 32 的 AWS p3.2xlarge V100 实例,测量在 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
预训练权重
此表显示了在 COCO 数据集上训练的各种 YOLOv5 模型的性能指标。
模型 | 尺寸 (像素) |
mAPval 50-95 |
mAPval 50 |
速度 CPU b1 (毫秒) |
速度 V100 b1 (毫秒) |
速度 V100 b32 (毫秒) |
参数 (M) |
FLOPs @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 个周期。Nano (n) 和 Small (s) 模型使用 hyp.scratch-low.yaml 超参数,而 Medium (m)、Large (l) 和 Extra-Large (x) 模型使用 hyp.scratch-high.yaml。
- mAPval 值表示在 COCO val2017 数据集上的单模型、单尺度性能。
复现请使用:python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
- 速度指标是在 AWS p3.2xlarge V100 实例上对 COCO val 图像进行平均测量的。不包括非极大值抑制 (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 版本 引入了实例分割模型,达到了业界顶尖的性能。这些模型设计用于轻松训练、验证和部署。有关完整详细信息,请参阅发布说明,并探索 YOLOv5 分割 Colab 笔记本以获取快速入门示例。
分割预训练权重
YOLOv5 分割模型在 COCO 数据集上使用 A100 GPU 以 640 像素的图像大小训练了 300 个周期。模型导出为 ONNX FP32 用于 CPU 速度测试,导出为 TensorRT FP16 用于 GPU 速度测试。所有速度测试均在 Google Colab Pro 笔记本上进行,以确保可复现性。
模型 | 尺寸 (像素) |
mAPbox 50-95 |
mAPmask 50-95 |
训练时间 300 周期 A100 (小时) |
速度 ONNX CPU (毫秒) |
速度 TRT A100 (毫秒) |
参数 (M) |
FLOPs @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 (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 优化器,
lr0=0.01
和weight_decay=5e-5
,在 640 像素的图像大小下,使用默认设置训练了 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 约增加 1 毫秒/图像)。
复现请使用:python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- 导出到 ONNX (FP32) 和 TensorRT (FP16) 是使用
export.py
完成的。
复现请使用: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):
# 下载 COCO 验证分割集 (780MB, 5000 张图像)
bash data/scripts/get_coco.sh --val --segments
# 验证模型
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
# 从 PyTorch Hub 加载模型(注意:推理支持可能有所不同)
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5m-seg.pt")
导出
将 YOLOv5s-seg 模型导出为 ONNX 和 TensorRT 格式:
# 导出模型
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0
🏷️ 分类
YOLOv5 v6.2 版本 引入了对图像分类模型训练、验证和部署的支持。请查看发布说明了解详细信息,并参阅 YOLOv5 分类 Colab 笔记本获取快速入门指南。
分类预训练权重
YOLOv5-cls 分类模型在 ImageNet 上使用 4xA100 实例训练了 90 个周期。ResNet 和 EfficientNet 模型在相同设置下一起训练以进行比较。模型导出为 ONNX FP32(用于 CPU 速度测试)和 TensorRT FP16(用于 GPU 速度测试)。所有速度测试均在 Google Colab Pro 上运行,以确保可复现性。
模型 | 尺寸 (像素) |
准确率 top1 |
准确率 top5 |
训练 90 周期 4xA100 (小时) |
速度 ONNX CPU (毫秒) |
速度 TensorRT V100 (毫秒) |
参数 (M) |
FLOPs @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 优化器,
lr0=0.001
和weight_decay=5e-5
,在 224 像素的图像大小下,使用默认设置训练了 90 个周期。
训练运行记录在 https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2。 - 准确度值(top-1 和 top-5)表示在 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
- 导出到 ONNX (FP32) 和 TensorRT (FP16) 是使用
export.py
完成的。
复现请使用: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 上训练。
# 使用 CIFAR-100 数据集在单个 GPU 上训练
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128
# 在 ImageNet 数据集上使用多 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 模型的准确性:
# 下载 ImageNet 验证集 (6.3GB, 50,000 张图像)
bash data/scripts/get_imagenet.sh --val
# 验证模型
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
# 从 PyTorch Hub 加载模型
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt")
导出
将训练好的 YOLOv5s-cls、ResNet50 和 EfficientNet_b0 模型导出为 ONNX 和 TensorRT 格式:
# 导出模型
python export.py --weights yolov5s-cls.pt resnet50.pt efficientnet_b0.pt --include onnx engine --img 224
☁️ 环境
使用我们预配置的环境快速开始。点击下面的图标查看设置详情。
🤝 贡献
我们欢迎您的贡献!让 YOLOv5 变得易于访问和有效是社区的共同努力。请参阅我们的贡献指南开始。通过 YOLOv5 调查分享您的反馈。感谢所有为使 YOLOv5 变得更好而做出贡献的人!
📜 许可证
Ultralytics 提供两种许可选项以满足不同需求:
- AGPL-3.0 许可证:一种 OSI 批准的开源许可证,非常适合学术研究、个人项目和测试。它促进开放协作和知识共享。详情请参阅 LICENSE 文件。
- 企业许可证:专为商业应用量身定制,此许可证允许将 Ultralytics 软件和 AI 模型无缝集成到商业产品和服务中,绕过 AGPL-3.0 的开源要求。对于商业用例,请通过 Ultralytics 授权许可联系我们。
📧 联系
对于与 YOLOv5 相关的错误报告和功能请求,请访问 GitHub Issues。对于一般问题、讨论和社区支持,请加入我们的 Discord 服务器!