一、json to txt

解决的问题

1)文件夹目录下有json格式数据和jpg数据,读取json数据时会报错

解决方法:增加json文件后缀判断

    for json_name in json_names:if json_name[-4:]=='json':
2)pandas数据用append增加行无效

解决方法:需要重新对pd进行赋值更新

label=label.append(new_label,ignore_index=True)
3)json数据坐标存在缺失,本应有四个值

报错:

    x2 = float((i['points'][1][0])) / img_w
IndexError: list index out of range

解决方法:使用try-except捕捉错误

4)pandas索引存在重复
if i['label'] not in label:new_label=pd.DataFrame(columns=['label'], data=[i['label']])label=label.append(new_label,ignore_index=True)

解决方法:

if (label['label'] != i['label']).all():
5)存储label名称到txt文件时,为缩略的形式

    txt_name = 'label.txt'  # 生成txt文件你想存放的路径txt_file = open(txt_name, 'w')txt_file.write(str(label['label'])+ '\n')

解决方法:

label.to_csv('label.txt', sep='\t', index=True)

二、源代码

import json
import os
import pandas as pddef convert(img_size, box):# dw = 1. / (img_size[0])# dh = 1. / (img_size[1])# x = (box[0] + box[2]) / 2.0 - 1# y = (box[1] + box[3]) / 2.0 - 1# w = box[2] - box[0]# h = box[3] - box[1]# x = x * dw# w = w * dw# y = y * dh# h = h * dhx1 = box[0]y1 = box[1]x2 = box[2]y2 = box[3]return (x1, y1, x2, y2)def decode_json(json_floder_path, json_name,label):txt_name = r'C:\Users\Tycoon\Desktop\Taxi invoice\train/' + json_name[0:-5] + '.txt'  # 生成txt文件你想存放的路径txt_file = open(txt_name, 'w')json_path = os.path.join(json_floder_path, json_name)data = json.load(open(json_path, 'r'))img_w = data['imageWidth']img_h = data['imageHeight']for i in data['shapes']:if i['shape_type'] == 'rectangle':if (label['label'] != i['label']).all():new_label=pd.DataFrame(columns=['label'], data=[i['label']])label=label.append(new_label,ignore_index=True)try:x1 = float((i['points'][0][0])) / img_wy1 = float((i['points'][0][1])) / img_hx2 = float((i['points'][1][0])) / img_wy2 = float((i['points'][1][1])) / img_hn = label[label['label']==i['label']].index[0]bb = (x1, y1, x2, y2)bbox = convert((img_w, img_h), bb)txt_file.write(str(n) + " " + " ".join([str(a) for a in bbox]) + '\n')except IndexError:print(json_name[0:-5]+'的'+i['label']+"标签坐标缺失")return labelif __name__ == "__main__":json_floder_path = r'C:\Users\Tycoon\Desktop\Taxi invoice\train_dataset\已标注训练集汇总'  # json文件的路径json_names = os.listdir(json_floder_path)label= pd.DataFrame(columns = ['label'])for json_name in json_names:if json_name[-4:]=='json':print(json_name)label=decode_json(json_floder_path, json_name,label)label.to_csv('label.txt', sep='\t', index=True) # 生成txt文件你想存放的路径

三、结果

1)原来json格式

2)txt格式

3)label.txt

