YOLO 格式数据集制作
目录
1. YOLO简介
2.分割数据集准备
3.代码展示
整理不易,欢迎一键三连!!!
1. YOLO简介
YOLO(You Only Look Once)是一种流行的目标检测和图像分割模型,由华盛顿大学的 Joseph Redmon 和 Ali Farhadi 开发。YOLO 的第一个版本于 2015 年发布,并因其高速度和准确性而迅速流行起来。
YOLO不同版本发行时间
| 版本 | 时间 |
| YOLOv1 | 2015 |
| YOLOv2 | 2016 |
| YOLOv3 | 2018 |
| YOLOv4 | 2020 |
| YOLOv5 | 2021 |
| YOLOv8 | 2022 |
以YOLOv5为例,说明同时支持图像分类、目标识别、图像分割的多任务网络训练的数据准备工作。这几天在网上找了好几天,一边摸索,一边准备自己的数据集,终于搞定了,记录下保姆级数据集准备的教程。

2.分割数据集准备
通常的分割任务中数据集都是一张原始影像对应一张同样尺寸的掩模图像,YOLO最开始是跑目标检测任务,因此常用的数据组织格式都是一张原始影像对应一个json掩膜文件或者一个TXT掩膜文件,这个看不同的目标检测数据格式就知道(COCO /VOC/......),今天以一张影像对应一个txt掩膜为例来做自己的数据集。
------> 
从原始的png掩膜转为YOLO需要的txt掩膜文件关键是找到txt文件中的内容和组织方式:

从上面实例txt文件 可以看到, 第一行的第一个值为“45”,代表类别是45,后面的一堆小数点(0.78...)代表被归一化后的多边形的x,y坐标,归一化的标准是按照原始影像大小进行归一化,比如原始像素坐标为(10,20),原始影像尺寸为100*100,那归一化后的像素坐标为(0.1,0.2)。
回车之后,第二行开始读取第二个目标的类别和位置,以此类推。
3.代码展示
from skimage import io
import cv2
import numpy as npdef mask_to_polygon(mask: np.array, report: bool = False) -> List[int]:contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)polygons = []for object in contours:coords = []for point in object:coords.append(int(point[0][0]))coords.append(int(point[0][1]))polygons.append(coords)if report:print(f"Number of points = {len(polygons[0])}")return np.array(polygons).ravel().tolist()mask = io.imread('/labels/xxx.png')
polygons = mask_to_polygon(mask, report=True)
函数返回得到的polygons就是一个存放了一张影像中所有目标的多边形位置了,要想得到最终的txt文件,别忘了在前面加上影像类别哦。
如果像简化掩膜要素,就是把距离较近的点删除一些,减少掩膜文件的大小,可以参考下面的文章。
参考:二进制掩膜转txt
官方给出的COCO128-seg数据集:下载链接
欢迎投票,整理不易,一键三连!!!
相关文章:
YOLO 格式数据集制作
目录 1. YOLO简介 2.分割数据集准备 3.代码展示 整理不易,欢迎一键三连!!! 1. YOLO简介 YOLO(You Only Look Once)是一种流行的目标检测和图像分割模型,由华盛顿大学的 Joseph Redmon 和 Al…...
基于linux内核的驱动开发
1 字符设备驱动框架 1.1字符设备 定义:只能以一个字节一个字节的方式读写的设备,不能随机的读取设备中中的某一段数据,读取数据需要按照先后顺序。(字符设备是面向字节流的) 常见的字…...
找不到工作的测试员一大把,大厂却招不到优秀软件测试员?高薪难寻测试工程师。
测试工程师招了快一个月了,实在招不到合适的,已经在被解雇的边缘了。。。” 初级测试工程师非常多,但真正掌握测试思维、能力强的优秀测试太少了! 据我所知, 当下的测试人员不少状态都是这样的: 在工作中…...
buuctf Basic
buuctf Basic 1.Linux Labs 根据提示我们可以知道需要远程连接linux服务器,这里使用xshell进行如下配置 输入ssh的用户名root,密码123456 连接成功 构造命令 ls …/ 查看文件 查看flag cat …/flag.txt 为flag{8fee8783-1ed5-4b67-90eb-a1d603a0208…...
赛狐ERP|亚马逊产品缺货怎么办?该如何补救?
由于物流时效的延长,运输成本的增加,亚马逊的仓储限制等各种原因,断货问题很常成为亚马逊卖家的普遍困扰。那么亚马逊产品缺货应该怎么办!1、提高产品价格:除了卖自己的Listing此外,提高产品价格也是一种保…...
《Elasticsearch源码解读与优化实战》张超-读书笔记
写在前面 好久没更新博客了,应届狗没办法啊╮(╯▽╰)╭为了秋招搞了小半年,从去年5月到现在搞了两段实习(京东、游戏公司),最终年前拿到一家还不错的offer,现在已经入职实习了,不出意外的话以…...
编码踩坑——运行时报错java.lang.NoSuchMethodError / 同名类加载问题 / 双亲委派【建议收藏】
本篇介绍一个实际遇到的排查异常的case,涉及的知识点包括:类加载机制、jar包中的类加载顺序、JVM双亲委派模型、破坏双亲委派模型及自定义类加载器的代码示例;问题背景业务版本,旧功能升级,原先引用的一个二方包中的du…...
软件测试选Python还是Java?
目录 前言 1、先从一门语言开始 2、两个语言的区别 3、两个语言的测试栈技术 4、如何选择两种语言? 总结 前言 对于工作多年的从业者来说,同时掌握java和Python两门语言再好不过,可以大大增加找工作时的选择范围。但是对于转行的人或者…...
“2023数据安全智能化中国行”活动,开幕即高能
工信部等16部门近日发布的《关于促进数据安全产业发展的指导意见》提出,到2025年,数据安全产业基础能力和综合实力明显增强,数据安全产业规模超过1500亿元,年复合增长率超过30%。到2035年,数据安全产业进入繁荣成熟期。…...
机器人操作规划——Deep Visual Foresight for Planning Robot Motion(2017 ICRA)
1 简介 model-based RL方法,预测Action对图像的变化,以push任务进行研究。 采用完全自监督的学习方式,不需要相机标定、3D模型、深度图像和物理仿真。 2 数据集 采用几百个物体、10个7dof机械臂采集了包括5万个push attempts的数据集。 每…...
go 连接redis集群
最近用redis shake做redis数据迁移,由于redis提供的客户端没有用于查看集群的工具,且我部署的redis集群是基于k8s来构建的,没有使用ingress做转发,所以只能在k8s内部访问集群,于是我先用gogin框架编写了访问redis集群的…...
LeetCode 146. LRU 缓存
原题链接 难度:middle\color{orange}{middle}middle 题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCacheLRUCacheLRUCache 类: LRUCache(intcapacity)LRUCache(int capacity)LRUCache(intcapacity) 以 正整数 …...
【mac】在m2 mbp上通过Parallels Desktop安装ubuntu22.04
文章目录前言一、参考文章二、版本信息三、方法1:通过ubuntu官网提供的iso安装3.1 配置服务器3.2 安装图形界面四、方法2:通过Parallels Desktop提供的安装包五、 小工具5.1 调整应用栏图标大小5.2 ubuntu获取mac的剪切板5.3 调整terminal字体大小5.4 安装samba5.5 ubuntu连接m…...
C++类和对象,初见类
坚持看完,结尾有思维导图总结 这里写目录标题C语言和 C 的区别类的定义类的初认识类的内容访问限定符类的作用域类的实例化类中的 this 指针总结C语言和 C 的区别 C 的祖师爷除了在 C语言的基础上化简了一些复杂操作 更为重要的是,两个语言实现的过程是…...
Redis常用数据结构及应用场景
1.总体结构 Redis中的数据,总体上是键值对,不同数据类型指的是键值对中值的类型。 2.string类型 Redis中最基本的类型,它是key对应的一个单一值。二进制安全,不必担心由于编码等问题导致二进制数据变化。所以redis的string可以…...
C++虚继承内存布局
C菱形继承内存布局 编译器:Visual Studio 2019 关于如何查看内存布局 B class B { public:B(): _ib(10), _cb(B){cout << "B()" << endl;}B(int ib, char cb): _ib(ib), _cb(cb){cout << "B(int,char)" << endl;}vi…...
IO模型--从BIO、NIO、AIO到内核select、poll、epoll剖析
IO基本概述 IO的分类 IO以不同的维度划分,可以被分为多种类型;从工作层面划分成磁盘IO(本地IO)和网络IO; 也从工作模式上划分:BIO、NIO、AIO;从工作性质上分为阻塞式IO与非阻塞式IO;…...
Zebec完成BNB Chain以及Near链上协议部署,多链化进程加速
从去年开始,Zebec 就开始以多链的形式来拓展自身的流支付生态,一方面向更多的区块链系统拓展自身流支付协议,即从Solana上向EVM链上对协议与通证等进行迁移与拓展。目前基本完成了在BNB Chain以及Near上的合约部署,且能够在这些EV…...
wpscan常见的使用方法
目录 简单介绍 暴力破解 信息收集 指定用户爆破 命令集合 简单介绍 Wordpress是一个以PHP和MySQL为平台的免费自由开源的博客软件和内容管理系统。 WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安…...
Tree 底层源码实现(二叉树、递归、迭代)
树(Tree)是一种非线性数据结构,由一组节点和它们之间的边组成。在树中,每个节点都有零个或多个子节点,除了根节点外,每个节点都有且仅有一个父节点。树可以被用于许多应用程序,如文件系统、XML文…...
Visual Studio AI助手深度集成:提升.NET开发效率的实战指南
1. 项目概述:当AI助手住进你的IDE 如果你是一名.NET开发者,每天大部分时间都在Visual Studio里度过,那你一定经历过这样的时刻:盯着一段复杂的业务逻辑,思考如何重构;或者为一个方法编写单元测试ÿ…...
开发AI应用时如何借助Taotoken进行多模型选型与测试
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 开发AI应用时如何借助Taotoken进行多模型选型与测试 在开发一个具体的AI应用功能时,选择合适的模型是影响最终效果与成…...
视频去水印工具推荐:免费视频去水印怎么弄?2026实测手机电脑好用方法全汇总
视频去水印工具推荐:免费视频去水印怎么弄?2026实测手机电脑好用方法全汇总 视频水印这件事,很多人都遇到过。从平台保存的视频自带LOGO角标,转发来的内容带着别人账号的水印,或者AI生成的视频角落挂着一串平台标识——…...
临近毕业答辩,有哪些真正好用的答辩PPT 生成软件能救急?
毕业答辩进入倒计时,论文刚定稿,却要熬夜做 PPT、理逻辑、排版式,一不小心就熬到凌晨,还容易出现内容跑偏、格式混乱、重点不突出等问题。其实,选对 AI PPT 生成工具,能帮你10 分钟搞定答辩 PPT,…...
Agent 一接通知中心就开始误清未读:从 Notification Scope 到 Action Claim 的工程实战
通知中心最容易被低估的,不是消息多,而是 Agent 明明只想处理一条提醒,最后却把整页未读一起清掉。⚠️ 这类事故会直接抹掉待办线索、告警入口和审批提醒。📩图 1:通知中心真正危险的不是消息多,而是动作作…...
如何用智能图像分层工具Layerdivider:从单张图片到专业PSD的完整指南
如何用智能图像分层工具Layerdivider:从单张图片到专业PSD的完整指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾为将单张插画转…...
2025年八大网盘直链下载助手:LinkSwift完整使用指南
2025年八大网盘直链下载助手:LinkSwift完整使用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...
中兴光猫工厂模式解锁指南:3步掌握zteOnu高级配置技巧
中兴光猫工厂模式解锁指南:3步掌握zteOnu高级配置技巧 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾因中兴光猫功能受限而困扰?普通用户界面隐藏了太…...
软件工程毕设简单的开题分享
文章目录🚩 1 前言1.1 选题注意事项1.1.1 难度怎么把控?1.1.2 题目名称怎么取?1.2 选题推荐1.2.1 起因1.2.2 核心- 如何避坑(重中之重)1.2.3 怎么办呢?🚩2 选题概览🚩 3 项目概览题目1 : 深度学习社交距离检…...
告别龟速下载:9大网盘直链解析工具的完整使用指南
告别龟速下载:9大网盘直链解析工具的完整使用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...
