yolov5 获得最佳训练结果(官网)

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

大多数情况下,无需更改模型或训练设置即可获得良好的结果,前提是数据集足够大且标记良好。如果一开始没有得到好的结果,你可以采取一些步骤来改进,但我们始终建议用户在考虑任何更改之前先使用所有默认设置进行训练。这有助于建立性能基线并发现需要改进的领域。

如果您对训练结果有疑问,我们建议您提供尽可能多的信息(如果您希望得到有用的响应),包括结果图(列车损失、价值损失、P、R、mAP)、PR 曲线、混淆矩阵、训练镶嵌、测试结果和数据集统计图像,例如标签.png。所有这些都位于您的目录中,通常为 .project/nameyolov5/runs/train/exp

我们为希望在下面的 YOLOv5 培训中获得最佳结果的用户整理了一份完整的指南。

数据

  • 每个类的图像。建议每类≥ 1500 张图像
  • 每个类的实例数。建议每个类≥ 10000 个实例(标记对象)
  • 图像多样性。必须代表已部署的环境。对于现实世界的用例,我们建议使用一天中不同时间、不同季节、不同天气、不同照明、不同角度、不同来源(在线抓取、本地收集、不同相机)等的图像。
  • 标签一致性。必须标记所有映像中所有类的所有实例。部分标记将不起作用。
  • 标签准确性。标签必须紧紧包围每个对象。对象与其边界框之间不应存在空格。任何对象都不应缺少标签。
  • 标签验证。在火车起点上查看以验证您的标签是否正确显示,即参见示例马赛克。train_batch*.jpg
  • 背景图像。背景图像是没有对象的图像,这些对象被添加到数据集以减少误报 (FP)。我们建议大约 0-10% 的背景图像来帮助降低 FP(COCO 有 1000 张背景图像供参考,占总数的 1%)。背景图像不需要标签。

型号选择

像 YOLOv5x 和 YOLOv5x6 这样的较大模型在几乎所有情况下都会产生更好的结果,但有更多的参数,需要更多的 CUDA 内存来训练,并且运行速度更慢。对于移动部署,我们建议使用 YOLOv5s/m,对于部署,我们建议使用 YOLOv5l/x。请参阅我们的自述文件表,了解所有型号的完整比较。

python train.py --data custom.yaml --weights yolov5s.pt
                                             yolov5m.pt
                                             yolov5l.pt
                                             yolov5x.pt
                                             custom_pretrained.pt
  • 从头开始。推荐用于大型数据集(即 COCO、Objects365OIv6)。传递您感兴趣的模型体系结构 yaml 以及一个空参数:--weights ''
python train.py --data custom.yaml --weights '' --cfg yolov5s.yaml
                                                      yolov5m.yaml
                                                      yolov5l.yaml
                                                      yolov5x.yaml

训练设置

在修改任何内容之前,请先使用默认设置进行训练,以建立性能基线。train.py 设置的完整列表可以在 train.py 参数解析器中找到。

  • Epochs。从 300 个纪元开始。如果这在早期过度拟合,那么您可以减少 epoch。如果在 300 个 epoch 之后没有发生过拟合,则训练更长时间,即 600、1200 等 epoch。
  • Image size。COCO 以 的原始分辨率进行训练,但由于数据集中存在大量小对象,因此它可以从更高分辨率的训练中受益,例如 。如果有许多小对象,则自定义数据集将受益于本机或更高分辨率的训练。最佳推理结果是在运行训练时获得的,即,如果您训练,您还应该在 进行测试和检测。--img 640--img 1280--img--img 1280--img 1280
  • Batch size。使用硬件允许的最大容量。小批量会产生较差的批次规范统计,应避免使用。--batch-size
  • Hyperparameters。默认超参数位于 hyp.scratch-low.yaml 中。建议先使用默认超参数进行训练,然后再考虑修改任何超参数。通常,增加增强超参数将减少和延迟过拟合,从而实现更长的训练和更高的最终 mAP。减少损耗分量增益超参数将有助于减少这些特定损耗分量的过拟合。有关优化这些超参数的自动化方法,请参阅我们的超参数演化教程

最佳训练结果的提示 - Ultralytics YOLOv8 文档

适用于 GPU 的 YOLOv5 导出基准测试 (官网)

为所有支持的导出格式运行 YOLOv5 基准测试(速度和准确性),专业提示:导出到 TensorRT 以获得高达 5 倍的 GPU 加速(可见如下平台)

导出格式列表:

Formatexport.py --includeModel
PyTorch-yolov5s.pt
TorchScripttorchscriptyolov5s.torchscript
ONNXonnxyolov5s.onnx
OpenVINOopenvinoyolov5s_openvino_model/
TensorRTengineyolov5s.engine
CoreMLcoremlyolov5s.mlmodel
TensorFlow SavedModelsaved_modelyolov5s_saved_model/
TensorFlow GraphDefpbyolov5s.pb
TensorFlow Litetfliteyolov5s.tflite
TensorFlow Edge TPUedgetpuyolov5s_edgetpu.tflite
TensorFlow.jstfjsyolov5s_web_model/

如下三个平台表现:

Usage:

git clone https://github.com/ultralytics/yolov5 -b update/bench_gpu  # clone
cd yolov5
pip install -qr requirements.txt coremltools onnx onnxruntime-gpu openvino-dev  # install
pip install -U nvidia-tensorrt --index-url https://pypi.ngc.nvidia.com  # TensorRT

python utils/benchmarks.py --weights yolov5s.pt --img 640 --device 0

Colab Pro+ V100 High-RAM Results (Google 产品)

benchmarks: weights=/content/yolov5/yolov5s.pt, imgsz=640, batch_size=1, data=/content/yolov5/data/coco128.yaml, device=0, half=False, test=False
Checking setup...
YOLOv5 🚀 v6.1-135-g7926afc torch 1.10.0+cu111 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)
Setup complete ✅ (8 CPUs, 51.0 GB RAM, 46.7/166.8 GB disk)

Benchmarks complete (458.07s)
                   Format  mAP@0.5:0.95  Inference time (ms)
0                 PyTorch        0.4623                10.19
1             TorchScript        0.4623                 6.85
2                    ONNX        0.4623                14.63
3                OpenVINO           NaN                  NaN
4                TensorRT        0.4617                 1.89
5                  CoreML           NaN                  NaN
6   TensorFlow SavedModel        0.4623                21.28
7     TensorFlow GraphDef        0.4623                21.22
8         TensorFlow Lite           NaN                  NaN
9     TensorFlow Edge TPU           NaN                  NaN
10          TensorFlow.js           NaN                  NaN

Colab Free T4 Results

benchmarks: weights=/content/yolov5/yolov5s.pt, imgsz=640, batch_size=1, data=/content/yolov5/data/coco128.yaml, device=, half=False, test=False
Checking setup...
YOLOv5 🚀 v6.1-135-g7926afc torch 1.10.0+cu111 CUDA:0 (Tesla T4, 15110MiB)
Setup complete ✅ (2 CPUs, 12.7 GB RAM, 45.2/78.2 GB disk)

Benchmarks complete (501.61s)
                   Format  mAP@0.5:0.95  Inference time (ms)
0                 PyTorch        0.4623                11.51
1             TorchScript        0.4623                 8.70
2                    ONNX        0.4623                17.08
3                OpenVINO           NaN                  NaN
4                TensorRT        0.4628                 3.36
5                  CoreML           NaN                  NaN
6   TensorFlow SavedModel        0.4623                25.13
7     TensorFlow GraphDef        0.4623                25.20
8         TensorFlow Lite           NaN                  NaN
9     TensorFlow Edge TPU           NaN                  NaN
10          TensorFlow.js           NaN                  NaN

Ultralytics Hyperplane A100

benchmarks: weights=yolov5s.pt, imgsz=640, batch_size=1, data=/usr/src/app/data/coco128.yaml, device=, half=False, test=False, pt_only=False
Checking setup...
YOLOv5 🚀 v6.1-174-gc4cb7c6 torch 1.11.0+cu113 CUDA:0 (A100-SXM-80GB, 81251MiB)
Setup complete ✅ (96 CPUs, 1007.7 GB RAM, 1947.5/3519.3 GB disk)

Benchmarks complete (599.41s)
                   Format  mAP@0.5:0.95  Inference time (ms)
0                 PyTorch        0.4624                 6.83
1             TorchScript        0.4624                 4.63
2                    ONNX        0.4623                43.68
3                OpenVINO           NaN                  NaN
4                TensorRT        0.4629                 1.13
5                  CoreML           NaN                  NaN
6   TensorFlow SavedModel        0.4624                25.24
7     TensorFlow GraphDef        0.4624                23.77
8         TensorFlow Lite           NaN                  NaN
9     TensorFlow Edge TPU           NaN                  NaN
10          TensorFlow.js           NaN                  NaN

注意:TensorRT 导出固定为 FP16。 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值