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

news/2024/4/25 23:32:47/文章来源:https://blog.csdn.net/qq122716072/article/details/128108418

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_39189.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web进阶

目录 DOM节点操作(上) 一、任务目标 二、任务背景 三、任务内容 1、DOM结构及节点 DOM节点操作(下) 一、任务目标 二、任务背景 三、任务内容 1、DOM修改 DOM控制CSS样式 一、任务目标 二、任务背景 三、任务内容 …

element实现el-progress线形进度条渐变色

实现效果&#xff1a; 实现前&#xff1a; 网上查progress找到的方法都是环形进度条的&#xff0c;且实现得贼复杂&#xff0c;要么封装一个新组件要么修改一串svg&#xff0c;其实线形进度条改成渐变色的方法非常简单&#xff0c;直接在css上修改就行了&#xff1a; <div…

5-UI自动化-三大切换,iframe如何定位,窗口新开、alert弹窗如何进行元素定位

5-UI自动化-三大切换&#xff0c;iframe如何定位&#xff0c;窗口新开、alert弹窗如何进行元素定位新开一个窗口如何定位元素switch_to方法iframe定位元素alert弹窗如何定位元素上篇介绍4-UI自动化-selenium三大等待操作 web测试过程中有没有遇到以下问题&#xff1a; 1、测试…

使用 Hibernate Envers 进行实体审计

业务应用程序中的常见要求是在特定数据更改时存储版本控制信息;当某事发生变化时&#xff0c;谁改变了它&#xff0c;改变了什么。在这篇博文中&#xff0c;我们将介绍Hibernate Envers&#xff0c;它是Hibernate JPA库的一个组件&#xff0c;它为实体类提供了一个简单的审计/版…

期中考试【Verilog】

期中考试【Verilog】前言推荐期中考试一. 单选题&#xff08;共10题&#xff09;二. 填空题&#xff08;共5题&#xff09;三. 简答题&#xff08;共3题&#xff09;四. 其它&#xff08;共4题&#xff09;最后前言 编写于2022/11/30 13:30 以下内容源自Verilog期中试题 仅供…

GeoServer服务迁移出现 EncryptionOperationNotPossibleException 错误的解决方案

目录1.前言2.GeoServer服务迁移一般流程3.遇到问题4.原因分析5.解决办法6.根本原因分析7.总结1.前言 这几天我在迁移 GeoServer 服务的时候发现&#xff0c;报了一个错&#xff0c;EncryptionOperationNotPossibleException &#xff0c;这个错误的大概意思是加密操作不可用异常…

Faster RCNN全文翻译

Abstract—State-of-the-art【最先进的】 object detection networks depend on region proposal algorithms to hypothesize【假设、推测】 object locations.Advances like SPPnet [1] and Fast R-CNN [2] have reduced the running time of these detection networks, expos…

Redis集群方案备忘录

文章目录哨兵模式官方Redis ClusterJedis&#xff08;客户端分片&#xff09;Codis&#xff08;代理分片&#xff09;哨兵模式 优点 哨兵模式是基于主从模式的&#xff0c;解决可主从模式中master故障不可以自动切换故障的问题。缺点 &#xff08;1&#xff09;是一种中心化的…

一些跨平台技术方案的经验参考

今天就站在一个小开发的视角分享一下一个小项目是如何进行跨平台方案选型的 本系列文章先站在公司的的角度对产品技术选型进行分析&#xff0c;然后再根据我们项目实际开发经验进行汇总&#xff0c;供大家参考。 目前大前端技术也非常丰富&#xff0c;可以实现&#xff0c;一…

【uniapp】利用Vuex实现购物车功能

实战项目名称&#xff1a;实现购物车功能 文章目录一、实战步骤1. 先编辑store.js文件2. 定义方法和基本的结构3. 编写SETSHPPING二、在项目中调用1. 触发相应的mutations2. 利用computed计算数量和总价的方法提示&#xff1a;本实战内容大部分为具体实现的思路&#xff0c;界面…

