yolov8 pose coco2yolo

import os
import json
from tqdm import tqdm
import argparseparser = argparse.ArgumentParser()
# 这里根据自己的json文件位置,换成自己的就行
parser.add_argument('--json_path',default=r'C:\Users\k167\Desktop\dataset\person_dataset/instances_val2017_person_3dataset_merged_hip.json', type=str,help="input: coco format(json)")
# 这里设置.txt文件保存位置
parser.add_argument('--save_path', default=r'C:\Users\k167\Desktop\dataset\person_dataset', type=str,help="specify where to save the output dir of labels")
parser.add_argument('--root', default=r'C:\Users\k167\Desktop\dataset\person_dataset', type=str,help="specify where to save the output dir of labels")
arg = parser.parse_args()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 = round(x * dw, 6)w = round(w * dw, 6)y = round(y * dh, 6)h = round(h * dh, 6)return (x, y, w, h)if __name__ == '__main__':json_file = arg.json_path  # COCO Object Instance 类型的标注ana_txt_save_path = arg.save_path  # 保存的路径root = arg.rootdata = json.load(open(json_file, 'r'))if not os.path.exists(ana_txt_save_path):os.makedirs(ana_txt_save_path)id_map = {}  # coco数据集的id不连续!重新映射一下再输出!with open(os.path.join(ana_txt_save_path, 'classes.txt'), 'w') as f:# 写入classes.txtfor i, category in enumerate(data['categories']):f.write(f"{category['name']}\n")id_map[category['id']] = i# print(id_map)# 这里需要根据自己的需要,更改写入图像相对路径的文件位置。list_file = open(os.path.join(ana_txt_save_path, 'train2017.txt'), 'w')for img in tqdm(data['images']):filename = img["file_name"]img_width = img["width"]img_height = img["height"]img_id = img["id"]head, tail = os.path.splitext(filename)ana_txt_name = head + ".txt"  # 对应的txt名字,与jpg一致# print(os.path.join(root,filename))# exit()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:box = convert((img_width, img_height), ann["bbox"])f_txt.write("%s %s %s %s %s" % (id_map[ann["category_id"]], box[0], box[1], box[2], box[3]))counter=0for i in range(len(ann["keypoints"])):if (i+1)%3 == 0 and (ann["keypoints"][i] == 2 or ann["keypoints"][i] == 1 or ann["keypoints"][i] == 0):f_txt.write(" %s " % format(ann["keypoints"][i],'6f'))counter=0else:if counter==0:f_txt.write(" %s " % round((ann["keypoints"][i] / img_width),6))else:f_txt.write(" %s " % round((ann["keypoints"][i] / img_height),6))counter+=1f_txt.write("\n")f_txt.close()# 将图片的路径写入train2017或val2017的路径# list_file.write('E:/edgeai-yolov5-yolo-pose/coco_kpts/images/train2017/%s.jpg\n' % (head))list_file.write(os.path.join(root,filename)+'\n')list_file.close()

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/208003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MQTT协议对比TCP网络性能测试模拟弱网测试

MQTT正常外网压测数据---时延diff/ms如下图: MQTT弱网外网压测数据 TCP正常外网压测数据 TCP弱网外网压测数据 结论: 在弱网场景下,MQTT和TCP的网络性能表现会有所不同。下面是它们在弱网环境中的对比: 连接建立:M…

【代码随想录刷题】Day20 二叉树06

文章目录 1.【654】最大二叉树1.1 题目描述1.2 解题思路1.3 java代码实现1.4 总结 2.【617】合并二叉树2.1 题目描述2.2 解题思路2.3 java代码实现 3.【700】二叉搜索树中的搜索3.1 题目描述3.2 解题思路3.3 java代码实现 4.【98】验证二叉搜索树4.1 题目描述4.2 解题思路4.3 j…

盘点11月Sui生态发展,了解Sui的近期成长历程!

11月是Web3的“回暖期”,行业持续展现增长趋势。Sui紧随行业脚步,开展了一系列生态活动。其中历时一个多月的Quest 3游戏活动顺利结束并公布奖励,在多地区成功举办Move和Sui生态黑客松&交流会,还有针对中文社区开发者教育的星…

Axure原型图表组件库,数据可视化元件(Axure9大屏组件)

针对Axure制作的大屏图表元件库,帮助产品经理更高效地制作高保真图表原型,是产品经理必备元件工具。现分享完整的组件库,大家一起学习。 本组件库的图表模块,已包含所有常用的图表,以下为部分组件截图示意。文末可下载…

TA-Lib学习研究笔记(九)——Pattern Recognition (2)

TA-Lib学习研究笔记(九)——Pattern Recognition (2) 形态识别的函数的应用,通过使用A股实际的数据,验证形态识别函数,用K线显示出现标志的形态走势,由于入口参数基本上是open, hig…

寒冬不再寒冷:气膜体育馆如何打造温馨运动天地

