当前位置: 首页 > news >正文

coco json 改名字 划分验证集

目录

coco json 改名字 花粉征集 独立文件版

划分训练集,验证集 包括json(汇总版)


coco json 改名字 花粉征集 独立文件版

import json
import os
import random
import shutilimport numpy as npclass MyEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, np.integer):return int(obj)elif isinstance(obj, np.floating):return float(obj)elif isinstance(obj, np.ndarray):return obj.tolist()else:return super(MyEncoder, self).default(obj)def to_val(dir_a,target_dir,copy_mode=2):# dir_a=r'F:\data\jupiter\det_no\wujian_det'os.makedirs(target_dir, exist_ok=True)img_files = ['%s/%s' % (i[0], j) for i in os.walk(dir_a) for j in i[-1] if j.endswith(('jpg', 'png', 'jpeg'))]random.shuffle(img_files)length = len(img_files)part1 = int(length * 1 / 9)list1 = img_files[:part1]for index, img_file in enumerate(list1):json_path = img_file.replace('.jpg', '.json')if os.path.exists(json_path):if copy_mode == 1:shutil.copy(json_path, target_dir)if copy_mode == 2:shutil.move(json_path, target_dir)if copy_mode == 1:shutil.copy(img_file, target_dir)if copy_mode == 2:shutil.move(img_file, target_dir)def rename_json(dir_ar):file_list = ['%s/%s' % (i[0].replace("\\", "/"), j) for i in os.walk(dir_ar) for j in i[-1] ifj.endswith(('json', 'apng'))]for lb_file in file_list:annotation = json.load(open(lb_file, "r", encoding="utf-8"))shapes = annotation['shapes']for shape in shapes:if shape["label"]=="aa":shape["label"]="dao"print(lb_file)json.dump(annotation, open(lb_file, 'w'), indent=4, cls=MyEncoder)  # indent=4 更加美观显示if __name__ == '__main__':dir_ar=r'F:\data\qijun\video_dao\dai\00_det'target_dir=r'F:\data\qijun\video_dao\dai\00_det_val'# rename_json(dir_ar)to_val(dir_ar, target_dir,copy_mode=2)

划分训练集,验证集 包括json(汇总版)

