Are you sure you want to delete this access key?
中文 | 한국어 | 日本語 | Русский | 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 授权许可 表格。
我们激动地宣布推出 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 使用 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
脚本在各种来源上运行推理。它会自动从最新的 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
我们与领先 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 ⭐ 体验无缝的 AI 开发,这是构建、训练和部署计算机视觉模型的终极平台。可视化数据集,训练 YOLOv5 和 YOLOv8 🚀 模型,并将它们部署到实际应用中,无需编写任何代码。使用我们尖端的工具和用户友好的 Ultralytics App 将图像转化为可操作的见解。今天就免费开始您的旅程吧!
YOLOv5 的设计旨在简单易用。我们优先考虑实际性能和可访问性。
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 - |
python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
python val.py --data coco.yaml --img 640 --task speed --batch 1
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 |
lr0=0.01
和 weight_decay=5e-5
,在 640 像素的图像大小下,使用默认设置训练了 300 个周期。python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
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 |
lr0=0.001
和 weight_decay=5e-5
,在 224 像素的图像大小下,使用默认设置训练了 90 个周期。python classify/val.py --data ../datasets/imagenet --img 224
python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
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 提供两种许可选项以满足不同需求:
对于与 YOLOv5 相关的错误报告和功能请求,请访问 GitHub Issues。对于一般问题、讨论和社区支持,请加入我们的 Discord 服务器!
Press p or to see the previous file or, n or to see the next file
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?