YOLOV5标注训练自己的数据全流程教程

概述

yolo在目标检测领域是非常有代表性的模型,它速度快识别效果也很精准,是实时检测模型中应用最广泛的。yolo的原理和代码是很容易获得的,且有各式各样的教程,但是模型怎么使用的教程相对比较少。本文讲解如何使用yolov5模型训练自己的模型,同时也包含了如何标注自己的数据。

标注自己的数据

首先要收集自己的要训练的数据,可以通过网络收集或者自己拍摄的途径获得。收集好图片之后就要进行图片的标注,这里推荐使用labelimg标注工具标注,可以自行在网络搜索获得。安装完成labelimg标注软件之后,打卡标注软件,软件内部如下图所示。
在这里插入图片描述
在标注之前我们要将搜集的图片存放在一个文件夹下,然后新建一个文件夹用来存放标注文件。点击软件左上角的"Open Dir"图标打开自己存放图片的路径,接着点击"Change Save Dir"图标打开刚刚创建的保存标注文件的路径。然后点击下图箭头指向的地方,点击切换为"YOLO"图标(代表使用yolo格式存储,便于后续训练)。

在这里插入图片描述完成上述操作之后就可以开始标注图片了。按w新建标注框,编辑标签名称,保存后就成功标注了第一张图片。
在这里插入图片描述
保存后查看标注文件保存的路径会看到新建了两个文件,classes.txt代表类别,另一个代表刚刚标注的文件对应的类别和坐标信息和原图片名称相对应。
在这里插入图片描述

在代码中配置自己的标注文件

标注就演示到这里了。这里只演示了单张的图片的标注,实际的项目中样本量至少也要几十张,多张标注方式和这个一样。
标注完成数据之后要划分训练数据集和验证数据集,可以按8:2的比例划分。划分时候的目录结构可以参考下图。在这里插入图片描述

标注完数据之后就要进行训练了,yolov5使用的是ultralytics版本的代码,可以自行在github中下载。打卡工程文件之后找到下图所示的data路径,新建一个自己的yaml文件,
在这里插入图片描述
打开新建的yaml文件,将自己的图片数据和对应标注文件划分好训练和验证的路径填写在“train”和“val”后,代码如下:

train: D:\mydata\train# 训练数据的路径
val: D:\mydata\val# 验证数据的路径# Classes 
names:0: fire #这里填写自己标注的类别名称。

训练自己的数据集

经过以上操作数据集的标注和配置文件的编写就完成了,接下来要进行到训练步骤了。当然在训练模型之前要配置好自己的代码环境,在项目根目录下可以找到requirements.txt文件,根据里面的对应的软件包名称完成环境配置。配置好环境之后,我们找到yolov5项目文件的根目录,在终端中打开。在终端中输入以下命令,–data后加自己的创建的yaml文件,–weight代表预训练权重 使用yolov5s.pt文件即可,–cfg代表模型配置文件使用yolov5s.yaml即可,–batch-size 代表同时训练的图片张数(如果显卡的显存较小,适当写小一点,在硬件支持的条件下越大越好),–epochs代表训练的轮次。

python train.py --data mydata.yaml --weight yolov5s.pt --cfg yolov5s.yaml --batch-size 10 --epochs 100

如没有问题就开始训练了,终端会输出训练的进度。
在这里插入图片描述
训练结束之后终端里会输出生成的pt文件存放路径,以及这次训练的精度的统计,还有存放这次训练的结果路径,可以通过这些数据回顾整个训练过程。保存的pt文件可以为自己模型推理和预测。
在这里插入图片描述

用训练的模型pt文件进行预测

训练完自己的数据集之后得到了pt文件,这个文件可以预测自己的目标检测对象,预测在yolov5中使用的detect.py文件,和上文一样在终端中打开项目文件的根目录,在终端中输入以下命令。–weight使用自己的pt文件,–source 代表用来预测的图片或视频的路径。

python detect.py --weight fire.pt --source D:\video\fire.mp4

执行上述代码之后会进行预测,在对应的结果目录找到预测的结果便能知晓模型效果。下图为火焰检测的效果。
在这里插入图片描述

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

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

相关文章

Linux运行jmeter报错java.sql.SQLException:Cannot create PoolableConnectionFactory

在性能测试过程中遇见1个问题,终于解决了,具体问题如下。 问题 在windows电脑写jmeter脚本连接数据库连接成功 然后把该脚本放到Linux服务器上面,并把jmeter mysql驱动放到服务器上面,修改jmeter的mysql驱动路径信息 注意&…

第十三章 : Spring Boot 日志记录脱敏

第十三章 : Spring Boot 日志记录脱敏 前言 本章重点:介绍secure-ext-spring-boot-starter 如何引入以及敏感数据脱敏,打印日志过程中自动脱敏,且支持手机号、邮箱、身份证号、住址、中文名、座机号、银行卡、自定义等多种类型的脱敏。 基于Spring boot 2.3.2.RELEASE 背景…

【快速解决】实验一:模拟实现进程的创建《操作系统上机》实验报告