Yolo训练自己的数据集,将json格式转换成txt文件格式相关推荐

  1. 实现pdf图片格式转换成txt文档的方法

    怎样才能将PDF转换成TXT文本? 遇到PDF与TXT转换的问题,我们该怎么办呢?之前尝试过手动用键盘打字,但是花费了很多的时间,完全不符合现代社会人的节奏,在这里,我主要讲解一种方法,就是关于如何从 ...

  2. python json格式转换_Python实现把json格式转换成文本或sql文件

    python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件? 下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件. [root@bogon ...

  3. JSON格式转换成XML格式

    第一种方法: 需要使用命名空间System.Runtime.Serialization.Json 下面有JsonReaderWriterFactory XmlDictionaryReader read ...

  4. YOLO训练自己的数据集的一些心得

    YOLO训练自己的数据集 YOLO-darknet训练自己的数据 [Darknet][yolo v2]训练自己数据集的一些心得----VOC格式 YOLO模型训练可视化训练过程中的中间参数 项目开源代 ...

  5. 用yolo训练自己的数据集(以车牌为例)

    我看了网上很多yolo教程,可能是因为电脑环境和配置的不一样,所以我并没有完全通过网上教程成功训练自己的数据集,接下来我将我自己完全亲自测试并且最后成功训练数据集的教程记录如下: 训练自己的数据集有如 ...

  6. Yolov5-5.0源码分享以及环境配置——Yolov5训练及测试教程(超详细含数据集制作,格式转换,数据集划分)

    yolov5-5.0百度网盘连接 链接: https://pan.baidu.com/s/1Hd2KKBixuEWRv3jcH6Bcsw 提取码: g6xf 复制这段内容后打开百度网盘手机App,操作 ...

  7. 如何利用python将NWPU VHR-10目标检测遥感数据集的格式转换成VOC目标检测数据集的格式

    VOC目标检测数据集的格式 其中图片存放在JPEGImages文件夹中,标注是xml文件,存储在Annotations文件中 关于train集和val集的txt划分存放在ImageSets文件夹下面的 ...

  8. python格式和JSON格式转换

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  9. BDD100K数据集简单解析以及格式转换成voc格式

    https://blog.csdn.net/qq583083658/article/details/86493752 BDD100K数据集之数据集下载 https://blog.csdn.net/qq ...

  10. WPI交通信号灯数据集格式转换成VOC2007

    WPI交通信号灯数据集格式转换成VOC2007 1.简述 初学交通信号灯目标检测时,总是苦于找不到合适的交通灯数据集.即使找到了数据集,也往往因为格式不同而无法直接使用.因为大部分目标检测代码都只支持 ...

最新文章

  1. RNN神经网络的输入输出维度的关系
  2. android信息中字符个数,在android中指定编辑文本中的字符数
  3. ストアドプロシージャ(存储过程)
  4. Shell(6)——if语句
  5. WEKA The workbench for machine learning
  6. Angular应用带参数的路由实现
  7. 【ACM】nyoj_305_表达式求值_201308081018
  8. 队列和消息队列_消息队列概述[幻灯片]
  9. leetcode—— 401. 二进制手表(使用到将数字转换为字符)
  10. spring aop使用
  11. from injection shell sql to_FROM SQL INJECTION TO SHELL: POSTGRESQL EDITION
  12. beeline hiveserver2 start
  13. 计算机数学公式画爱心教程,几何画板如何绘制爱心?几何画板爱心函数教程
  14. 3轴陀螺仪传感器和3轴加速度传感器的工作原理
  15. Elasticsearch构建全文搜索系统
  16. java图片去掉水印
  17. Linux C++编译及 静态/动态 链接库 笔记
  18. 微信小程序从前端wxml页面数据获取,到JS页面数据对象字符化,传递给后台,前台再从后台获取数据并在wxml页面动态展示数据(前后台交互实现发表动态功能)
  19. 逍遥模拟器拷贝android根目录文件,逍遥安卓模拟器怎样将已安装的镜像文件转移到别的磁盘上...
  20. DFT的一些基本性质

热门文章

  1. pyinstaller系列之十一:exe 反编译到 源码 尝试
  2. sop8封装尺寸图_IC封装原理及功能特性汇总
  3. js实现身份证验证功能
  4. 算法竞赛入门经典(第二版) —— 第一章 程序设计入门
  5. 大学生创新创业训练计划项目申请书
  6. halcon修改程序框字体大小
  7. C语言的中常用的函数
  8. 如果IE浏览器是IE11以下版本跳转到升级页面
  9. python手机版做小游戏代码大全-用Python设计一个经典小游戏
  10. android手机计步器开发,超精准的Android手机计步器开发