yolov5训练的小技巧

这篇博客详细介绍了深度学习目标检测的数据集准备,包括每个类别图片和实例的数量要求,图片多样性和标签的一致性与准确性。同时,讨论了模型选择,推荐了YOLOv5的不同版本及其适用场景,并强调了预训练权重、训练设置如Epochs、Imagesize和Batchsize的影响。此外,还提供了训练超参数的调整建议。
摘要由CSDN通过智能技术生成

从数据集上

  • 每个类别的图片数:推荐每个类别的图片数>=1500
  • 每个类别的实例数:每个类的实例(标记对象)>=10000
  • 图片多样性:必须使用已部署的环境为代表。对于真实用例,我们推荐来自一天中不同时间、不同季节、不同天气、不同光照、不同角度、不同来源(在线抓取、本地收集、不同相机)等的图像。
  • 标签一致性:所有图像中所有类的所有实例都必须标记。部分标签将不起作用。
  • 标签准确性:标签必须紧密地包围每个对象。对象与其边界框之间不应存在空间。任何对象都不应缺少标签。
  • 背景图片:背景图像是没有对象的图像,这些图像被添加到数据集中以减少误报(FP)。推荐使用0-10%左右的背景图片来帮助减少FPs(COCO有1000张背景图片可供参考,占总数的1%)。背景图像不需要标签。

从模型选择上

YOLOv5x和YOLOv5x6等较大的模型几乎在所有情况下都会产生更好的结果,但参数更多,需要更多的CUDA内存来训练,并且运行速度较慢。对于移动部署,推荐YOLOv5s/m,对于云部署,推荐YOLOv5l/x。

  • 从预训练权重开始。推荐用于中小型数据集(即VOC、VisDrone、GlobalWheat)。将模型的名称传递给–weights参数,模型会从最新的YOLOv5版本中自动下载。
  • 从头开始。推荐用于大型数据集(即COCO、Objects365、Olv6)。传递你感兴趣的模型架构yaml,以及一个空的–weights参数。
  • P6模型。5.0版本中引入的P6模型,例如YOLOv5s6、YOLOv5m6等,在步幅为64处具有第四个输出层,并且在大多数用例中产生更好的结果,尤其是对于较大的图像。所有的P6模型都在 --img 1280 下进行训练。

训练设置

在修改任何东西之前,首先使用默认设置进行训练以建立性能基线。train.py设置的完整列表可以在train.py argparser中找到。

  • Epochs。 从300个epoch开始。如果这过早拟合,那么可以减少epochs。如果在300个epoch后没有发生过拟合,则训练更长时间,即600、1200等epoch。
  • Image size。COCO以 --img 640 的原始分辨率进行训练,但由于数据集中的大量小对象,它可以从更高分辨率的训练中受益,例如 --img 1280。如果有许多小对象,那么自定义数据集将受益于本机或更高分辨率的训练。最佳推理结果是与运行训练相同的 --img 处获得的,即如果在 --img 1280 处训练,还应该在 --img 1280 处进行测试和检测。
  • Batch size。使用硬件允许的最大 --batch-size 。小批量会产生较差的批量规范统计数据,应避免使用。
  • 超参数。默认超参数在hyp.scratch.yaml中。建议先使用默认超参数进行训练,然后再考虑修改任意超参数。一般来说,增加增强超参数将减少和延迟过拟合,允许更长的训练和更高的最终mAP。减少损失分量增益超参数(如hyp[‘obj’])将有助于减少那些特定损失分量的过度拟合。

来自yolov5教程。

Yolov5是一个流行的目标检测算法,它基于深度学习框架PyTorch。下面是一些Yolov5训练技巧: 1. 数据集准备:首先,需要准备一个包含图片和对应标注的数据集。确保数据集中的标注格式匹配Yolov5所需的格式。 2. 数据集划分:将数据集划分为训练集和验证集,通常采用70%的数据作为训练集,30%的数据作为验证集。这样可以用验证集评估模型性能。 3. 数据增强:在训练过程中使用数据增强技术,如随机裁剪、缩放、翻转等,提供更多的样本和变化。这有助于提升模型的泛化能力。 4. 预训练模型:可以使用在大规模数据集上预训练好的模型作为初始权重。常见的选择是使用COCO数据集预训练的模型。 5. 学习率调整:在训练过程中,可以采用学习率调整策略来优化模型性能。常见的策略有学习率衰减和学习率余弦退火。 6. 模型结构调整:根据不同的应用场景和需求,可以调整Yolov5的模型结构,如调整网络的深度、宽度等。 7. 多尺度训练:在训练过程中,可以采用多尺度训练技术,即使用不同大小的输入图像进行训练。这有助于提升模型对目标的检测效果。 8. 训练策略选择:选择适合自己数据集和硬件环境的训练策略,如使用分布式训练、混合精度训练等。 9. 模型评估:在训练过程中,定期使用验证集评估模型性能。可以计算精度、召回率等指标来评估模型的准确性。 10. 调试和优化:在训练过程中,根据模型在验证集上的表现进行调试和优化。可以分析误检、漏检的原因,并针对性地进行调整。 这些是一些常见的Yolov5训练技巧,希望对你有帮助!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值