import json
import os
import random
import shutilimport cv2from skimage.metrics import structural_similarity as ssimdef split_step_3():dir_a=r'F:\data\jupiter\det_no\wujian_det\train'dir_a=r'F:\data\jupiter\det_no\wujian_det'img_files = ['%s/%s' % (i[0], j) for i in os.walk(dir_a) for j in i[-1] if j.endswith(('jpg', 'png', 'jpeg'))]random.shuffle(img_files)total = 8 + 2 + 5  # 总比例length = len(img_files)part1 = int(length * 8 / total)part2 = int(length * 2 / total)list2 = img_files[part1:part1 + part2]list3 = img_files[part1 + part2:]gropus=[list2,list3]print(len(list2),len(list3))targets=[r'F:\data\jupiter\det_no\wujian_det\val',r'F:\data\jupiter\det_no\wujian_det\test']copy_mode=1for index, group in enumerate(gropus):target_dir = targets[index]os.makedirs(target_dir, exist_ok=True)print(index, target_dir)for img_file in group:json_path = img_file.replace('.jpg', '.json')if os.path.exists(json_path):if copy_mode == 1:shutil.copy(json_path, target_dir)if copy_mode == 2:shutil.move(json_path, target_dir)if copy_mode == 1:shutil.copy(img_file, target_dir)if copy_mode == 2:shutil.move(img_file, target_dir)def to_val():# dir_a=r'F:\data\jupiter\det_no\wujian_det'img_files = ['%s/%s' % (i[0], j) for i in os.walk(dir_a) for j in i[-1] if j.endswith(('jpg', 'png', 'jpeg'))]random.shuffle(img_files)length = len(img_files)part1 = int(length * 1 / 10)list1 = img_files[:part1]# target_dir=r'F:\data\jupiter\det_no\wujian_det\val'os.makedirs(target_dir, exist_ok=True)copy_mode=2for index, img_file in enumerate(list1):json_path = img_file.replace('.jpg', '.json')if os.path.exists(json_path):if copy_mode == 1:shutil.copy(json_path, target_dir)if copy_mode == 2:shutil.move(json_path, target_dir)if copy_mode == 1:shutil.copy(img_file, target_dir)if copy_mode == 2:shutil.move(img_file, target_dir)def splist_check_data(json_paths):img_paths=[]for json_path in json_paths:with open(json_path,'r',encoding='utf-8') as f:data=json.load(f)tmp_paths = list(data.keys())img_paths.extend(tmp_paths)img_name_d={}for img_path in img_paths:base_name=os.path.basename(img_path)if base_name in img_name_d:img_name_d[base_name]=[img_path]else:if img_path in img_name_d[base_name]:print('img repeat',img_path)else:img_name_d[base_name].append(img_path)img_files = ['%s/%s' % (i[0], j) for i in os.walk(dir_a) for j in i[-1] if j.endswith(('jpg', 'png', 'jpeg'))]for img_path in img_files:img_name = os.path.basename(img_path)if img_name in img_name_d:img_paths = img_name_d[img_name]if len(img_paths)==2:img_t=cv2.imread(img_path)img_t = cv2.resize(img_t, (320, 180))for idnex, img_tmp in enumerate(img_paths):img_from =cv2.imread(img_tmp)img_from=cv2.resize(img_from,(320,180))v_ssim = ssim(img_from, img_t, win_size=5, channel_axis=2)if v_ssim > 0.9:shutil.copy2(img_tmp, img_path)print('ssim',idnex,img_tmp,img_path)breakelse:shutil.copy2(img_paths[0],img_path)else:print('errr',img_path)if __name__ == '__main__':dir_a = r'/data5/lbg/data/ice_hebing/data_det/aaa_2/'target_dir = r'/data5/lbg/data/ice_hebing/data_det/val/aaa_2/'json_paths=[r'/data5/lbg/project/detect/yolov5_wx_ice/det_check/train_JupiterCN_20230916_det_err.json',r'/data5/lbg/project/detect/yolov5_wx_ice/det_check/val_JupiterCN_20230916_det_err.json']# json_paths=[r'val_JupiterCN_20230916_det_err.json',r'val_JupiterCN_20230916_det_err.json']copy_mode = 2splist_check_data(json_paths)# to_val()

相关文章:

  • Mongodb在UPDATE操作中使用$push向数组中插入数据
  • 简单介绍vim
  • PostgreSQL查看表的大小
  • 性能工具之 JMeter 常用组件介绍(八)
  • Python3发送邮件如何添加附件?怎么配置?
  • Python抓取天气信息
  • SQL AND OR 运算符的使用与区别
  • 全域外卖系统源码部署怎么做,外卖市场新机遇!
  • 护眼灯哪些牌子好?一文刨析护眼灯怎么选择!
  • 通用大模型VS垂直大模型,你更青睐哪一方?
  • 神经网络模型---ResNet
  • 一个基于MySQL的数据库课程设计的基本框架
  • 通过防抖动代码解决ResizeObserver loop completed with undelivered notifications.
  • Java基础学习-方法
  • ByteTrack跟踪理解
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【翻译】babel对TC39装饰器草案的实现
  • C学习-枚举(九)
  • egg(89)--egg之redis的发布和订阅
  • Electron入门介绍
  • ES2017异步函数现已正式可用
  • github从入门到放弃(1)
  • Java 多线程编程之:notify 和 wait 用法
  • JavaWeb(学习笔记二)
  • Python爬虫--- 1.3 BS4库的解析器
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 大数据与云计算学习:数据分析(二)
  • 给github项目添加CI badge
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于组件的设计工作流与界面抽象
  • 解析 Webpack中import、require、按需加载的执行过程
  • 一份游戏开发学习路线
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • # include “ “ 和 # include < >两者的区别
  • #QT 笔记一
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (一)appium-desktop定位元素原理
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (一)Thymeleaf用法——Thymeleaf简介
  • (杂交版)植物大战僵尸
  • (转)Linux整合apache和tomcat构建Web服务器
  • .net 7和core版 SignalR
  • .Net mvc总结
  • .Net 应用中使用dot trace进行性能诊断
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net6使用Sejil可视化日志
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • .sh
  • @Async 异步注解使用
  • [ 转载 ] SharePoint 资料