YOLOv5 🚀 是世界上最受欢迎的视觉 AI,代表超力对未来视觉 AI 方法的开源研究,结合在数千小时的研究和开发中积累的经验教训和最佳实践。
要申请企业许可证,请填写表格Ultralytics 许可.
Ultralytics Live Session Ep。 2个✨将直播欧洲中部时间 12 月 13 日星期二 19:00和约瑟夫·纳尔逊的机器人流谁将与我们一起讨论全新的 Roboflow x Ultralytics HUB 集成。收听 Glenn 和 Joseph 询问如何通过无缝数据集集成来加快工作流程! 🔥
我们新的 YOLOv5发布 v7.0实例分割模型是世界上最快和最准确的,击败所有当前SOTA 基准.我们使它们非常易于训练、验证和部署。查看我们的完整详细信息发行说明并访问我们的YOLOv5 分割 Colab 笔记本快速入门教程。
Segmentation Checkpoints
我们使用 A100 GPU 在 COCO 上以 640 图像大小训练了 300 个时期的 YOLOv5 分割模型。我们将所有模型导出到 ONNX FP32 以进行 CPU 速度测试,并导出到 TensorRT FP16 以进行 GPU 速度测试。我们在 Google 上进行了所有速度测试协作临便于重现的笔记本。
模型 | 尺寸 (像素) |
地图盒子 50-95 |
地图面具 50-95 |
火车时间 300个纪元 A100(小时) |
速度 ONNX 中央处理器 (小姐) |
速度 同仁堂A100 (小姐) |
参数 (男) |
失败者 @640(二) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-se | 640 | 27.6 | 23.4 | 80:17 | 62.7 | 1.2 | 2.0 | 7.1 |
YOLOv5s-se | 640 | 37.6 | 31.7 | 88:16 | 173.3 | 1.4 | 7.6 | 26.4 |
YOLOv5m段 | 640 | 45.0 | 37.1 | 108:36 | 427.0 | 2.2 | 22.0 | 70.8 |
YOLOv5l-se | 640 | 49.0 | 39.9 | 我:43(X) | 857.4 | 2.9 | 47.9 | 147.7 |
YOLOv5x-seg | 640 | 50.7 | 41.4 | 62:56 (zks) | 1579.2 | 4.5 | 88.8 | 265.7 |
- 使用 SGD 优化器将所有检查点训练到 300 个时期
lr0=0.01
和weight_decay=5e-5
在图像大小 640 和所有默认设置。
运行记录到HTTPS://玩豆瓣.爱/Glenn-就ocher/yo lo V5_V70_official - 准确性值适用于 COCO 数据集上的单模型单尺度。
重现者python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- 速度使用 a 对超过 100 个推理图像进行平均协作临A100 高 RAM 实例。值仅表示推理速度(NMS 每张图像增加约 1 毫秒)。
重现者python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- 出口到 FP32 的 ONNX 和 FP16 的 TensorRT 完成
export.py
.
重现者python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Segmentation Usage Examples
YOLOv5分割训练支持自动下载COCO128-seg分割数据集--data coco128-seg.yaml
COCO-segments 数据集的参数和手动下载bash data/scripts/get_coco.sh --train --val --segments
接着python train.py --data coco.yaml
.
# Single-GPU
python segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640
# Multi-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 # download COCO val segments split (780MB, 5000 images)
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validate
使用预训练的 YOLOv5m-seg.pt 来预测 bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg
model = torch.hub.load(
"ultralytics/yolov5", "custom", "yolov5m-seg.pt"
) # load from PyTorch Hub (WARNING: inference not yet supported)
将 YOLOv5s-seg 模型导出到 ONNX 和 TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0
见YOLOv5 文档有关培训、测试和部署的完整文档。请参阅下面的快速入门示例。
Install
克隆回购并安装要求.txt在一个Python>=3.7.0环境,包括PyTorch>=1.7.
git clone https://github.com/ultralytics/yolov5 # clone
cd yolov5
pip install -r requirements.txt # install
Inference
YOLOv5PyTorch 中心推理。楷模自动从最新下载 YOLOv5发布.
import torch
# Model
model = torch.hub.load("ultralytics/yolov5", "yolov5s") # or yolov5n - yolov5x6, custom
# Images
img = "https://ultralytics.com/images/zidane.jpg" # or file, Path, PIL, OpenCV, numpy, list
# Inference
results = model(img)
# Results
results.print() # or .show(), .save(), .crop(), .pandas(), etc.
Inference with detect.py
detect.py
在各种来源上运行推理,下载楷模自动从
最新的YOLOv5发布并将结果保存到runs/detect
.
python detect.py --weights yolov5s.pt --source 0 # webcam
img.jpg # image
vid.mp4 # video
screen # screenshot
path/ # directory
list.txt # list of images
list.streams # list of streams
'path/*.jpg' # glob
'https://youtu.be/Zgi9g1ksQHc' # YouTube
'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream
Training
下面的命令重现 YOLOv5可可结果。楷模和数据集自动从最新下载
YOLOv5发布. YOLOv5n/s/m/l/x 的训练时间为
V100 GPU 上 1/2/4/6/8 天(多GPU倍快)。使用
最大的--batch-size
可能,或通过--batch-size -1
为了
YOLOv5自动批处理.显示的批量大小适用于 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
Tutorials
- 训练自定义数据🚀 推荐
- 获得最佳训练结果的技巧☘️ 推荐的
- 多 GPU 训练
- PyTorch 中心🌟 新
- TFLite、ONNX、CoreML、TensorRT 导出🚀
- NVIDIA Jetson Nano 部署🌟 新
- 测试时间增强 (TTA)
- 模型集成
- 模型修剪/稀疏度
- 超参数进化
- 使用冻结层进行迁移学习
- 架构总结🌟 新
- 用于数据集、标签和主动学习的 Roboflow🌟 新
- ClearML 记录🌟 新
- 所以平台🌟 新
- 彗星记录🌟 新
机器人流 | ClearML ⭐ 新 | 彗星⭐新 | 所以⭐新 |
---|---|---|---|
将您的自定义数据集标记并直接导出到 YOLOv5 以进行训练机器人流 | 使用自动跟踪、可视化甚至远程训练 YOLOv5清除ML(开源!) | 永远免费,彗星可让您保存 YOLOv5 模型、恢复训练以及交互式可视化和调试预测 | 一键自动编译量化YOLOv5以获得更好的推理性能所以 |
Ultralytics 集线器是我们的⭐新的用于可视化数据集、训练 YOLOv5 🚀 模型并以无缝体验部署到现实世界的无代码解决方案。开始使用自由的现在!
YOLOv5 被设计为超级容易上手和简单易学。我们优先考虑现实世界的结果。
Figure Notes
- COCO AP 值表示map@0.5:0.95 指标在 5000 张图像上测得COCO val2017从 256 到 1536 的各种推理大小的数据集。
- 显卡速度测量每张图像的平均推理时间COCO val2017数据集使用美国销售.Excelerge批量大小为 32 的 V100 实例。
- 高效数据来自谷歌/汽车批量大小为 8。
- 复制经过
python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
模型 | 尺寸 (像素) |
地图值 50-95 |
地图值 50 |
速度 处理器b1 (小姐) |
速度 V100 b1 (小姐) |
速度 V100 b32 (小姐) |
参数 (男) |
失败者 @640(二) |
---|---|---|---|---|---|---|---|---|
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 +电讯局 |
1280 1536 |
55.0 55.8 |
72.7 72.7 |
3136 - |
26.2 - |
19.4 - |
140.7 - |
209.8 - |
Table Notes
- 所有检查点都使用默认设置训练到 300 个时期。纳米和小型型号使用hyp.scratch-low.yamlhyps,所有其他人都使用hyp.scratch-high.yaml.
- **地图值**值适用于单模型单尺度COCO val2017数据集。
重现者python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
- 速度使用 a 对 COCO val 图像进行平均美国销售.Excelerge实例。 NMS 时间 (~1 ms/img) 不包括在内。
重现者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发布 v6.2带来对分类模型训练、验证和部署的支持!查看我们的完整详细信息发行说明并访问我们的YOLOv5 分类 Colab 笔记本快速入门教程。
Classification Checkpoints
我们使用 4xA100 实例在 ImageNet 上训练了 90 个时期的 YOLOv5-cls 分类模型,我们训练了 ResNet 和 EfficientNet 模型以及相同的默认训练设置以进行比较。我们将所有模型导出到 ONNX FP32 以进行 CPU 速度测试,并导出到 TensorRT FP16 以进行 GPU 速度测试。我们在 Google 上进行了所有速度测试协作临为了便于重现。
模型 | 尺寸 (像素) |
acc top1 |
acc 烹饪 |
训练 90个纪元 4xA100(小时) |
速度 ONNX 中央处理器 (小姐) |
速度 TensorRT V100 (小姐) |
参数 (男) |
失败者 @224(二) |
---|---|---|---|---|---|---|---|---|
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 |
Resnetzch | 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 |
高效网络_b0 | 224 | 75.1 | 92.4 | 13:03 | 12.5 | 1.3 | 5.3 | 1.0 |
高效网络 b1 | 224 | 76.4 | 93.2 | 17:04 | 14.9 | 1.6 | 7.8 | 1.5 |
我们将预测 | 224 | 76.6 | 93.4 | 17:10 | 15.9 | 1.6 | 9.1 | 1.7 |
高效Netb3 | 224 | 77.7 | 94.0 | 19:19 | 18.9 | 1.9 | 12.2 | 2.4 |
Table Notes (click to expand)
- 使用 SGD 优化器将所有检查点训练到 90 个时期
lr0=0.001
和weight_decay=5e-5
在图像大小 224 和所有默认设置。
运行记录到HTTPS://玩豆瓣.爱/Glenn-就ocher/yo lo V5-classifier-V6-2 - 准确性值适用于单模型单尺度ImageNet-1k数据集。
重现者python classify/val.py --data ../datasets/imagenet --img 224
- 速度使用谷歌平均超过 100 个推理图像协作临V100 高 RAM 实例。
重现者python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
- 出口到 FP32 的 ONNX 和 FP16 的 TensorRT 完成
export.py
.
重现者python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
Classification Usage Examples
YOLOv5 分类训练支持自动下载 MNIST、Fashion-MNIST、CIFAR10、CIFAR100、Imagenette、Imagewoof 和 ImageNet 数据集--data
争论。开始使用 MNIST 进行训练--data mnist
.
# Single-GPU
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128
# Multi-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 # download ImageNet val split (6.3G, 50000 images)
python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # validate
使用预训练的 YOLOv5s-cls.pt 来预测 bus.jpg:
python classify/predict.py --weights yolov5s-cls.pt --data data/images/bus.jpg
model = torch.hub.load(
"ultralytics/yolov5", "custom", "yolov5s-cls.pt"
) # load from 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调查向我们发送您的体验反馈。感谢我们所有的贡献者!
YOLOv5 在两种不同的许可下可用:
- GPL-3.0 许可证: 看执照文件的详细信息。
- 企业执照:在没有 GPL-3.0 开源要求的情况下为商业产品开发提供更大的灵活性。典型用例是将 Ultralytics 软件和 AI 模型嵌入到商业产品和应用程序中。在以下位置申请企业许可证Ultralytics 许可.
对于 YOLOv5 错误和功能请求,请访问GitHub 问题.如需专业支持,请联系我们.