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/243388

相关文章

Redis与缓存解读

《Redis与缓存解读》文章介绍了Redis作为缓存层的优势和缺点,并分析了六种缓存更新策略,包括超时剔除、先删缓存再更新数据库、旁路缓存、先更新数据库再删缓存、先更新数据库再更新缓存、读写穿透和异步... 目录缓存缓存优缺点缓存更新策略超时剔除先删缓存再更新数据库旁路缓存(先更新数据库,再删缓存)先更新数

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

python中json.dumps和json.dump区别

《python中json.dumps和json.dump区别》json.dumps将Python对象序列化为JSON字符串,json.dump直接将Python对象序列化写入文件,本文就来介绍一下两个... 目录1、json.dumps和json.dump的区别2、使用 json.dumps() 然后写入文

Java中JSON字符串反序列化(动态泛型)

《Java中JSON字符串反序列化(动态泛型)》文章讨论了在定时任务中使用反射调用目标对象时处理动态参数的问题,通过将方法参数存储为JSON字符串并进行反序列化,可以实现动态调用,然而,这种方式容易导... 需求:定时任务扫描,反射调用目标对象,但是,方法的传参不是固定的。方案一:将方法参数存成jsON字

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训