从数据集上
- 每个类别的图片数:推荐每个类别的图片数>=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教程。
版权声明:本文为CSDN博主「金大大诶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Json111/article/details/121472335
暂无评论