取暖季即将来临,随着气温逐渐下降,人们在寒冷的冬季里如何保持运动热情和身体的健康成为了一项挑战。而在这个时候,气膜体育馆成为了运动爱好者们的理想场所,提供如春般温暖舒适的运动环境。那么,让我们一起揭秘气膜体…

2024年SEO策略:如何优化您的知识库?

如今很多人在遇到问题时都会求助于谷歌。谷歌已经成为提供解决方案不可或缺的工具。作为全球搜索引擎的巨头,拥有大量用户流量。这就是为什么确保您的产品和服务在谷歌搜索结果中排名靠前是至关重要的,如果您想获得更多的客户,SEO是一个非常关…

Filed II 绘制超声 3D/2D 点扩散函数

点扩散函数可以较好地描述超声对成像目标分辨能力,利用 filed II 仿真工具实现点扩算函数 PSF 的 3D 和 2D 绘制。 定义换能器基本参数 f0=5e6; % Transducer center frequency [Hz] fs=100e6; % Sampling frequency [Hz] c=1540; % Speed of sound [m/s] width=0.15/1000

<Linux> 文件系统

目录 前言: 一、 磁盘 (一)磁盘的物理结构 (二)磁盘的物理存储结构 1. 数据存储 2. 存储结构 二、磁盘的逻辑抽象 三、磁盘信息 (一)具体结构 (二)重新认识目录…

SOLIDWORKS Flow Simulation电子机箱散热

这一次我们来聊聊电子冷却问题,以这个机箱散热问题为例,我们一般的散热设计要求是CPU不能超过80℃,北桥芯片温度不能超过85℃,南桥芯片不超过95℃。在实际情况下芯片内部的各处温度是不一样,面对与芯片级别的散热分析我…

mysql中MDL(元数据锁)的长事务读写阻塞如何解决

MDL,即元数据锁是什么,我们已经介绍过了 那其存在的长事务读写阻塞问题,一般是怎么解决的呢,主要有两种解决方法。 online ddl MySQL5.6开始,推出一项新功能Online DDL,在ALTER或者CREATE INDEX等语句后添…

【教学类-35-05】17号的学号字帖(A4竖版1份)

作品展示: 背景需求: 大四班17号男孩目前无法自主数学数字。他表示自己能够认识数字,但不会写。 保育老师说:我曾经教过他,抓着手示范的。但是他记不住。家里估计也不练习的。年龄还没到,下学期再看看能不…

有限空间作业中毒窒息事故频发,汉威科技创新方案护航

工贸企业有限空间是我国重大事故多发频发的重点领域之一,安全问题形势严峻。 有限空间是指封闭或者部分封闭、未被设计为固定工作场所,人员可以进入,通风不良,易造成有毒有害物质、易燃易爆气体积聚或者氧含量不足的空间&#xf…

excel做预测的方法集合

一. LINEST函数 首先,一元线性回归的方程: y a bx 相应的,多元线性回归方程式: y a b1x1 b2x2 … bnxn 这里: y - 因变量即预测值x - 自变量a - 截距b - 斜率 LINEST的可以返回回归方程的 截距(a) 和 斜…

jsp使用 分页专用工具

分页器,根据过来的参数计算当着页应当从哪一条记录开始显示,并且显示到哪。 PageUtils [pageSize5, currIndex1, totalCount166, totalPage34, startPosition0] PageUtils [pageSize5, currIndex5, totalCount166, totalPage34, startPosition20] PageUt…

5.10 Windows驱动开发:摘除InlineHook内核钩子

在笔者上一篇文章《内核层InlineHook挂钩函数》中介绍了通过替换函数头部代码的方式实现Hook挂钩,对于ARK工具来说实现扫描与摘除InlineHook钩子也是最基本的功能,此类功能的实现一般可在应用层进行,而驱动层只需要保留一个读写字节的函数即可…

得帆云助力容百科技构建CRM系统,实现LTC全流程管理

宁波容百新能源科技股份有限公司 宁波容百新能源科技股份有限公司(以下简称“容百科技”)于2014年9月建立,是高科技新能源材料行业的跨国型集团公司。专业从事锂电池正极材料的研发、生产和销售,于2019年登陆上交所科创板&#x…

Python 数据分析:日期型数据的玩转之道

更多资料获取 📚 个人网站:ipengtao.com 在数据分析的领域中,处理日期型数据是至关重要的一环。Python 提供了丰富的工具和库,使得对日期进行分析、处理、可视化变得更加轻松。本文将深入探讨 Python 中如何玩转日期型数据&#…

解读链上经济“一等公民”:加密AI代理的优势和前沿应用

机器人正在成为加密经济的“一等公民”,最近的案例就能印证这一趋势。 搜索者(Searchers)部署像Jaredfromsubway.eth这样的机器人,利用真人用户对便利的渴望在DEX抢先交易。Banana Gun和Maestro允许真人用户通过Telegram的便利进…

力扣每日一题day31[101. 对称二叉树]

给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:fals 思路 对于二叉树是否对称&#xff…