使用Make Sense为YOLOv5-5.0制作自定义数据集及应用

news2024/11/18 6:47:47

详细可参考官方文档: 

​​​​​​​培训自定义数据 -Ultralytics YOLOv8 文档

0.使用Make Sense标注数据集

      我们在网页上随机下载五张图片用以演示如何使用Make Sense工具进行标注。下载图片存放在指定文件夹中,如下图所示。

Make Sense网页链接:

Make Sense

        进入上述网址,打开Make Sense网页,并点击 Get Started ,如下图所示。

      得到如下图,在下图中,我们点击该区域用以选择需要标注的图片。   

选择我们在网页上下载的五张图片,如下图所示。 

选择Object Detection(目标检测),如下图所示。 进入如下图所示界面,此时选择Load labels from file(左,表示先加载预先准备好的标签类别)或者Start Project(右,表示直接进入项目中)均可,我们来介绍这两个按钮的区别。

        若选择 Load labels from file,你需要在你的电脑中提前创建一个 Labels.txt (命名任意)文件,这个文件中包含你所下载图片的所有类别。比如说,我们刚刚下载的五张图片有人、狗、汽车这三个类别,那么你需要在这个Labels.txt文件中以如下的格式写入(注意:每个标签占一行)。

创建好后,点击该按钮,选中这个标签文件Labels.txt,然后进入项目即可。

若选择Start project这个按钮 ,则表示直接进入项目,如下图所示。左边栏展示了我们下载的五张图片,中间栏展示了对于指定图片进行标注操作,右边栏展示了以什么样的方式进行标注,这其中有Rect(矩形框)、Point(点)、Line(线)、Polygon(不规则图形)。

        我们以 Rect 选中图片中的小女孩,如上图白色区域所示,随后我们点击下图红色箭头所指进行标签类别划分。

随后我们选择下图中的➕。 

开始设置类别。 

         每设置一个,按下回车(Enter)进行第二个的设置,一共三个类别,如下图所示,设置完之后按下Accept。

然后选择相应的标签即可。 

        当然,这种方式是该工具内部编写标签类别,我们还可在如下图界面的时候直接点击➕进行标签类别的编写。

标注完成之后,我们需要导出我们标注好的数据集,如下图所示。

我们选择相应的格式。 

点击Export,将会直接下载,下载的是一个zip文件,我们对其解压缩,得到标签。

 我们任意打开一个.txt 文件,如下所示。

有两行代表有两个类别,0表示第一个类别,1表示第二个类别 ,我们刚刚设置第一个类别是狗,第二个类别是人,第三个类别是汽车。我们观察该标签对应的图片,如下图所示,有一个人和一只狗,两个类别。

0、1两行后面所对应的四个数据可按如下两图(官方文档的解释)理解。

​​​​​​​

 

1. 创建dataset.yaml

 我们按照上图所示来设置我们自己的yaml文件,如下图所示。

文件中的内容如下。 

# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: mydata/images/train  # 5 images
val: mydata/images/train  # 5 images 由于我们没有设置验证集,在这里出于演示作用,我们使用训练集当作验证集

# number of classes
nc: 3

# class names
names: [ 'dog', 'person', 'car' ]

注意:

        train后面是训练集的路径,val后面是验证集的路径 ,mydata/images/train中的train文件夹存放的是我们刚刚下载好的五张图片。

        nc表示类别数,赋值为3(因为五张图片中只出现了汽车、人、狗这三个类别),names表示类别名称。

2. 创建标签Labels

我们在第0步已经详细地解释了如何使用 make sense 创建标签。 

3. 整理目录

        我们在项目文件夹中创建一个存放我们自定义数据的文件夹mydata,然后在该文件夹下创建images文件夹和labels文件夹,在这两个文件夹下分别创建train文件夹和test文件夹。

        将我们在网页上下载的五张图片放在images文件夹下的train文件夹中用于训练, 将make sense导出来的标注文件放在labels中的train文件中。有如下图所示。

经过以上步骤后,我们在官方下载的 yolov5-5.0 代码中的 train.py 文件中指定代码处进行修改,如下所示,将data/coco128.yaml修改成mydata.yaml(我们在第1步创建的文件)即可。 

 随后,即可训练。

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

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

相关文章

【自监督学习算法】

【自监督学习算法】 什么是自监督学习 (SSL) 算法? 自监督学习 (SSL)是一种不断发展的机器学习技术,旨在解决过度依赖标记数据带来的挑战。多年来,使用机器学习方法构建智能系统在很大程度上依赖于高质量的标记数据。因此,高质量注释数据的成本是整个训练过程中的主要…

【Flutter 面试题】await for 如何使用?

【Flutter 面试题】await for 如何使用? 文章目录 写在前面解答补充说明完整代码示例运行结果详细说明 写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51…

01 数据结构引入 和 顺序表

