Files
yolov5_ZWgra/README.zh-CN.md
T
Glenn JocherandUltralyticsAssistant 71325996b6 Chinese readme (#13544)
* 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>
2025-03-23 12:32:52 +01:00

42 KiB
Raw Blame History

Ultralytics YOLO banner

中文 | 한국어 | 日本語 | Русский | Deutsch | Français | Español | Português | Türkçe | Tiếng Việt | العربية

YOLOv5 CI YOLOv5 Citation Docker Pulls Discord Ultralytics Forums Ultralytics Reddit
Run on Gradient Open In Colab Open In Kaggle

YOLOv5 🚀 是全球最受欢迎的视觉 AI,代表着 Ultralytics 开源研究中面向未来视觉 AI 方法的探索,融入了经过数千小时的研发积累的经验和最佳实践。

我们希望这些资源能帮助您充分利用 YOLOv5。请查阅 YOLOv5 的文档了解详细信息,如需支持请在 GitHub 提出问题,或加入我们的 Discord 社区进行提问和讨论!

如需申请企业许可,请前往 Ultralytics Licensing 填写表单。

Ultralytics GitHub Ultralytics LinkedIn Ultralytics Twitter Ultralytics YouTube Ultralytics TikTok Ultralytics BiliBili Ultralytics Discord

YOLO11 🚀 新品发布

我们很高兴推出 Ultralytics YOLO11 🚀,这是我们最尖端(SOTA)视觉模型的最新成果!现已在 GitHub 发布,YOLO11 延续了我们速度、精准度与易用性的传承。不论您是做目标检测、图像分割还是图像分类,YOLO11 都能提供卓越的性能和足以应对多样化应用的多功能性。

立即开始,释放 YOLO11 的全部潜力!访问 Ultralytics 文档 获取全面的指南和资源:

PyPI version Downloads

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 active learning integrations

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 的设计初衷是让入门变得极其简单,并易于学习。我们优先关注于实现真实世界的效果。

YOLOv5-P5 640 图示

图示说明
  • 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 重现。
分割使用示例  Open In Colab

训练

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 加载(注意:暂不支持推理)
zidane bus

导出

将 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 重现。
分类使用示例  Open In Colab

训练

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 社区!


Ultralytics GitHub Ultralytics LinkedIn Ultralytics Twitter Ultralytics YouTube Ultralytics TikTok Ultralytics BiliBili Ultralytics Discord