YOLOv5的训练调优技巧

文章提供了优化YOLOv5训练效果的建议,包括使用充足且多样化的数据集,确保标注质量,选择合适的模型大小,从预训练权重开始训练,以及调整训练设置如epochs和batchsize。对于不同的场景,推荐使用不同规模的模型,如移动部署用YOLOv5s/m,云端部署用YOLOv5l/x。
摘要由CSDN通过智能技术生成
本文编译自英文原文 https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results,文章解释了如何提高Yolov5的mAP和训练效果。

大多数时间,在没有改变模型或是训练配置的情况下,如果能够提供足够多的数据集以及好的标注,也是能够获得好的效果的。如果你刚开始训练的时候,得到的效果不太尽如人意,那么你就会想采取措施来改善,在你采取措施之前,我们还是建议你最好还是采用默认的设置。这有助于建立一个改善的基准,以及找出需要改善的地方。

以下是官方提供的一份完整的指南——如何在YOLOv5训练中获得好的结果的。

数据集

  • 每个类别的图像

建议≥1500张图片。

  • 每个类别的实例

建议每个类别≥10000实例。

  • 图像的多样性

建议图像来自不同的时间段、不同的季节、不同的天气、不同的光照、不同的角度、不同的

来源(在线收集、本地收集、不同的相机)等.

  • 标注的一致性

必须要标注所有图像中所有类的所有实例。

  • 标注的准确性

标注必须要紧紧地围绕对象。对象与其边界框之间不应该存在空间。任何对象都不能缺少标注。

  • 标注的验证

查看train/exp文件夹里的train_batch和val_batch图片。

  • 背景图像

将那些没有包含对象的图像作为背景图像,添加到数据集中,以减少False Positives(FP)。建议使用0-10%的背景图像来帮助减少FPs。背景图像不需要标注。

模型的选择

像YOLOv5和YOLOv5x6这些大模型,几乎在所有的案例中,都能产生更好的结果,但是由于参数也更多,需要占用更多的CUDA内存进行训练,训练速度也更慢。移动部署,推荐使用YOLOv5s/m;云端部署,推荐使用YOLOv5l/x。

  • 从预训练的权重开始

适用于中、小规模的数据集(VOC, VisDrone, GlobalWheat)。把模型名称传递给参数--weight。

模型下载

python train.py --data custom.yaml --weights yolov5s.pt
  • 从头开始

适用大的数据集(COCO, Objects365, Olv6)。传入感兴趣的模型架构,紧接着传入一个空的--weights参数:

python train.py --data custom.yaml --weights '' --cfg yolov5s.yaml

训练设置

在修改任何内容之前,第一次训练采用默认的设置,以建立一个性能的基准。完整的设置列表在train.py中能查询到。

  • Epochs 训练次数

默认300,如果过早出现过拟合,可以适当减少epochs,如果没有出现过拟合,则可以设置600、1200.

  • Image size 图片尺寸

--img 默认为640,如果数据集中包含大量的小对象,建议采用--img 1280。如果训练设置--img为1280,那么测试和检测也要设为1280。

  • Batch size 批量大小

建议使用硬件允许的最大值。小批量会带来较差的批量数值统计。

  • Hyperparameters 超参数

默认超参数为hyp.scratch-low.yaml。建议首次训练采用默认值训练。

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kigha同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值