阅读引言: 从本文开始给大家带来我在复习过程中写的数据结构的代码, 分享给需要的同学 一、数据结构引入 1.数据结构解决什么问题 数据结构可以将杂乱无章的数据管理起来, 提高数据的访问效率 计算机处理的对象(数据&#xff09…

Jsp在Javaweb中扮演什么角色?

1.什么是Jsp JSP(Java Server Pages,Java 服务器页面)是一种动态网页技术,它允许在 HTML 页面中嵌入 Java 代码,并由 Web 服务器在请求页面时动态生成 HTML 页面。JSP 通常用于创建动态 Web 内容,如交互式表…

幻兽帕鲁服务器搭建运行遇到的问题详解

幻兽帕鲁服务器搭建运行遇到的问题详解 大家好我是艾西,在个人玩家搭建幻兽帕鲁时会遇到些小问题。今天艾西给把这些问题全部罗列出来并给到解决方案,需要的小伙伴可以通过本篇文章进行详细的解读。 服务器搭建无法进入/服务器搭建失败:这个出…

Android Kotlin知识汇总(一)编程语言

在 2019 年 Google I/O 大会上宣布今后将优先采用 Kotlin 进行 Android 开发。Kotlin 是一种富有表现力且简洁的编程语言,不仅可以减少常见代码错误,还可以轻松集成到现有应用中。如果您想构建 Android 应用,建议您从 Kotlin 开始着手&#x…

ComfyUI中如何自动获取当前日期

之前也介绍过,生成的文件夹是可以直接获取当前的日期,作为文件名进行保存的。但是如果你想获得当前的日期,然后写入到图片上的话,这个需求可能比较小众,查了半天资料,找到一个节点刚好能适配这个需求&#…

软件设计师16--段页式存储

软件设计师16--段页式存储 考点1:页式存储存储管理 - 页式存储组织存储管理 - 页面置换算法例题: 考点2:段式存储存储管理 - 段式存储组织例题: 考点1:页式存储 存储管理 - 页式存储组织 页式存储:将程序…

一体机电脑辐射超标整改

电脑一体机是目前台式机和笔记本电脑之间的一个新型的市场产物,它将主机部分、显示器部分整合到一起的新形态电脑,该产品的创新在于内部元件的高度集成。随着无线技术的发展,电脑一体机的键盘、鼠标与显示器可实现无线链接,机器只…

阿里云最新优惠券领取入口及使用指南

随着云计算技术的普及与服务升级,阿里云作为全球领先的云服务提供商,不断推出各类优惠活动以降低企业和个人用户上云成本。本文将详细介绍阿里云最新优惠券的领取入口以及如何有效地使用优惠券。 一、阿里云优惠券领取入口 阿里云优惠券一般可以通过阿里…

Nodejs 第五十四章(net)

net模块是Node.js的核心模块之一,它提供了用于创建基于网络的应用程序的API。net模块主要用于创建TCP服务器和TCP客户端,以及处理网络通信。 TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,用于…

【DataWhale学习】用免费GPU线上跑chatGLM项目实践

用免费GPU线上跑chatGLM项目实践 ​ DataWhale组织了一个线上白嫖GPU跑chatGLM与SD的项目活动,我很感兴趣就参加啦。之前就对chatGLM有所耳闻,是去年清华联合发布的开源大语言模型,可以用来打造个人知识库什么的,一直没有尝试。而…

【开源】SpringBoot框架开发公司货物订单管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…

机械女生,双非本985硕,目前学了C 基础知识,转嵌入式还是java更好?

作为单片机项目开发的卖课佬,个人建议,先转嵌入式单片机开发方向,哈哈。 java我也学过,还学过oracle、mysql数据库,只是当时没做笔记,找不好充分的装逼证据了。 从实习通过业余时间,学到快正式毕…

牛客-DP38 【模板】二维差分

【模板】二维差分_牛客题霸_牛客网 (nowcoder.com) b站有视频:讲解前缀和和差分 二维差分_哔哩哔哩_bilibili 注意:差分的过程叫差分,而不仅仅是d[]这个数组,其他数组经行了差分的操作,就也是差分啊!&…

力扣热题100_矩阵_73_矩阵置零

文章目录 题目链接解题思路解题代码 题目链接 73.矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&…

安卓上架华为踩坑合集

1.如果是离线打包,注意在manifest那里修改: android:debuggablefalse2…您的应用targetsdk版本低于30,不符合华为应用市场审核标准。 修改建议:请您将应用targetsdk等级升级到30或30以上。 因为之前我升到30被打回来过&#xff…

Live800:企业如何与客户建立长期、稳定关系,实现双赢

在当今的商业环境中,企业不仅需要吸引新客户,更需要与现有客户建立长期、稳定的关系。这样的关系可以带来持续的收入,提高企业的利润性。然而,如何建立和维护这样的关系呢?文章将从三个方面进行深入探讨:提…

C语言之文件操作(万字详解)

个人主页(找往期文章包括但不限于本期文章中不懂的知识点): 我要学编程(ಥ_ಥ)-CSDN博客 目录 前言 文件的打开和关闭 流和标准流 文件指针 文件的打开和关闭 文件的顺序读写 顺序读写函数介绍 fputc的使用 fgetc的使用 fput…

【Python学习篇】Python基础入门学习——Python基础语法(二)

个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:Vir2021GKBS 🐼本文由…