FRED应用:激光二极管的模拟

简介 当提及模拟激光二极管时&#xff0c;FRED软件具有极大的灵活性。在这篇应用笔记中&#xff0c;将会描述简单到详细的激光光源模型。最基本的模型是高斯TEM0,0模。更高级的模型包括在束腰上偏移和发散中的像散光束。激光也可以使用其M2因子表示。最后&#xff0c;可以创…

猿如意开发工具|Sublime Text(4126)

文章目录 一、猿如意是什么&#xff1f; 二、如何使用猿如意下载安装Sublime Text 三、总结 一、猿如意是什么&#xff1f; 猿如意是一款面向开发者的辅助开发工具箱&#xff0c;包含了效率工具、开发工具下载&#xff0c;教程文档&#xff0c;代码片段搜索&#xff0c;全网搜…

Azure DevOps Server 用户组加入 Azure AD Domain Service 管理用户

一&#xff0c;引言 今天我们继续讲解 Azure DevOps Server 的内容&#xff0c;对于管理用户组除了在 Azure DevOps Server 服务器上添加管理员方式外&#xff0c;还有没有其他方式&#xff0c;Azure DevOps 需要加入Azure ADDS 服务域后&#xff0c;Azure DevOps Server 的管理…

oh-my-zsh 为 ls 命令自定义颜色

ls 命令默认显示的颜色是&#xff1a; 白色&#xff1a; 表示普通文件 蓝色&#xff1a; 表示目录 绿色&#xff1a; 表示可执行文件 红色&#xff1a; 表示压缩文件 蓝绿色&#xff1a; 链接文件 红色闪烁&#xff1a;表示链接的文件有问题 黄色&#xff1a; 表示设备文件 灰…

深入理解SR-IOV和IO虚拟化

一、背景 SR-IOV&#xff08;Single Root I/O Virtualization&#xff09;是由PCI-SIG组织定义的PCIe规范的扩展规范《Single Root I/O Virtualization and Sharing Specification》&#xff0c;目的是通过提供一种标准规范&#xff0c;为VM&#xff08;虚拟机&#xff09;提供…

ProcessDB实时/时序数据库——ODBC之连接数据库

目录 前言 一、安装ProcessDB-ODBC驱动 1.下载ProcessDB-ODBC驱动 2.安装ProcessDB-ODBC驱动 二、配置ProcessDB数据源 三、JAVA连接ProcessDB数据库 前言 ProcessDB实时/时序数据库支持ODBC连接数据库&#xff0c;接下来将和大家分享下如何使用ODBC操作ProcessDB实时/时…

基于Java Web的传智播客crm企业管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

tinymce富文本编辑器做评论区

今天分享一下tinymce富文本编辑器做评论区的全过程。 文章目录一、介绍1.最终效果2.功能介绍3.主要项目包版本介绍&#xff1a;二、每个功能的实现1.自定义toolbar的功能区①对应的样式以及意义②对应的代码实现【忽略了一切非实现该功能的代码】2.展示、收起评论区①对应的样式…

软件测试面试技巧:如何提高面试通过率?这3点一定要做到

对于想要进入到软件测试岗的新手人员来说&#xff0c;面试这一关是非常重要的&#xff0c;它直接关系着你的去留&#xff0c;也关系后续的期待遇问题&#xff0c;那么&#xff0c;有没有什么技巧可以帮忙提高面试通过率呢&#xff1f; 关于这一问题答案&#xff0c;我从这几个方…

Java自动化测试调试中遇到的问题

前言:记录下遇到的问题 Java自动化测试在调试中遇到的问题总结 1、遇到的Waring:must be unique [WARNING] dependencies.dependency.(groupId:artifactId:type:classifier) must be unique: com.vertica.jdbc:vertica-jdbc:jar -> duplicate declaration of version 10.…