AlphaPose人体姿态识别之json文件解读

2023-10-20 00:30

本文主要是介绍AlphaPose人体姿态识别之json文件解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AlphaPose的json文件解读

本文记录下res的json文件坐标系以及一些参数的意思,有不足之处望指正。

待解读例子:

例如有如下json文件

[{"image_id": "1.jpg", 
"category_id": 1, 
"keypoints": [
654.6572265625, 88.31778717041016, 0.9614965915679932, 
659.4932861328125, 78.64559173583984,0.9357421398162842, 
644.9849853515625, 78.64559173583984, 0.9556339383125305, 
674.0015869140625, 93.15389251708984, 0.949504554271698, 
630.4766845703125, 88.31778717041016, 0.9443892240524292, 
688.5099487304688, 51.18710327148438, 0.9699893593788147, 
606.2962036132812, 146.3509979248047, 0.9314674735069275, 
698.18212890625, 223.72862243652344, 0.9512142539024353, 
591.7879028320312, 223.72862243652344, 244388937950134, 
698.18212890625, 286.5979309082031, 0.9363806247711182, 
586.9517822265625, 291.4340515136719, 0.9267269968986511, 
664.3294067382812, 296.2701416015625, 0.8407283425331116, 
611.13232421875, 296.2701416015625, 0.8530831933021545,
654.6572265625, 397.8282775878906, 0.9324217438697815, 
615.9683837890625, 392.9921569824219, 0.8931402564048767, 
644.9849853515625, 489.7142028808594, 0.891362190246582, 
620.8045043945312, 489.7142028808594, 0.8250412940979004],
"score": 3.1222591400146484, 
"box": [568.2610473632812, 41.407630920410156, 148.61181640625, 495.2166976928711],
"idx": [0.0]},

解读结果:

python代码

"image_id"		: int, 	# 该对象所在图片的id
"category_id"	: int, 	# 类别id,每个对象对应一个类别
"keypoints"     : [x1,y1,v1,...],  #keypoints是一个长度为3*k的数组,其中k是category中keypoints的总数量
(也就是说k是类别定义的关键点总数,如图我们实验的人体姿态关键点的k为17,所以获得的keypoints总数为51)。
每一个keypoint是一个长度为3的数组,第一和第二个元素分别是x和y坐标值,第三个元素是个标志位v。
"score"         : int,# 置信度 (一改)
"box"			: [x,y,width,height], 	# x,y为左上角坐标,width,height为框的宽高
"idx"           : [0.0]  ##打印关键点编号:    
cv2.circle(img, (cor_x, cor_y), 3, p_color[n], -1)
#cv2.circle()用于在任何图像上绘制圆。
#ima:所选的绘制圆的图像。
#(cor_x, cor_y):圆的中心坐标。坐标表示为两个值的元组,即(X坐标值,Y坐标值)#radius:3是圆的半径。
#p_color[n]:绘制的圆的边界线的颜色。对于BGR,我们通过一个元组。例如:(25500)为蓝色。
#thickness:圆边界线的粗细像素。厚度-1像素将以指定的颜色填充矩形形状。cv2.putText(img, f'{n}',  (cor_x+5, cor_y+5), cv2.FONT_HERSHEY_PLAIN, 2, (255, 0, 0), thickness=1)
#cv2.putText()用于在任何图像上添加文字。
#上述参数分别对应:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细

关键点分布图(一改):

在这里插入图片描述

这篇关于AlphaPose人体姿态识别之json文件解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243389

相关文章

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

MySQL之搜索引擎使用解读

《MySQL之搜索引擎使用解读》MySQL存储引擎是数据存储和管理的核心组件,不同引擎(如InnoDB、MyISAM)采用不同机制,InnoDB支持事务与行锁,适合高并发场景;MyISAM不支持事务,... 目录mysql的存储引擎是什么MySQL存储引擎的功能MySQL的存储引擎的分类查看存储引擎1.命令

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

如何正确识别一台POE交换机的好坏? 选购可靠的POE交换机注意事项

《如何正确识别一台POE交换机的好坏?选购可靠的POE交换机注意事项》POE技术已经历多年发展,广泛应用于安防监控和无线覆盖等领域,需求量大,但质量参差不齐,市场上POE交换机的品牌繁多,如何正确识... 目录生产标识1. 必须包含的信息2. 劣质设备的常见问题供电标准1. 正规的 POE 标准2. 劣质设

MySQL8.0临时表空间的使用及解读

《MySQL8.0临时表空间的使用及解读》MySQL8.0+引入会话级(temp_N.ibt)和全局(ibtmp1)InnoDB临时表空间,用于存储临时数据及事务日志,自动创建与回收,重启释放,管理高... 目录一、核心概念:为什么需要“临时表空间”?二、InnoDB 临时表空间的两种类型1. 会话级临时表

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本