yolov5系列-[2]-数据标注、参数设置、训练优化
admin
2024-03-02 21:33:59
0

yolov5系列-[2]-数据标注、参数设置、训练优化

      • 1. 数据标注规范
      • 2. 训练设置
      • 3. 数据增强
      • 4. Multi-GPU Training


1. 数据标注规范

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

  • Images per class. ≥ 1500 images per class recommended(每个类的图像。≥ 建议每类1500张图片)
  • Instances per class. ≥ 10000 instances (labeled objects) per class recommended(每个类的实例。≥ 建议每个类10000个实例(标记的对象))
  • Image variety. Must be representative of deployed environment. For real-world use cases we recommend images from different times of day, different seasons, different weather, different lighting, different angles, different sources (scraped online, collected locally, different cameras) etc.(图像多样性。必须代表已部署的环境。对于真实世界的使用案例,我们推荐来自不同时间、不同季节、不同天气、不同照明、不同角度、不同来源(在线收集、本地收集、不同相机)的图像。)
  • Label consistency. All instances of all classes in all images must be labelled. Partial labelling will not work.(标签一致性。必须标记所有图像中所有类的所有实例。部分标签将不起作用。)
  • Label accuracy. Labels must closely enclose each object. No space should exist between an object and it’s bounding box. No objects should be missing a label(标签准确性。标签必须紧紧围绕每个对象。对象与其边界框之间不应存在空间。任何对象都不应缺少标签。)
  • Label verification. View train_batch*.jpg on train start to verify your labels appear correct, i.e. see example mosaic…(标签验证。在火车开始时查看train_batch*.jpg,以验证标签是否正确,即参见示例马赛克。)
  • Background images. Background images are images with no objects that are added to a dataset to reduce False Positives (FP). We recommend about 0-10% background images to help reduce FPs (COCO has 1000 background images for reference, 1% of the total). No labels are required for background images.(背景图像。背景图像是没有添加到数据集以减少误报(FP)的对象的图像。我们建议大约0-10%的背景图像,以帮助减少FP(COCO有1000张背景图像供参考,占总数的1%)。背景图像不需要标签。)

2. 训练设置

  • 训练轮次. 开始设置300轮,如果没有发生过拟合,则设置600、1200。
  • 图片尺寸 默认640.如果数据集中大量小对象,它可以从更高分辨率(如–img 1280)的训练中受益。训练和检测应该使用同样的image_size
  • Batch size. 使用硬件允许的最大批量。小批量产生较差的批量标准统计数据,应避免。
  • 超级参数. 默认超参数为hyp.cratch-low.yaml。我们建议您在考虑修改任何超参数之前先使用默认超参数进行训练。更多请参考:Hyperparameter Evolution Tutorial.
  • 超参数进化是一种使用遗传算法(GA)进行优化的超参数优化方法。2022年9月25日更新。

  • Epochs. Start with 300 epochs. If this overfits early then you can reduce epochs. If overfitting does not occur after 300 epochs, train longer, i.e. 600, 1200 etc epochs.
  • Image size. COCO trains at native resolution of --img 640, though due to the high amount of small objects in the dataset it can benefit from training at higher resolutions such as --img 1280. If there are many small objects then custom datasets will benefit from training at native or higher resolution. Best inference results are obtained at the same --img as the training was run at, i.e. if you train at --img 1280 you should also test and detect at --img 1280.
  • Batch size. Use the largest --batch-size that your hardware allows for. Small batch sizes produce poor batchnorm statistics and should be avoided.
  • Hyperparameters. Default hyperparameters are in hyp.scratch-low.yaml. We recommend you train with default hyperparameters first before thinking of modifying any. In general, increasing augmentation hyperparameters will reduce and delay overfitting, allowing for longer trainings and higher final mAP. Reduction in loss component gain hyperparameters like hyp[‘obj’] will help reduce overfitting in those specific loss components. For an automated method of optimizing these hyperparameters, see our Hyperparameter Evolution Tutorial.

3. 数据增强

4. Multi-GPU Training

  • Single GPU
 python train.py  --batch 64 --data coco.yaml --weights yolov5s.pt --device 0
  • Multi-GPU DistributedDataParallel Mode (✅ recommended)
python -m torch.distributed.run --nproc_per_node 2 train.py --batch 64 --data coco.yaml --weights yolov5s.pt --device 0,1

–nproc_per_node指定要使用的GPU数量。在上面的示例中,它是2.–batch是总批大小。它将平均分配给每个GPU。在上面的示例中,它是64/2=32每GPU。

  • 使用多台机器
