YOLOv5的训练调优技巧

news2024/12/27 13:56:36
本文编译自英文原文 https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results,文章解释了如何提高Yolov5的mAP和训练效果。

大多数时间,在没有改变模型或是训练配置的情况下,如果能够提供足够多的数据集以及好的标注,也是能够获得好的效果的。如果你刚开始训练的时候,得到的效果不太尽如人意,那么你就会想采取措施来改善,在你采取措施之前,我们还是建议你最好还是采用默认的设置。这有助于建立一个改善的基准,以及找出需要改善的地方。

以下是官方提供的一份完整的指南——如何在YOLOv5训练中获得好的结果的。

数据集

  • 每个类别的图像

建议≥1500张图片。

  • 每个类别的实例

建议每个类别≥10000实例。

  • 图像的多样性

建议图像来自不同的时间段、不同的季节、不同的天气、不同的光照、不同的角度、不同的

来源(在线收集、本地收集、不同的相机)等.

  • 标注的一致性

必须要标注所有图像中所有类的所有实例。

  • 标注的准确性

标注必须要紧紧地围绕对象。对象与其边界框之间不应该存在空间。任何对象都不能缺少标注。

  • 标注的验证

查看train/exp文件夹里的train_batch和val_batch图片。

  • 背景图像

将那些没有包含对象的图像作为背景图像,添加到数据集中,以减少False Positives(FP)。建议使用0-10%的背景图像来帮助减少FPs。背景图像不需要标注。

模型的选择

像YOLOv5和YOLOv5x6这些大模型,几乎在所有的案例中,都能产生更好的结果,但是由于参数也更多,需要占用更多的CUDA内存进行训练,训练速度也更慢。移动部署,推荐使用YOLOv5s/m;云端部署,推荐使用YOLOv5l/x。

  • 从预训练的权重开始

适用于中、小规模的数据集(VOC, VisDrone, GlobalWheat)。把模型名称传递给参数--weight。

模型下载

python train.py --data custom.yaml --weights yolov5s.pt
  • 从头开始

适用大的数据集(COCO, Objects365, Olv6)。传入感兴趣的模型架构,紧接着传入一个空的--weights参数:

python train.py --data custom.yaml --weights '' --cfg yolov5s.yaml

训练设置

在修改任何内容之前,第一次训练采用默认的设置,以建立一个性能的基准。完整的设置列表在train.py中能查询到。

  • Epochs 训练次数

默认300,如果过早出现过拟合,可以适当减少epochs,如果没有出现过拟合,则可以设置600、1200.

  • Image size 图片尺寸

--img 默认为640,如果数据集中包含大量的小对象,建议采用--img 1280。如果训练设置--img为1280,那么测试和检测也要设为1280。

  • Batch size 批量大小

建议使用硬件允许的最大值。小批量会带来较差的批量数值统计。

  • Hyperparameters 超参数

默认超参数为hyp.scratch-low.yaml。建议首次训练采用默认值训练。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

理解随机游走

随机游走 基本思想 从一个或一系列顶点开始遍历一张图。在任意一个顶点,遍历者将以概率1-a游走到这个顶点的邻居顶点,以概率a随机跳跃到图中的任何一个顶点,称a为跳转发生概率,每次游走后得出一个概率分布,该概率分布…

【前端】CSS3弹性布局、媒体查询实现响应式布局和自适应布局

文章目录弹性布局基本概念容器(container)的属性容器成员(item)的属性媒体查询响应式布局自适应布局参考弹性布局 基本概念 任何一个容器都可以指定为 Flex 布局。 display:flex;行内元素也可以: display:inline-f…

Apollo规划模块代码学习(2): 轨迹规划流程理论基础详解(lane follow场景为例)

文章目录1、轨迹规划基础2、Frenet坐标系3、路径规划和速度规划4、轨迹优化(QP过程)5、规划流程(lane follow场景为例)1、规划模块流程2、Apollo中各场景3、Lane_follow场景中task本文以具体场景Lane follow为例梳理具体的轨迹规划算法流程。详细介绍轨迹…

关于selenium的等待

目录 隐式等待 显式等待 注意事项 隐式等待 简单来说:在规定的时间范围内,轮询等待元素出现之后就立即结束。 如果在规定的时间范围内,元素仍然没有出现,则会抛出一个异常【NoSuchElementException】,脚本停止运行…

【Linux学习笔记】2.Linux 系统启动过程及系统目录结构

前言 本章介绍Linux的系统启动过程和系统目录结构。 Linux 系统启动过程 linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。运行 init。系统初始化。建立终端 。用户登录系…

【ARM架构】armv8 系统安全概述

ARMv8-A 系统中的安全 一个安全或可信的操作系统保护着系统中敏感的信息,例如,可以保护用户存储的密码,信用卡等认证信息免受攻击。 安全由以下原则定义: 保密性:保护设备上的敏感信息,防止未经授权的访问…

C#值传递、引用传递、输出传递详解

C#值传递、引用传递、输出传递详解1、值传递2、引用传递3、输出传递4、ref 和 out导读: 1,值传递时,为什么被调用的方法中的形参值的改变不会影响到相应的实参? 答:因为按值传递时,系统首先为被调用的方法的…

高级信息系统项目管理(高项 软考)原创论文——风险管理(2)

