解决问题

1.将coco数据集中,annotations的json文件,读取,进行转为ID保持一致的txt文件。
2.解决COCO数据集中,类别不连续的问题

方法

from __future__ import print_function
import os, sys, zipfile
import jsonclass_num = 0
def convert(size, box):dw = 1. / (size[0])dh = 1. / (size[1])x = box[0] + box[2] / 2.0y = box[1] + box[3] / 2.0w = box[2]h = box[3]x = x * dww = w * dwy = y * dhh = h * dhreturn (x, y, w, h)json_file = '/Data/coco/annotations/instances_val2017.json'  # # Object Instance 类型的标注data = json.load(open(json_file, 'r'))
ana_txt_save_path = "/Data/coco/test2017"  # 保存的路径
if not os.path.exists(ana_txt_save_path):os.makedirs(ana_txt_save_path)index = 0
cat_id_map = {}
for img in data['images']:filename = img["file_name"]img_width = img["width"]img_height = img["height"]img_id = img["id"]ana_txt_name = filename.split(".")[0] + ".txt"  # 对应的txt名字,与jpg一致index +=1print(str(index) +'   '+str(ana_txt_name))f_txt = open(os.path.join(ana_txt_save_path, ana_txt_name), 'w')# 保存的文件for ann in data['annotations']:if ann['image_id'] == img_id:if ann['category_id'] not in cat_id_map:cat_id_map[ann['category_id']] = class_numclass_num += 1box = convert((img_width, img_height), ann["bbox"])f_txt.write("%s %s %s %s %s\n" % (cat_id_map[ann['category_id']], box[0], box[1], box[2], box[3]))f_txt.close()
fileObject = open('/Data/coco/val_cat_id_map.txt', 'w') # 类别进行重新映射
for cat_id in cat_id_map:  fileObject.write(str(cat_id))fileObject.write('\n')
fileObject.close()

Yolo-将coco数据集中的json文件转为txt且解决类别不连续问题相关推荐

  1. python批量修改labelme(COCO)标注的json文件的label标签名称

    python批量修改labelme(COCO)标注的json文件的label标签名称 在深度学习的实践中,使用labelme标注软件标注好数据集之后,如果标签的名称标注错误或者需要修改,庞大的数据量依 ...

  2. Python爬取的数据存为json文件,并读取

    Python爬取的数据存为json文件,并读取 import requests import time from lxml import etree import jsondef json_data_ ...

  3. 微信小程序云开发——常用功能2:操作云数据库一键批量导入数据(导入json文件)

    微信小程序云开发--常用功能2:操作云数据库一键批量导入数据(导入json文件) 今天我们要添加100条数据.下面的过程是先创建一条记录,然后导出这条数据看json文件中是如何编辑字段的,然后仿照这个 ...

  4. 数据藏在json文件中,如何爬取---以王者荣耀官网为例

    此前写了一个爬虫基础案例---爬取王者荣耀英雄与技能介绍 python爬虫------王者荣耀英雄及技能爬取并保存信息到excelhttps://blog.csdn.net/knighthood200 ...

  5. 【NER】CCL2021医疗命名体识别之数据预处理(处理.json文件)

    [NER]医疗命名体识别之数据预处理(处理.json文件) 数据来源:2021年中文计算语言学研究大会的智能对话诊疗评测比赛 任务: 根据提供的医患对话,(1)识别其中的药物和症状实体名称.(2)然后 ...

  6. 把汇集多个json文件的txt进行分割,然后批量修改文件名后缀

    数据类型,假设一个txt文件中有很多这样的数据: {"platform":"linux","kq_id":5,"device_id ...

  7. json文件转TXT文件

    语义分割数据集转YOLOv5数据集 json文件 转txt文件 import json import os import os.path''' 获取图片名称 ''' def image_id(root ...

  8. 批量将json文件转为jpg格式

    批量将json文件转为jpg格式 1.简介 labelme软件自带有将json文件转为jpg的代码,不过只限单张. 位于./cli/json_to_dataset.py. 2.批量生成代码 impor ...

  9. python图像文件处理——图像画框、剪切图像、json文件转txt

    目录导航 给图像画框 labels文件[可以不看 接口介绍 简单程序 剪切图像 接口介绍 简单程序 处理文件 json文件转txt 生成list文件 之前做一个AI项目,处理训练集时写了一些pytho ...

最新文章

  1. HTTP协议Etag详解
  2. 雷观(八):等我有钱了再付费,是一种很扯淡很没有远见的想法
  3. SpringBoot @Value、 @ConfigurationProperties 与 @EnableConfigurationProperties 使用
  4. sql with as 用法
  5. C语言程序设计 | 模拟实现内存操作函数:strncpy, strncat, strncmp, memcpy, memmove
  6. iframe嵌套的html高度,iframe 多层嵌套 无限嵌套 高度自适应的解决方案
  7. oc和java_oc与java c++语法区别
  8. oracle 字段对错,oracle 两表之间字段赋值错误解析
  9. springboot整合XXL-JOB实行动态定时任务
  10. 写bat文件,报系统找不到指定文件的处理方式
  11. linux命令 ---rm
  12. Win10 下Go语言和Goland的下载和环境配置
  13. 分享154个ASP源码,总有一款适合您
  14. JS-DOM对象--节点--添加图片的操作
  15. 谁是卧底服务器维护,问道手游8.9每周探案谁是卧底答案分享_蚕豆网新闻
  16. 【basler】Chapter2:balser二次开发
  17. html5下拉列表显示多列,多列网格样式下拉列表框美化jQuery插件
  18. 英语不好学不会Python?我觉得你需要详读这篇文章
  19. mysql 数据分析如何实现日报、周报、月报和年报?
  20. errors and 0 warnings potentially fixable with the `--fix` option.

热门文章

  1. centos 6 防火墙开启端口无效问题
  2. MongoDB学习笔记——数据库安装及配置
  3. 一次面试引发的思考(中小型网站优化思考)
  4. POJ 2420 A Star not a Tree?【爬山法】
  5. iOS UIKit:UITableView
  6. 面向对象基础回顾(二)
  7. 进入Windows的世界
  8. 双指针解决数组排序问题
  9. python 报ImportError: Install xlrd = 1.0.0 for Excel support错误
  10. Qt中Ui名字空间以及setupUi函数的原理和实现