模型简介
模型特点
模型能力
使用案例
🚀 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 社区进行交流讨论!