# On master machine 0
$ python -m torch.distributed.run --nproc_per_node G --nnodes N --node_rank 0 --master_addr "192.168.1.1" --master_port 1234 train.py --batch 64 --data coco.yaml --cfg yolov5s.yaml --weights ''# On machine R
$ python -m torch.distributed.run --nproc_per_node G --nnodes N --node_rank R --master_addr "192.168.1.1" --master_port 1234 train.py --batch 64 --data coco.yaml --cfg yolov5s.yaml --weights ''

其中“G”是每台机器的GPU数量,“N”是机器数量,“R”是从“0…(N-1)”开始的机器数量。假设我有两台机器,每台机器都有两个GPU,上面的代码是“G=2”、“N=2”和“R=1”。在所有“N”台机器连接之前,培训将不会开始。输出将仅显示在主机上!


参考:YOLOv5 Documentation

相关内容

热门资讯

徐州文化名人作文 徐州文化名人作文徐州文化名人作文如下:徐州的名人包括刘邦、项羽、彭祖、张道陵、王羲之等。首先,刘邦和...
杨绛老王怎么死的 杨绛老王怎么死的杨绛老王是中国的著名作家,而老王是杨绛的丈夫银孝物,也是一位作家。老王于1997年去...
听说人生就像一个笑话,那有没有... 听说人生就像一个笑话,那有没有这样的事?有没有一种妆可以掩饰满面油光的脸,有没有一种笑可以掩饰疲惫不...
五年级下册第四单元的口语交际(... 五年级下册第四单元的口语交际(写一件难忘的事或感动的事)怎么写急,下星期要交,请网友帮忙!从高中起我...
可爱的乡村——粤桂协作助力苗乡... 游客在融水苗族自治县香粉乡雨卜村戏水消暑(7月19日摄,无人机照片)。盛夏时节,广西柳州市融水苗族自...
你还记得梅艳芳唱过哪些经典歌曲... 你还记得梅艳芳唱过哪些经典歌曲吗?最喜欢她唱的《女人花》,唱尽了女人的一生苦楚,还有对爱情的憧憬和追...
旧还珠格格第二部紫微哪一集唱了... 旧还珠格格第二部紫微哪一集唱了黑暗里的你第二部第37集, 紫薇失明后,箫剑因想为紫薇制作一把琴,小燕...
一梦江湖怎么转换体型? 一梦江湖怎么转换体型?已有武当角色的玩家也可以使用移形丹,进行体型转换(仅支持武当门派)。一梦江湖怎...
主动改变和被迫改变有什么区别? 主动改变和被迫改变有什么区别?主动改变是个人心态变化。强迫改变是有另一方介入发生的改变。强迫改变后可...
比喻做事不到尽头不罢休 打七字... 比喻做事不到尽头不罢休 打七字成语---不到长城非好汉不到黄河心不死 不见棺材不掉泪
几位黑人女性打破偏见为美国航天... 几位黑人女性打破偏见为美国航天事业发展做出巨大贡献的电影叫什么?几位黑人女性打破偏见为美国航天事业发...
寓言故事 蜜蜂和黑熊的主要内容... 寓言故事 蜜蜂和黑熊的主要内容是什么寓言故事 蜜蜂和黑熊的主要内容和意义是什么寓言故事 蜜蜂和黑熊的...
形容在艰难困苦中执着努力的诗句 形容在艰难困苦中执着努力的诗句踏破铁鞋无觅处,那人却在烽火阑珊处粉身碎骨浑不怕,要留清白在人间
我们的爱情刚刚好,彼此默契也有... 我们的爱情刚刚好,彼此默契也有的聊!长治协和医院孕前检查大概什么费用?一段绝尘爱情进展的刚刚散睁好,...
灵剑奇谭冲多少激活v4? 灵剑奇谭冲多少激活v4?灵剑奇谭激活这个v4大概是需要等级到30的时候才可以激活,第六等级的话是不允...
哪一瞬间让你感觉全世界都为你做... 哪一瞬间让你感觉全世界都为你做了一次配角?小区楼下举行选丑大赛,看着镜子里丑陋的自己,再多看一眼我都...
为什么日语这么好听,这么优美,... 为什么日语这么好听,这么优美,说起来像唱歌一样呢??别问为什么,喜欢就是喜欢
求《数学精英》电子书!《好玩的... 求《数学精英》电子书!《好玩的数学》或《数学家的眼光》也可以!你也是英特的?你去书店问问
家园2的故事背景 家园2的故事背景有多少玩家园的大哥,打穿了没有?告诉偶一下故事的背景吧,那么华丽的游戏啊!这个必须从...
山水与科技双向奔赴!“AI广西... 山水与科技双向奔赴!“AI广西”游记大赛,邀你写下一封“赛博情书”…… 7月19日,AI赋能千行百业...