json格式数据集转yolo txt格式

  • json文件格式
  • 代码
  • txt文件

网上相关代码大多针对COCO数据集的,但是有些非公共数据集没有coco相关的文件,只有每张图片对应的json文件,故本文代码针对每张图片的json文件转换为yolo需要的txt文件。

json文件格式

{"shape": [{"label": "class1","boxes": [367,209,537,339],"points": null},{"label": "class1","boxes": [73,597,230,807],"points": null},{"label": "class1","boxes": [410,680,634,888],"points": null},{"label": "class1","boxes": [705,389,835,753],"points": null},{"label": "class1","boxes": [1073,639,1329,959],"points": null},{"label": "class1","boxes": [1464,499,1616,801],"points": null},{"label": "class1","boxes": [1535,385,1742,513],"points": null},{"label": "class1","boxes": [1321,48,1573,178],"points": null},{"label": "class1","boxes": [1618,120,1757,247],"points": null},{"label": "class1","boxes": [1745,159,1877,386],"points": null},{"label": "class1","boxes": [1810,685,1962,793],"points": null},{"label": "class1","boxes": [1838,770,1972,918],"points": null},{"label": "class1","boxes": [1113,950,1391,1175],"points": null},{"label": "class1","boxes": [83,943,192,1156],"points": null},{"label": "class1","boxes": [110,1132,167,1307],"points": null},{"label": "class1","boxes": [129,1102,216,1302],"points": null},{"label": "class1","boxes": [164,1143,253,1350],"points": null},{"label": "class1","boxes": [218,1137,316,1372],"points": null},{"label": "class1","boxes": [286,1142,383,1369],"points": null},{"label": "class1","boxes": [323,1170,445,1426],"points": null},{"label": "class1","boxes": [359,1172,556,1437],"points": null},{"label": "class1","boxes": [530,1189,648,1447],"points": null},{"label": "class1","boxes": [592,1180,811,1458],"points": null},{"label": "class1","boxes": [651,1097,980,1243],"points": null},{"label": "class1","boxes": [848,1021,1115,1283],"points": null},{"label": "class1","boxes": [1007,1101,1284,1404],"points": null},{"label": "class1","boxes": [1042,1204,1278,1474],"points": null},{"label": "class1","boxes": [243,974,435,1117],"points": null}],"imagePath": "1.jpg"
}

代码

import json
import cv2
import os
all_classes={'class1':0,'class2':1}         ##类别列表,与训练配置文件中的顺序保持一致
savepath="./labels/"                                #txt文件存放位置
jsonpath="./train_json/"                        #json文件位置
imgpath="./train_img/"                        #图片位置,因为我的json文件中没有图片size,故需要读取图片得到size
json_files=os.listdir(jsonpath)
for i in json_files:infile=jsonpath+iwith open(infile,'r') as load_f:load_dict = json.load(load_f)                   #打开每个json文件outfile=open(savepath+load_dict["imagePath"][:-4]+'.txt','w')img_path=imgpath+load_dict["imagePath"]img=cv2.imread(img_path)size=img.shapeh_img,w_img=size[0],size[1]                 #得到图片sizefor item in load_dict["shape"]:print(item)label_int=all_classes[item['label']]print(infile)if not item['boxes']:continuex1,y1,x2,y2=item['boxes']print(label_int)print(x1,y1,x2,y2)x_center=(x1+x2)/2/w_imgy_center=(y1+y2)/2/h_imgw=(x2-x1)/w_imgh=(y2-y1)/h_imgoutfile.write(str(label_int)+" "+str(x_center)+" "+str(y_center)+" "+str(w)+" "+str(h)+'\n')outfile.close()

txt文件

0 0.220703125 0.17838541666666666 0.0830078125 0.08463541666666667
0 0.073974609375 0.45703125 0.07666015625 0.13671875
0 0.2548828125 0.5104166666666666 0.109375 0.13541666666666666
0 0.3759765625 0.3717447916666667 0.0634765625 0.23697916666666666
0 0.58642578125 0.5201822916666666 0.125 0.20833333333333334
0 0.751953125 0.4231770833333333 0.07421875 0.19661458333333334
0 0.800048828125 0.2923177083333333 0.10107421875 0.08333333333333333
0 0.70654296875 0.07356770833333333 0.123046875 0.08463541666666667
0 0.823974609375 0.11946614583333333 0.06787109375 0.08268229166666667
0 0.88427734375 0.17740885416666666 0.064453125 0.14778645833333334
0 0.9208984375 0.4811197916666667 0.07421875 0.0703125
0 0.93017578125 0.5494791666666666 0.0654296875 0.09635416666666667
0 0.611328125 0.6917317708333334 0.1357421875 0.146484375
0 0.067138671875 0.6832682291666666 0.05322265625 0.138671875
0 0.067626953125 0.7939453125 0.02783203125 0.11393229166666667
0 0.084228515625 0.7825520833333334 0.04248046875 0.13020833333333334
0 0.101806640625 0.8115234375 0.04345703125 0.134765625
0 0.13037109375 0.8167317708333334 0.0478515625 0.15299479166666666
0 0.163330078125 0.8173828125 0.04736328125 0.14778645833333334
0 0.1875 0.8450520833333334 0.0595703125 0.16666666666666666
0 0.223388671875 0.8492838541666666 0.09619140625 0.17252604166666666
0 0.28759765625 0.8580729166666666 0.0576171875 0.16796875
0 0.342529296875 0.8587239583333334 0.10693359375 0.18098958333333334
0 0.398193359375 0.76171875 0.16064453125 0.09505208333333333
0 0.479248046875 0.75 0.13037109375 0.17057291666666666
0 0.559326171875 0.8154296875 0.13525390625 0.197265625
0 0.56640625 0.8717447916666666 0.115234375 0.17578125
0 0.16552734375 0.6806640625 0.09375 0.09309895833333333

