YOLOv5 在 COCO 数据集上预训练的物体检测架构和模型系列

发布于 2022-09-01 22:20:50 字数 20023 浏览 296 评论 0

YOLOv5 是一个在COCO数据集上预训练的物体检测架构和模型系列,它代表了 Ultralytics 对未来视觉AI方法的公开研究,其中包含了在数千小时的研究和开发中所获得的经验和最佳实践。

文件

请参阅 YOLOv5 Docs,了解有关训练、测试和部署的完整文件。

快速开始案例

安装

Python>=3.7.0 的环境中克隆版本仓并安装 requirements.txt,包括 PyTorch>=1.7

git clone https://github.com/ultralytics/yolov5  # 克隆
cd yolov5
pip install -r requirements.txt  # 安装

推理

YOLOv5 PyTorch Hub 推理,模型 自动从最新YOLOv5 版本 下载。

import torch

# 模型
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')  # or yolov5n - yolov5x6, custom

# 图像
img = 'https://ultralytics.com/images/zidane.jpg'  # or file, Path, PIL, OpenCV, numpy, list

# 推理
results = model(img)

# 结果
results.print()  # or .show(), .save(), .crop(), .pandas(), etc.

用 detect.py 进行推理

detect.py 在各种数据源上运行推理, 其会从最新的 YOLOv5 版本 中自动下载 模型 并将检测结果保存到 runs/detect 目录。

python detect.py --source 0  # 网络摄像头
                          img.jpg  # 图像
                          vid.mp4  # 视频
                          path/  # 文件夹
                          'path/*.jpg'  # glob
                          'https://youtu.be/Zgi9g1ksQHc'  # YouTube
                          'rtsp://example.com/media.mp4'  # RTSP, RTMP, HTTP 流

训练

以下指令再现了 YOLOv5 COCO 数据集结果,模型数据集 自动从最新的 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 --cfg yolov5n.yaml --weights '' --batch-size 128
                                       yolov5s                                64
                                       yolov5m                                40
                                       yolov5l                                24
                                       yolov5x                                16

教程

环境

使用经过我们验证的环境,几秒钟就可以开始。点击下面的每个图标了解详情。

如何与第三方集成

   

Dec NEWClearML NEWRoboflowWeights & Biases
Deci 一键自动编译和量化 YOLOv5以提高推理性能使用 ClearML (开源)自动追踪,可视化,以及远程训练 YOLOv5标记并将您的自定义数据直接导出到 YOLOv5 后,用 Roboflow 进行训练通过 Weights & Biases 自动跟踪以及可视化你在云端所有的 YOLOv5 训练运行情况

为什么选择 YOLOv5

YOLOv5-P5 640 图像

图片注释

  • COCO AP val 表示 mAP@0.5:0.95 在5000张图像的COCO val2017数据集上,在256到1536的不同推理大小上测量的指标。
  • GPU Speed 衡量的是在 COCO val2017 数据集上使用 AWS p3.2xlarge V100实例在批量大小为32时每张图像的平均推理时间。
  • EfficientDet 数据来自 google/automl ,批量大小设置为 8。
  • 复现 mAP 方法: python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt

预训练检查点

模型规模
(像素)
mAP验证
0.5:0.95
mAP验证
0.5
速度
CPU b1
(ms)
速度
V100 b1
(ms)
速度
V100 b32
(ms)
参数
(M)
浮点运算
@640 (B)
YOLOv5n64028.045.7456.30.61.94.5
YOLOv5s64037.456.8986.40.97.216.5
YOLOv5m64045.464.12248.21.721.249.0
YOLOv5l64049.067.343010.12.746.5109.1
YOLOv5x64050.768.976612.14.886.7205.7
         
YOLOv5n6128036.054.41538.12.13.24.6
YOLOv5s6128044.863.73858.23.612.616.8
YOLOv5m6128051.369.388711.16.835.750.0
YOLOv5l6128053.771.3178415.810.576.8111.4
YOLOv5x6
+ TTA
1280
1536
55.0
55.8
72.7
72.7
3136
-
26.2
-
19.4
-
140.7
-
209.8
-

表格注释

  • 所有检查点都以默认设置训练到300个时期. Nano和Small模型用 hyp.scratch-low.yaml hyps, 其他模型使用 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/img)
    复现方法: 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 发布的 v6.2版本 支持训练,验证,预测和输出分类模型!这使得训练分类器模型非常简单。点击下面开始尝试!

分类检查点

我们在 ImageNet 上使用了 4xA100 的实例训练 YOLOv5-cls 分类模型90个epochs,并以相同的默认设置同时训练了ResNet和EfficientNet模型来进行比较。我们将所有的模型导出到ONNX  FP32 进行 CPU 速度测试,又导出到 TensorRT FP16 进行 GPU 速度测试。最后,为了方便重现,我们在Google Colab Pro上进行了所有的速度测试。

模型规模
(像素)
准确度
第一
准确度
前五
训练
90 epochs
4xA100 (小时)
速度
ONNX CPU
(ms)
速度
TensorRT V100
(ms)
参数
(M)
浮点运算
@224 (B)
YOLOv5n-cls22464.685.47:593.30.52.50.5
YOLOv5s-cls22471.590.28:096.60.65.41.4
YOLOv5m-cls22475.992.910:0615.50.912.93.9
YOLOv5l-cls22478.094.011:5626.91.426.58.5
YOLOv5x-cls22479.094.415:0454.31.848.115.9
         
ResNet1822470.389.56:4711.20.511.73.7
ResNet3422473.991.88:3320.60.921.87.4
ResNet5022476.893.411:1023.41.025.68.5
ResNet10122478.594.317:1042.11.944.515.9
         
EfficientNet_b022475.192.413:0312.51.35.31.0
EfficientNet_b122476.493.217:0414.91.67.81.5
EfficientNet_b222476.693.417:1015.91.69.11.7
EfficientNet_b322477.794.019:1918.91.912.22.4

表格注释

  • 所有检查点都被SGD优化器训练到90 epochs, lr0=0.001weight_decay=5e-5, 图像大小为 224,全为默认设置。
    运行数据记录于 https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2。
  • 准确度 值为ImageNet-1k数据集上的单模型单尺度。
    通过python classify/val.py --data ../datasets/imagenet --img 224进行复制。
  • 使用Google Colab Pro V100 High-RAM实例得出的100张推理图像的平均速度
    通过 python classify/val.py --data ../datasets/imagenet --img 224 --batch 1 进行复制。
  • export.py导出到FP32的ONNX和FP16的TensorRT。
    通过 python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224 进行复制。

分类使用实例

训练

YOLOv5 分类训练支持自动下载 MNIST, Fashion-MNIST, CIFAR10, CIFAR100, Imagenette, Imagewoof 和 ImageNet 数据集,并使用 --data 参数,打个比方,在 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-cl的准确性:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

亚希

文章 0 评论 0

cyp

文章 0 评论 0

北漠

文章 0 评论 0

11223456

文章 0 评论 0

坠似风落

文章 0 评论 0

游魂

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文