1、如果您想了解如何高分通过高级信息系统项目管理师(高项)你可以点击一下链接: 高级信息系统项目管理师(高项)高分通过经验分享_高项经验 2、如果您想了解更多的高级信息系统项目管理(高项 软考)原创论文,您可以点击以下链接: 高级信息系统项目管理(高项 软考)原创论文…

mqtt协议1- 简介和报文格式

文章目录1.mqtt协议1: 简介和报文格式1.1.MQTT概念1.2.数据2.控制报文格式2.1.MQTT数据包结构2.2.固定头2.2.1.控制报文类型2.2.2.标志FLag2.2.3.剩余长度2.3.可变头2.4.有效载荷Payload消息体安全QoS(Quality of Service levels)ref:1.mqtt协议1: 简介和报文格式 Message Que…

c语言机试练习

1.打印日期 给出年分m和一年中的第n天&#xff0c;算出第n天是几月几号。 输入描述&#xff1a; 输入包括两个整数y(1<y<3000)&#xff0c;n(1<n<366)。 输出描述&#xff1a; 可能有多组测试数据&#xff0c;对于每组数据&#xff0c; 按 yyyy-mm-dd的格式将输入中…

51单片机入门 - 驱动多位数码管

我使用的是普中51单片机开发板A2套件&#xff08;2022&#xff09;&#xff0c;驱动数码管可能需要参考电路原理图。开发环境的搭建教程在本专栏的 51单片机开发环境搭建 - VS Code 从编写到烧录 有过介绍。 关于我的软硬件环境信息&#xff1a; Windows 10STC89C52RCSDCC &am…

HTML 基础【快速掌握知识点】

目录 一、什么是HTML&#xff1f; 二、HTML的发展史 三、HTML5的优势 四、HTML基本结构 五、DOCTYPE声明 六、title标签 七、meta标签 八、标题标签 九、段落标签 十、换行标签 十一、水平线标签 十二、字体样式标签 十三、特殊符号 十四、图像标签 十五、链接标…

JavaScript 进阶--charater3

文章目录前言一、编程思想1.1 面向过程介绍1.2 面向对象编程 (oop)对比二、构造函数三、原型3.1原型3.2 constructor 属性3.3 对象原型3.4 原型继承3.5 原型链总结前言 &#x1f191;学习目标 理解面向对象思想&#xff0c;掌握函数原型对象运用面向对象封装继承特点&#xf…

腾讯开源的 hel 提供了加载远程模块的能力,谈谈它的实现原理

腾讯开源的 hel&#xff0c;提供了一种运行时引入远程模块的能力&#xff0c;模块部署在 CDN&#xff0c;远程模块发布后&#xff0c;不需要重新构建发布&#xff0c;就能生效。 个人觉得它的实现原理非常的不错&#xff0c;因此分享给大家。 远程模块可以作为微模块&#xf…

Jenkins利用docker部署vue项目

Jenkins利用docker部署vue项目一、环境准备1、安装docker2、安装nodejs3、安装cnpm与配置淘宝镜像4、jenkins安装nodejs插件二、jenkins以vue项目1、全局参数配置2、源码配置3、构建环境4、构建三、构建项目四、访问一、环境准备 本次jenkins与部署vue项目在同一台机器&#x…

RocketMQ5.0.0的Broker主从同步机制

目录 一、主从同步工作原理 1. 主从配置 2. 启动HA 二、主从同步实现机制 1. 从Broker发送连接事件 2. 主Broker接收连接事件 3. 从Broker反馈复制进度 4. ReadSocketService线程读取从Broker复制进度 5. WriteSocketService传输同步消息 6. GroupTransferService线程…

【每日一题Day127】LC1238循环码排列 | 格雷码构造 位运算

格雷码 看到题目就想到了格雷码 然后就疯狂搜索格雷码 手动构造了一波格雷码 看了题解 emmm 有点亏 理论基础 n 位格雷码序列 是一个由 2n 个整数组成的序列&#xff0c;其中&#xff1a; 每个整数都在范围 [0, 2n - 1] 内&#xff08;含 0 和 2n - 1&#xff09;第一个整数是…

深度学习之“制作自定义数据”--torch.utils.data.DataLoader重写构造方法。

深度学习之“制作自定义数据”–torch.utils.data.DataLoader重写构造方法。 前言&#xff1a; ​ 本文讲述重写torch.utils.data.DataLoader类的构造方法&#xff0c;对自定义图片制作类似MNIST数据集格式&#xff08;image, label&#xff09;&#xff0c;用于自己的Pytorc…

大数据Hadoop教程-学习笔记04【数据仓库基础与Apache Hive入门】

视频教程&#xff1a;哔哩哔哩网站&#xff1a;黑马大数据Hadoop入门视频教程 总时长&#xff1a;14:22:04教程资源: https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666【P001-P017】大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】【17p】【P018-P037】大…

Spring boot开启定时任务的三种方式(内含源代码+sql文件)

Spring boot开启定时任务的三种方式&#xff08;内含源代码sql文件&#xff09; 源代码sql文件下载链接地址&#xff1a;https://download.csdn.net/download/weixin_46411355/87486580 目录Spring boot开启定时任务的三种方式&#xff08;内含源代码sql文件&#xff09;源代码…