json格式数据集转yolo txt格式相关推荐

  1. 制作VOC格式数据集的train.txt、val.txt文件

    一.前言 在以前的文章中已经聊过 VOC数据集的组织结构 和 VOC格式数据集转yolo(darknet)格式. 当我们按照组织结构将自己的图片和xml标注文件放在指定文件夹下之后,在转换时我们还需要 ...

  2. labelme标注文件转coco json,coco json转yolo txt格式,coco json转xml, labelme标注文件转分割,boxes转labelme json

    参考:https://github.com/wkentaro/labelme 一.labelme标注文件转coco json 1.标注时带图片ImageData信息,将一个文件夹下的照片和labelm ...

  3. 【目标检测数据集汇总】YOLO txt格式各种数据集

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 [目标检测数据集汇总]目标检测YOLO txt格式数据集~各种数据集 前言 相关连接: 一.安全帽数据集(10755张,nc2) 二. ...

  4. 计算机英语词典 txt,英汉词典TXT格式英汉词典TXT格式.doc

    英汉词典TXT格式英汉词典TXT格式 英汉词典TXT格式.txt12思念是一首诗,让你在普通的日子里读出韵律来:思念是一阵雨,让你在枯燥的日子里湿润起来:思念是一片阳光,让你的阴郁的日子里明朗起来.a ...

  5. 如何转换为YOLO txt格式

    YOLO训练的label bbox格式是txt文档,如果是PASCAL VOC XML格式的文档或者其他类型文档,需要另外转换格式. YOLO格式要求 YOLO txt文档格式,它是由class id ...

  6. COCO数据集josn转txt格式

    1.coco_2104数据集 2.json格式转xml 3.xml转txt格式 思路: 把coco_train2014.json文件转换为xml; coco_label-6.py:将xml格式文件转换 ...

  7. python rtf转txt_将DOC、RTF格式文件批量转为TXT格式文件

    Windows 下将目录下所有文件下的文件 拷贝到一个目录中:搜索"." 安装python 及 win32com模块 pip install pypiwin32 创建LDA_RTF ...

  8. 【数据预处理】CoCo数据集标注文件.json转yolov5标注文件.txt格式

    下载pycocotools包(用于解析coco.json文件) 直接运行即可 from pycocotools.coco import COCO import numpy as np import t ...

  9. C语言文件操作(四)将txt格式汉字转化为txt格式16进制编码

    准备 将想要转换为16进制的文字保存为before.txt,与该程序放在同一目录下 举例 存好before.txt,运行程序后,将在同一目录下生成文件after.txt C代码 //文件操作1.cpp ...

  10. 从json提取数据,保存成txt格式

    前段时间有一个需求做文本语义匹配,但是公司的标注数据不够无监督学习效果不够好,只能使用开源的数据集.开源的数据集清洗成json格式,我们从json提取数据保存成txt格式方便后续的使用.JSON数据格 ...

最新文章

  1. windows phone 越狱教程:利用学生帐号解锁并部署软件教程(图文并茂)
  2. WINCE5.0下SQL server compact版本更新
  3. import-module的注意事项与NDK_MODULE_PATH的配置
  4. python第一题 引发的思考和学习
  5. 2020年python工资一般多少-2020届毕业生874万,这个岗位月薪2万竟无人问津...
  6. 博图能打开s7200吗_脚上有一个穴位,能帮你打开任督二脉,是真的吗?
  7. 解决Nvidia显卡控制面板闪退问题
  8. office2013打开出现配置进度
  9. html5 progressbar,jQuery进度条插件NUMBERPROGRESSBAR
  10. 华为路由器基本配置命令
  11. matlab如何导入大量数据
  12. 用flutter写一个抖音是什么体验?
  13. 你知道strong和b;i和em的区别吗?
  14. 塑造棋牌游戏文化内涵
  15. mac安装texstudio+mactex(texlive)2022+中文字体
  16. 上海迪士尼将推出虎年新春全新体验
  17. 传说之下怎么设置按键_《传说之下手机版》按键设置教程
  18. 凉面经-维恩贝特面试复盘
  19. 上网行为管理_上网行为管理如何预防以及屏蔽勒索病毒攻击
  20. axure流程图模式_Axure基础教程:产品流程图的制作方法详解

热门文章

  1. 【ROS】编译软件包packages遇到进度缓慢或卡死,使用swap
  2. matlab实现jpg图片转gif
  3. 晶振匹配电容容值计算总结
  4. 大学学python用记笔记吗_Python 应该怎么学?
  5. 电路交换、报文交换、分组交换各自的特点
  6. 宿主机上docker0 Linux 网桥设备是怎么来的?
  7. 洛必达法则介绍及使用注意点
  8. 社交app的变现方式有哪些?
  9. 20180511-面试感悟-要知其然还要知其所以然
  10. [Windows] 专业的家谱族谱制作软件My Family Tree v10.3.4