目录 实验要求 正文开始 ​编辑 难点讲解 结语 实验要求 实验一:进程的创建 一、实验项目类型:设计型 二、实验目的和要求 加深对进程概念的理解,熟悉PCB的组织,深入了解创建进程的一般过程,掌握用队列组织进程的…

数据库系统之常用数据库你用过几个?

MySQL 开发厂商:AB公司——>Sun公司——>甲骨文公司 最新版本:5.7.43、8.0.34 发行方式: 社区版(MySQL Community Server) 免费,MySQL不提供任何技术支持 商业版(MySQL Enterprise Edition&#xff0…

LLVM学习笔记(62)

4.4.3.3.2. 指令处理的设置 4.4.3.3.2.1. 目标机器相关设置 除了基类以外,X86TargetLowering构造函数本身也是一个庞然大物,我们必须要分段来看。V7.0做了不小的改动,改进了代码的结构,修改了一些指令的设置。 100 X86Targ…

加班做报表被嘲低效!快用大数据分析工具

做数据分析报表很耗时间,因为不仅要解决多业务系统数据质量标准不一问题,还需要进行大量的公式计算、报表设计与制作。但那是以前,在大数据分析工具强势崛起的当下,这些工作都能交给大数据分析工具来做了。以前是花90%的时间做报表…

9.Docker的虚悬镜像-Dangling Image

1.虚悬镜像的概念 虚悬镜像 (Dangling Image) 指的是仓库名 (镜像名) 和标签 TAG 都是 的镜像。 2.构建本地虚悬镜像 这里我以unbuntu为例来说明。 2.1 编写Dockerfile文件 FROM ubuntu:22.042.2 根据Dockerfile文件构建虚悬镜像 docker build .上面这段命令&#xff0c…

选择ERP系统的关键指标

在制造业工厂中,选择一个合适的ERP系统能够显著提升生产效率、优化资源管理、增强决策支持。然而,如何从众多ERP系统中选择一个适合自己企业的系统,是许多负责人在面临的问题。本文将详细介绍选择ERP系统的关键指标,帮助制造业工厂…

python查看目录属性

os.chown(path, uid, gid)

[MySQL-基础]SQL语句

目录 hello! 这里是欧_aita的频道。 今日语录: 只有放弃才是真正的失败。 祝福语:愿你的代码生活充满注释,逻辑清晰,debug之路畅通无阻。 大家可以在评论区畅所欲言,可以指出我的错误,在交流中共同进步。 欢迎关注我的…

基于51单片机的病床呼叫系统设计

**单片机设计介绍, 基于51单片机的病床呼叫系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的病床呼叫系统是一种用于医疗机构的设备,旨在提供快速、可靠的病人呼叫和监控功能。以下是…

HDFS元数据管理/磁盘清理维护

元数据管理 1.元数据管理概述 > HDFS分类-类型分包括以下几部分 文件、目录自身的属性信息,例如文件名,目录名,修改信息等 文件记录的信息的存储相关的信息,例如存储块信息,分块情况,副本个数等 记录…

03_使用API_系统与数学工具

数学工具 Math 代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法 public class Test {public static void main(String[] args) {// 1. Math.abs() : 取绝对值System.out.println(Math.abs(-3.14)); // >>> 3.14// 2. Ma…

Centos7使用rpm安装mysql 5.7.43

Centos7使用rpm安装mysql 5.7.43 1、下载rpm包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar2、解压并安装 tar xf mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar yum -y install mysql-*3、按需修改mysql配置 #注意&a…

Django框架环境的搭建(图文详解)

目录 day01 Web框架和Django基础 1.web框架底层 1.1 网络通信​编辑 1.2 常见软件架构 1.3 手撸web框架 2.web框架 2.1 wsgiref 2.2 werkzeug 2.3 各框架的区别 3.快速上手django框架 3.1 安装 3.2 命令行 3.3 Pycharm 4.虚拟环境 4.1 创建虚拟环境 - 命令行 4…

7.华为OD技术面手撕代码实录:判断ip地址

判断ip地址 编写一个函数来验证输入的字符串是否是有效的 Pv4Q 或IPv6 地址。IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0-255,用(“.”)分割。比如,172.16.254.1: 同时,IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。IPv6…

页面添加水印效果实现

页面效果&#xff1a; 源代码&#xff1a; <div id"water-wrapper"></div> <div><div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div><div>1111111111111111111111111111111111…

电线电缆行业生产管理怎么数字化?

行业介绍 随着市场环境的变化和现代生产管理理念的不断更新&#xff0c;电缆的生产模式也在发生转变&#xff0c;批量小&#xff0c;规格多&#xff0c;交期短的新型制造需求逐年上升&#xff0c;所以企业车间管理的重要性越发凸显&#xff0c;作为企业良性运营的关键&#xf…

Python学习:常用数据结构

Python DataStructure 一、数组(array)二、双向链表(linkedlist)三、栈(stack)四、队列(queue)五、Python中的可变与不可变类型 一、数组(array) class array:def __init__(self, capacity: int):self._data []self._capacity capacitydef __getitem__(self, position: int)…

2023 年 亚太赛 APMCM (A题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 完整内容可以在文章末尾领取&#xff01; 问题1 图像处理&am…