首页 > 其他分享 >YOLO训练自己的分割数据集,使用labelme标注的分割数据集产生的.json文件转化为YOLOv8识别的.txt文件。coco数据集格式转化为yolo数据集格式,json转化为txt文件。

YOLO训练自己的分割数据集,使用labelme标注的分割数据集产生的.json文件转化为YOLOv8识别的.txt文件。coco数据集格式转化为yolo数据集格式,json转化为txt文件。

时间:2025-01-23 16:02:48浏览次数:3  
标签:文件 roadscene val py json coco txt 数据

将labelme标注的分割数据集,转化为YOLOv8识别的.txt文件数据集分为两部分,第一部分先将labelme标注的分割数据集转化为coco格式的文件,第二步,在将coco格式的JSON文件转化为yolo格式的txt文件

第一部分:将labelme标注的分割数据集转化为coco格式的文件

第一步

首先建立一个文件夹mydataset,里面包含四个文件,文件夹里包含labelme2cocoAll.py,roadscene_val,roadscene_train,annotations这四个文件,其中roadscene_train里为作为训练集用的原始labelme标注的图片以及对应的JSON文件,roadscene_val里为作为验证集的图片和对应的JSON文件, annotations一开始为空。

labelme2cocoAll.py 文件的链接:
链接: https://pan.baidu.com/s/1NXLLR7tzDKtNfzEVB5ntxA?pwd=6666 提取码: 6666 

第二步

1. win+r ,输入CMD进入管理员模
2.  conda activate进入base环境
3.  conda info  --env,选择pytorch的环境
4.  然后cd Desktop\mydataset文件夹(因为直接建在桌面了)

第三步

annotations一开始为空,当执行

    python labelme2cocoAll.py roadscene_train --output roadscene_train.json

,之后出现出现save coco json  和roadscene_train.json后再执行下一句
    python labelme2cocoAll.py roadscene_val --output roadscene_val.json

之后出现save coco json  和roadscene_val.json
    会生成roadscene_train.json,roadscene_val.json这两个文件,,这两个文件就是转化为了coco格式,分别对应训练集和验证集,将这两个文件转移到annotations文件夹里

第二部分:COCO数据集转化为YOLO格式数据集

第一步:创建本地文件夹JSON2YOLO,克隆github上的文件

然后去github(需要梯子)克隆repo到本地   The https://github.com/ultralytics/COCO2YOLO repo contains code to convert JSON datasets into YOLO (darknet) format. The code works on Linux, MacOS and Windows

克隆repo到本地

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

执行

cd JSON2YOLO (路径换成自己的)

pip install -r requirements.txt

第二步,复制文件,并修改  两处  代码

复制文件general_json2yolo.py然后改名为my_json2yolo.py

修改my_json2yolo.py其中的两处代码:

第一处

