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,一经查实,立即删除!

相关文章

Echarts运用之柱状图常见问题及案例代码

前言 ECharts 是一个开源的 JavaScript 可视化库,用于生成各种类型的图形和图表。其中,柱状图(Bar chart)是一种常见的图表类型,用于表示不同类别之间的数值比较。 初学者,可参考下我的另外一篇文章,从基础到深入,解读柱状图的运用。 Echarts之柱状图 常见问题及案例…

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

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

python文件读写

文章目录 读文件python2&python3差异示例代码 文件路径问题处理:字符编码报错 读文件 python2&python3差异 普通模式(python2、python3通用) f open(fileName, moder)open函数在python2和python3差异点: python3支持…

【代码随想录刷题】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生态黑客松&交流会,还有针对中文社区开发者教育的星…

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

MQTT正常外网压测数据---时延diff/ms如下图: MQTT弱网外网压测数据 QUIC正常外网压测数据 QUIC弱网外网压测数据 结论: 在弱网情况下,MQTT和QUIC(Quick UDP Internet Connections)这两种协议的网络性能表现也会有…

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

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

页面初始化后,需要滚动到某个元素的位置,但是该元素尚未渲染完成。

vue方式 <template><div class"doc"><!-- 判断是否还在渲染期间 --><div class"fixed" v-show"loading">页面仍在渲染中&#xff0c;请稍后</div><div class"green" v-show"!loading">…

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

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

反向传播算法

反向传播算法的数学解释 反向传播算法是深度学习中用于训练神经网络的核心算法。它通过计算损失函数相对于网络权重的梯度来更新权重&#xff0c;从而最小化损失。 反向传播的基本原理 反向传播算法基于链式法则&#xff0c;它按层反向传递误差&#xff0c;从输出层开始&…

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

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

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

如今很多人在遇到问题时都会求助于谷歌。谷歌已经成为提供解决方案不可或缺的工具。作为全球搜索引擎的巨头&#xff0c;拥有大量用户流量。这就是为什么确保您的产品和服务在谷歌搜索结果中排名靠前是至关重要的&#xff0c;如果您想获得更多的客户&#xff0c;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> 文件系统

目录 前言&#xff1a; 一、 磁盘 &#xff08;一&#xff09;磁盘的物理结构 &#xff08;二&#xff09;磁盘的物理存储结构 1. 数据存储 2. 存储结构 二、磁盘的逻辑抽象 三、磁盘信息 &#xff08;一&#xff09;具体结构 &#xff08;二&#xff09;重新认识目录…

SOLIDWORKS Flow Simulation电子机箱散热

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

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

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

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

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

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

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

消息中间件基本概念

基本概念 消息队列三个场景&#xff1a;异步&#xff0c;削峰&#xff0c;解耦 异步&#xff1a;将整个流程进行异步发送&#xff0c;也就是说本来顺序执行的程序化流程&#xff0c;异步后可以同时进行操作&#xff0c;互不影响&#xff0c;但保持最终结果一致性&#xff1b;…

ChatGPT颠覆性地改变了个性化学习

开发者欢呼,ChatGPT开启了教育的新时代教育者和学生都将从革命性的技术中受益ChatGPT是由OpenAI开发的强大的语言模型,它在个性化学习领域取得了重大突破。这一新的发展有望彻底改变教育的方式,使其更加定制化、有趣和有效。 开发者和教育者的重大新闻 这一消息对于一直努…