* Update Python example * Improve README.zh-CN.md * Auto-format by https://ultralytics.com/actions --------- Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
42 KiB
中文 | 한국어 | 日本語 | Русский | Deutsch | Français | Español | Português | Türkçe | Tiếng Việt | العربية
YOLOv5 🚀 是全球最受欢迎的视觉 AI,代表着 Ultralytics 开源研究中面向未来视觉 AI 方法的探索,融入了经过数千小时的研发积累的经验和最佳实践。
我们希望这些资源能帮助您充分利用 YOLOv5。请查阅 YOLOv5 的文档了解详细信息,如需支持请在 GitHub 提出问题,或加入我们的 Discord 社区进行提问和讨论!
如需申请企业许可,请前往 Ultralytics Licensing 填写表单。
YOLO11 🚀 新品发布
我们很高兴推出 Ultralytics YOLO11 🚀,这是我们最尖端(SOTA)视觉模型的最新成果!现已在 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 推理。 Models 会自动从最新的 YOLOv5 release 下载。
import torch
# 加载 YOLOv5 模型(可选项: yolov5n, yolov5s, yolov5m, yolov5l, yolov5x)
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# 输入源(URL、文件、PIL 图像、OpenCV、numpy 数组 或 列表)
img = "https://ultralytics.com/images/zidane.jpg"
# 执行推理(支持批处理、调整大小、归一化)
results = model(img)
# 处理结果(可选方法:.print(), .show(), .save(), .crop(), .pandas())
results.print()
使用 detect.py 进行推理
detect.py 可在多种输入源上运行推理,自动从最新的 YOLOv5 release 下载 models,并将结果保存到 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/ # 目录
python detect.py --weights yolov5s.pt --source list.txt # 图片列表
python detect.py --weights yolov5s.pt --source list.streams # 流列表
python detect.py --weights yolov5s.pt --source 'path/*.jpg' # 通配符匹配
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4' # YouTube 视频
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4' # RTSP、RTMP、HTTP 流
训练
以下命令重现 YOLOv5 COCO 结果。 Models 和 datasets 会自动从最新的 YOLOv5 release 下载。 在 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
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16
教程
集成
我们与领先 AI 平台的关键集成扩展了 Ultralytics 产品的功能,提升了数据集标注、训练、可视化和模型管理等任务的效率。探索 Ultralytics 如何与 W&B、Comet、Roboflow 和 OpenVINO 携手,优化您的 AI 工作流。
| Ultralytics HUB 🚀 | W&B | Comet ⭐ 新版 | Neural Magic |
|---|---|---|---|
| 简化 YOLO 工作流:使用 Ultralytics HUB 轻松标注、训练和部署。立即试用! | 使用 Weights & Biases 跟踪实验、超参数和结果。 | 永久免费,Comet 让您保存 YOLOv5 模型、恢复训练,并以交互方式可视化和调试预测 | 通过 Neural Magic DeepSparse 将 YOLO11 推理速度提升多达 6 倍 |
Ultralytics HUB
体验无缝 AI 解决方案,尽在 Ultralytics HUB ⭐ —— 一体化的数据可视化、YOLOv5 和 YOLOv8 🚀 模型训练与部署平台,无需编写代码。使用我们前沿的平台和用户友好的 Ultralytics App 将图像转化为可行见解,让您的 AI 构想轻松变为现实。立即免费开启您的旅程!
为什么选择 YOLOv5
YOLOv5 的设计初衷是让入门变得极其简单,并易于学习。我们优先关注于实现真实世界的效果。
图示说明
- COCO AP val 表示在 5000 张 COCO val2017 数据集上以不同推理尺寸(256 至 1536)测量的 mAP@0.5:0.95 指标。
- GPU 速度 测量了在 COCO val2017 数据集上、使用 AWS p3.2xlarge V100 实例,以 batch-size 32 进行推理时的平均每张图像推理时间。
- EfficientDet 数据来自 google/automl,batch size 为 8。
- 重现方法:
python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
预训练检查点
| Model | size (pixels) |
mAPval 50-95 |
mAPval 50 |
Speed CPU b1 (ms) |
Speed V100 b1 (ms) |
Speed V100 b32 (ms) |
params (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 个 epochs。 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 val 图像测试得到的平均单张图像推理速度(NMS 时间(约 1 ms/图像)不计算在内)。
可通过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 Notebook 获取快速入门教程。
分割检查点
我们使用 A100 GPU 在 COCO 数据集上训练 YOLOv5 分割模型,共训练 300 个 epochs,图像尺寸为 640。我们将所有模型导出为 ONNX FP32 用于 CPU 速度测试,并导出为 TensorRT FP16 用于 GPU 速度测试。所有速度测试均在 Google Colab Pro Notebook 上进行,以便于重现。
| Model | size (pixels) |
mAPbox 50-95 |
mAPmask 50-95 |
Train time 300 epochs A100 (hours) |
Speed ONNX CPU (ms) |
Speed TRT A100 (ms) |
params (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 个 epochs,默认配置。
训练日志记录于 https://wandb.ai/glenn-jocher/YOLOv5_v70_official - 准确率 数值为在 COCO 数据集上单模型单尺度测试结果。
可通过python segment/val.py --data coco.yaml --weights yolov5s-seg.pt重现。 - 速度 为在 Colab Pro A100 高内存实例上,对 100 张测试图像的平均推理速度(仅计算推理时间,NMS 每张图像约增加 1ms)。
可通过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 分割数据集,也支持通过 bash data/scripts/get_coco.sh --train --val --segments 手动下载 COCO-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 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 engine --img 640 --device 0
分类
YOLOv5 v6.2 版本 现已支持分类模型的训练、验证和部署!详见我们的 版本说明 ,并访问我们的 YOLOv5 分类 Colab Notebook 获取快速入门教程。
分类检查点
我们在 ImageNet 数据集上使用 4xA100 实例训练 YOLOv5-cls 分类模型共 90 个 epochs,同时使用相同默认训练设置训练了 ResNet 和 EfficientNet 模型进行对比。所有模型均导出为 ONNX FP32 (CPU 速度测试) 和 TensorRT FP16 (GPU 速度测试)。所有速度测试均在 Google Colab Pro 上运行,以便于重现。
| Model | size (pixels) |
acc top1 |
acc top5 |
Training 90 epochs 4xA100 (hours) |
Speed ONNX CPU (ms) |
Speed TensorRT V100 (ms) |
params (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 个 epochs,默认配置。
训练日志记录于 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重现。 - 导出 为 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 数据集。例如,启动 MNIST 训练只需指定 --data 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 Licensing 与我们联系。
联系
有关 YOLOv5 的 bug 报告和功能请求,请访问 GitHub Issues,如有疑问和讨论,请加入我们的 Discord 社区!
























