Skip to content

Latest commit

 

History

History
479 lines (362 loc) · 37.8 KB

README.zh-CN.md

File metadata and controls

479 lines (362 loc) · 37.8 KB

英语|简体中文

YOLOv5 CI YOLOv5 Citation Docker Pulls
Run on Gradient Open In Colab Open In Kaggle

YOLOv5 🚀 是世界上最受欢迎的视觉 AI,代表超力对未来视觉 AI 方法的开源研究,结合在数千小时的研究和开发中积累的经验教训和最佳实践。

要申请企业许可证,请填写表格Ultralytics 许可.

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.01weight_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  Open In Colab

火车

YOLOv5分割训练支持自动下载COCO128-seg分割数据集--data coco128-seg.yamlCOCO-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)
zidane bus

出口

将 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

集成




机器人流 ClearML ⭐ 新 彗星⭐新 所以⭐新
将您的自定义数据集标记并直接导出到 YOLOv5 以进行训练机器人流 使用自动跟踪、可视化甚至远程训练 YOLOv5清除ML(开源!) 永远免费,彗星可让您保存 YOLOv5 模型、恢复训练以及交互式可视化和调试预测 一键自动编译量化YOLOv5以获得更好的推理性能所以

Ultralytics 集线器

Ultralytics 集线器是我们的⭐新的用于可视化数据集、训练 YOLOv5 🚀 模型并以无缝体验部署到现实世界的无代码解决方案。开始使用自由的现在!

为什么选择 YOLOv5

YOLOv5 被设计为超级容易上手和简单易学。我们优先考虑现实世界的结果。

YOLOv5-P5 640 Figure

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.001weight_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  Open In Colab

火车

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 问题.如需专业支持,请联系我们.