if source == 'COCO': convert_coco_json('../mydataset/annotations', # directory with *.json use_segments=True, cls91to80=False),红色的地方换成自己annotations文件的路径

第二处

函数 def convert_coco_json(json_dir='../coco/annotations/', use_segments=False, cls91to80=False): 中修改一句,把‘-1’去掉。

#cls = coco80[ann['category_id'] - 1] if cls91to80 else ann['category_id'] - 1 # class

cls = coco80[ann['category_id'] - 1] if cls91to80 else ann['category_id'] # class

第三步,执行python my_json2yolo.py

执行 python my_json2yolo.py

接着会在 ..\JSON2YOLO\new_dir\labels  文件夹下产生roadscene_train和 roadscene_val子文件夹, roadscene_train和roadscene_val子文件夹下是各图片的YOLO格式的标注 文件。

标签:文件,roadscene,val,py,json,coco,txt,数据
From: https://blog.csdn.net/qq_50455054/article/details/145323563

相关文章

  • 698国网上位机-支持数据抄读
    698国网上位机使用说明表位配置,填写表号及串口号数据抄读页面 支持单帧报文解析和批量报文解析功能 事件抄读  「698国网上位机.zip」链接:https://pan.quark.cn/s/d3f3c068d7cf ......
  • 数据的验证
    笔记#isdigit()十进制的阿拉伯数字print('123'.isdigit())#Trueprint('一二三'.isdigit())#Falseprint('0b1010'.isdigit())#Falseprint('Ⅲ'.isdigit())#Falseprint('-'*20)#所有字符都数字print('123'.isnumeric(......
  • 数据分析和AI丨拒绝AI技术焦虑,工程领域AI应用的八大技巧
     现今,人们正在对科技发展以及AI技术进行无限探索,在这个过程中,很多工程师可能会感受到“有心无力”,很大程度是因为他们尚未实现自己的第一个可落地执行的人工智能(AI)应用案例。这个结果让人感到十分惊讶,因为目前在工程领域人们对AI的兴趣或投资并不缺乏。研究表明,86%的工......
  • C# SqlParameter设置值为0数据库实际为null的原因
    以前我也发现了这个问题,当时我是想通过SqlParameter插入一个int数据到数据库,类似下面这样 1MySqlParameter[]parameters=newMySqlParameter[]2{3newMySqlParameter("@order",0)4} 但是执行后,会发现数据库显示为null,当时没去细究原因,通过......
  • JAVA与数据结构-线性表
    目录一.线性表的概念二.线性表的关系及分类三.数组与顺序表四.链表1.静态链表(链表的的数组底层实现)2.循环链表3.双向链表五.栈1.栈的概念2.栈的底层实现3.共享空间栈4.逆波兰表达式(后缀表达式)5.栈与递归 六.队列1.队列概念2.队列的底层实现3.循环队列七.链......
  • 深入探讨存储过程的创建与应用:提高数据库管理效率的关键工具
    title:深入探讨存储过程的创建与应用:提高数据库管理效率的关键工具date:2025/1/23updated:2025/1/23author:cmdragonexcerpt:在数据驱动的商业环境中,数据库管理系统必须具备高效的操作能力。而存储过程作为一种封装的数据库逻辑,提供了一种有效的解决方案,以增强数据库......
  • 测试工程师效率提升系列第二篇:测试用例管理自动化——从 Excel 到结构化数据
    在测试工程师的日常工作中,测试用例管理是一个重要环节。很多团队仍然依赖于Excel表格来管理测试用例,包含用例描述、步骤、预期结果等内容。然而,这种方式存在以下痛点:难以复用:Excel文件往往是静态的,无法直接与自动化脚本关联。易出错:人工更新用例容易遗漏或引入错误,特......
  • 测试自我救赎第三式:彻底搞定接口测试和 Mock 数据,效率瞬间翻倍!
    在测试工程师的日常工作中,接口测试是不可或缺的一部分。然而,接口测试往往伴随着以下痛点:环境依赖:后端服务不稳定或无法访问时,接口测试无法正常进行。重复验证:需要频繁调用接口并对比返回的数据,耗费时间且容易出错。依赖数据难以构造:接口依赖的上下游数据复杂,难以快速准备测......
  • 苦逼测试第四式:测试环境自动化管理,从数据清理到环境初始化全搞定
    测试环境是测试工作的基石,但在实际项目中,测试环境的管理往往充满挑战:环境初始化困难:部署服务、安装依赖、配置测试数据等操作复杂且耗时。环境污染问题:多次测试后,数据库或文件系统可能残留脏数据,影响后续测试结果。多个环境切换麻烦:开发、测试和生产环境配置不同,容易因配置......
  • VIVO大数据面试题及参考答案
    说一下数组和链表的区别,并且阐述它们查找元素的复杂度分别是多少?存储方式:数组是一种连续存储的数据结构,在内存中占用一段连续的空间,每个元素按照顺序依次存储。链表的存储方式则不要求内存连续,它的每个节点包含数据域和指针域,通过指针将各个节点连接起来。插入和删除操作:......