一、数据集

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

二、模型选择

模型越大,得到的结果越好,但是需要更多的CUDA内存去训练,且训练时间更长。对于移动部署,我们建议使用YOLOv5s/m;对于云部署,我们建议使用YOLOv5l/x。
小数据集(VOC)建议使用预训练模型做迁移学习,大数据集(COCO)可从头开始训练。

三、训练设置

第一次训练推荐使用默认设置,得到模型性能基线。
1、 Epochs,默认300个,出现过拟合则减小该值,反之亦然。
2、 Image size,COCO数据集训练使用640分辨率,由于数据集中有大量的小目标,增加分辨率(如1280),有利于训练结果。如果客户数据集有很多小目标,使用原始像素或者更高像素有利于训练。想要获得好的模型推理结果则推理像素需与训练像素一致。
3、 Batch size,使用硬件允许的最大值,需避免值过小产生糟糕的统计结果
4、 Hyperparameters,默认的超参数在hyp.scratch.yaml文件中,一般情况下,增加augmentation参数可降低和推迟过拟合,以便于更长的训练获得更高的mAP值。减小类似[‘obj’]等损失增益的值也可降低过拟合。