labelImg数据标注及yolov5的训练和测试

news2025/2/2 21:02:41

labelImg数据标注及yolov5的训练和测试

一、labelImg数据标注的使用

数据标注主要针对于哪个地方是什么,一般像隐私类的是不能标注的,如鲁迅的故居可以标,但是张三的住所就不能进行标注。

labelImg是数据标注主要使用的工具。

1、首先使用python labelImg.py打开labelImg标注工具。

 

2、你可以打开labelImg目录下的data目录,目录下predefined_classes.txt可以定义预测的类别。

 

3、定义类别后,打开点击目录。

 

4、打开目录后,右边点击图像。

 

5、在中心有图片,可以选中左侧的“创建区块”标注图片中的类别。如下图。

 

接下来可以在图形中框出图片的分类区域。框选后出现类别的选框,如下图框选足球后出现的选框。

 

点击合适的分类后,OK即可。

 

OK点击后,需要保留框架的相关标注,按ctrl+S,保存后是xml文件格式。

 

点击保存后,在文件夹下产生一个与图片同名的xml文件。如下图。

 

打开xml文件后,可以看到图片的标注信息。

 

可以看到object识别,有坐标,有分类。

二、构建yolo5的项目步骤

直接拉取git clone https://github.com/ultralytics/yolov5.git

 

这时可以配置免验证。git config --global http.sslVerify "false"把项目中的ssl验证设置成false

然后git clone拉取yolo5模型文件

git clone https://github.com/ultralytics/yolov5.git

 

如果Timeout错误,就多次git,git网站的连接有问题,如下图所示。

 

拉取git 成功后,会在当前目录下产生require.txt文件,通过conda来安装require.txt文件。

conda install --yes --file requirements.txt

通过pip3 install 安装项目所需要的相关模块。

pip3 install -r requirements.txt

安装结束后可以自定义标签

新建一个VOCdevkit目录,下面有VOC2017文件夹,在VOC2017下两个文件夹。

Annotation标签,和JPEGImages图片文件,如下图所示。

Annotation目录下的标签文件。

 

JPEGImage标签下的文件如下图:

注意,图片需要等大,再则训练集中的数据容易识别,不然工作量很大。

 

xml文件中的坐标需要转换成YOLO格式的txt标记,如下图所示。

 

具体计算方法如下。

 

注意xml中width和height就是图片的总宽度和总高度。

 

通过该计算方法得到xml文件中的坐标需要转换成YOLO格式的txt标记的代码。

 

了解xml转换成YOLO格式txt标记后,生成训练集和验证集文件。

注意,目录结构可以建一个YOLO5目录,在YOLO5目录下有preparedata.py的py文件,同时也有一个目录VOCdevkit,然后执行python preparedata.py,就会在这样的目录下生成测试集和验证集。

 

 

 

.yolov5train.txt和yolov5val.txt分别给出了训练图片文件和测试图片文件的列表,含有每个图片的路径和文件名。

在data目录下,有一个voc.yaml中修改成voc-ball.yaml,其修改内容如下,此处可以删除下面的内容。

 

在models目录下建立yolov5s-ball.yaml,也可以把yolov5s.yaml改名为yolov5s-ball.yaml。其内容如下。

 

注意原yolov5s.yaml下面的内容不能删除。在训练时需要先验窗口。

修改后训练模型

注意执行训练模型前的路径:

 

还要注意在yolov5的文件夹下有一个weights目录,其下有一个权重文件yolo5s.pt,如下图。

 

接下来执行yolo5模型的训练。

 

 

 

训练过程可视化:

训练过程可以通过另起一个anaconda窗口,在yolov5目录下执行。

 

 

显示出tenrowborad的模板如下图。

 

其会训练50次,每次训练终端如图所示。

 

Tensorboard图形会有曲线表示。

 

训练后测试图片。

 

训练后测试视频:

 

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

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

相关文章

第十四章 概率图模型

14.1 隐马尔可夫模型 机器学习最重要的任务,是根据一些已观察到的证据(例如训练样本)来对感兴趣的未知变量(例如类别标记)进行估计和推测。概念模型提供了一种描述框架,将学习任务归结于计算变量的概率分布…

ffmpeg-AVPacket

目录 引子 翻译一下官方注释: 成员变量: AVBufferRef *buf pts dts data size stream_index flag side_data side_data_elems duration pos opaque opaque_ref time_base 引子 AVPacket是ffmpeg基础且非常重要的数据结构…

我国脐橙行业现状:种植面积、产量及市场规模不断增长 江西赣州是最大生产区

根据观研报告网发布的《2022年中国脐橙市场分析报告-市场全景评估与发展定位研究》显示,脐橙是芸香科,属柑橘亚科,是柑橘属植物甜橙的一类栽培品种,果皮难或稍易剥离,瓢囊9-12瓣,果心实或半充实&#xff0c…

ChatGPT

ChatGPT是由OpenAI开发的一个人工智能聊天机器人程序,于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并通过强化学习进行训练。目前,有部分地区(例如中国大陆、香港)无法使用此项服务,这里我就介绍一下中…

代码随想录训练营第55天|LeetCode 583. 两个字符串的删除操作、72. 编辑距离

参考 代码随想录 题目一:LeetCode 583. 两个字符串的删除操作 确定dp数组下标及其含义 为了方便dp数组的初始化,在整个分析问题的过程中在word1和word2的最前面添加空字符,注意,不是真正的添加,只是这么认为。 dp[i]…

大学英语笔记

words in use unit 1 The mayor condenseIt was reported exceedresearchers put deficittoo much————exposuremoving forward managerialthe lawyer adequateto help the competentmost parents,,,adjustingyou can count preciselyin …

工控CTF之协议分析8——特殊隧道

协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议有:Modbus、MMS、IEC60870、…

Python爬虫学习

文章目录前言概述简单爬虫requests模块⼊⻔数据解析re解析re模块总结前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 学习参考网站 概述 安全 爬⾍在法律上是不被禁⽌的 像王欣说过,技术是⽆罪的. 主要看你⽤它来⼲嘛 robots.tx…

经纬恒润以太网开发及测试方案,助力智能汽车落地

近年来,为了满足智能网联汽车的开发要求,车载以太网技术开始逐渐进入人们的视野。车载以太网可以满足带宽密集型应用如高级驾驶辅助系统(ADAS)、车载诊断系统(OBD)以及车载信息娱乐系统等所需的更高数据传输…

controlsfx框架NotificationPane组件的使用

controlsfx 是javaFx开源UI框架,里面有很多默认组件的补充,最近在使用其中的NotificationPane组件时,遇到一些问题,记录下来。 官方demo链接: https://github.com/controlsfx/controlsfx/blob/jdk-8/controlsfx-samp…

Unittest接口自动化分享

一、环境搭建 1. Python安装 1. 1Python(3.6.8版本) 下载地址 https://www.python.org/downloads/release/python-368/ 1.1.1 Windows系统 1. 下载1. 对前缀的说明:​ 以Windows x86-64开头的是 64 位的 Python 安装程序;​ …

Ubuntu+Qt下配置车牌识别系统EasyPR1.6环境

1.将EasyPR_v1.6.zip拷贝到虚拟机Ubuntu中 最好是在opt文件夹中 ,可使用 VMware tools 共享文件夹 远程连接工具 2.解压得到EasyPR文件夹 修改文件权限 chmod -R 777 EasyPR 3.查找/opt/EasyPR/include/easypr/config.h中 这边告诉我们,如果open…

【RL数学基础】概率论的基本概念:随机变量、概率密度函数、期望、随机抽样

文章目录1.随机变量(Random Variable)2.概率密度函数(Probability Density Function, PDF)3.期望(Expectation)4.随机抽样(Random Sampling)1.随机变量(Random Variable&…

新一代免费开源大型企业数智制造解决方案

国家加速推进信创产业的开源自主可控 信创产业,即信息技术应用创新产业,其包含了从信息化基础设施到底层系统,再到上层的应用软件,与信息化建设过程中涉及有关的全产业链都必须安全与可控。信创产业涉及到的领域包括信息化基础设施…

编译安装nmon

nmon 是什么? nmon(Nigel’s performance Monitor for Linux)是一种Linux性能监视工具,当前它支持 Power/x86/x86_64/Mainframe/ARM 这五种 CPU 架构的 Linux,能将监控到的数据保存为 JSON 格式便于其他工具进行分析和…

【探索Spring底层】13.深入DispatcherServlet

文章目录1. DispatcherServlet概述2. DispatcherServlet的初始化时机3. DispatcherServlet初始化执行的操作4. RequestMappingHandlerMapping 基本用途5. RequestMappingHandlerAdapter 基本用途6. 参数和返回值解析器1. DispatcherServlet概述 DispatcherServlet是SpringMVC的…

AMS启动流程——APP启动过程

AMS流程图 基本慨念 1.zygote zygote意为“受精卵“。Android是基于Linux系统的,而在Linux中,所有的进程都是由init进程直接或者是间接fork出来的,zygote进程也不例外。 在Android系统里面,zygote是一个进程的名字。Android是基…

Effective C++(三):资源管理

个人读书记录,不适用教学内容。 目录 条款13:以对象管理资源 条款14:在资源管理类中小心copying行为 条款15:在资源管理类中提供对原始资源的访问 条款16:成对使用new和delete时要采取相同形式 条款17&#xff1a…

cubeIDE开发, STM32实时时钟(RTC)写入及读取日历时间开发要点

一、RTC简介 实时时钟的缩写是RTC(Real_Time Clock),核心是晶振,晶振频率一般为32768 Hz 。它为分频计数器提供精确的与低功耗的实基信号。它可以用于产生秒、分、时、日等信息。为了确保时钟长期的准确性,晶振必须正常工作,不能够…

中小企业的公司财务管理系统

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 本课题研究对象是中小企业财务管理系统,设计采用自己开发实践和所学知 识,系统部分主要分为以下…