2d关键点可视化 coco转h36m人体关键点

news/2024/12/12 21:45:29/

目录

coco转h36m人体关键点

opencv 2d关键点可视化


coco转h36m人体关键点

mhformer中有

def h36m_coco_format(keypoints, scores):assert len(keypoints.shape) == 4 and len(scores.shape) == 3h36m_kpts = []h36m_scores = []valid_frames = []for i in range(keypoints.shape[0]):kpts = keypoints[i]score = scores[i]new_score = np.zeros_like(score, dtype=np.float32)if np.sum(kpts) != 0.:kpts, valid_frame = coco_h36m(kpts)h36m_kpts.append(kpts)valid_frames.append(valid_frame)new_score[:, h36m_coco_order] = score[:, coco_order]new_score[:, 0] = np.mean(score[:, [11, 12]], axis=1, dtype=np.float32)new_score[:, 8] = np.mean(score[:, [5, 6]], axis=1, dtype=np.float32)new_score[:, 7] = np.mean(new_score[:, [0, 8]], axis=1, dtype=np.float32)new_score[:, 10] = np.mean(score[:, [1, 2, 3, 4]], axis=1, dtype=np.float32)h36m_scores.append(new_score)h36m_kpts = np.asarray(h36m_kpts, dtype=np.float32)h36m_scores = np.asarray(h36m_scores, dtype=np.float32)return h36m_kpts, h36m_scores, valid_frames

opencv 2d关键点可视化

import numpy as npimport cv2
import numpy as np
import jsonkpt_color_map = {'h': {'id': 0, 'color': [255, 0, 0], 'radius': 3, 'thickness': -1}, 'tail': {'id': 1, 'color': [0, 255, 0], 'radius': 2, 'thickness': -1}}# 点类别文字
kpt_labelstr = {'font_size': 1,  # 字体大小'font_thickness': 3,  # 字体粗细'offset_x': 20,  # X 方向,文字偏移距离,向右为正'offset_y': 10,  # Y 方向,文字偏移距离,向下为正
}labelme_path = r'E:\data\new_path\635_5225_02-1\input\0000.json'
with open(labelme_path, 'r', encoding='utf-8') as f:labelme = json.load(f)img_bgr=cv2.imread(r'E:\data\new_path\635_5225_02-1\input\0000.png')for each_ann in labelme['shapes']:  # 遍历每一个标注kpt_label = each_ann['label']  # 该点的类别for point in each_ann['points']:kpt_xy = pointkpt_x, kpt_y = int(kpt_xy[0]), int(kpt_xy[1])# 该点的可视化配置kpt_color = kpt_color_map[kpt_label]['color']  # 颜色kpt_radius = kpt_color_map[kpt_label]['radius']  # 半径kpt_thickness = kpt_color_map[kpt_label]['thickness']  # 线宽(-1代表填充)# 画圆:画该关键点img_bgr = cv2.circle(img_bgr, (kpt_x, kpt_y), kpt_radius, kpt_color, kpt_thickness)# 写该点类别文字:图片,文字字符串,文字左上角坐标,字体,字体大小,颜色,字体粗细img_bgr = cv2.putText(img_bgr, kpt_label, (kpt_x + kpt_labelstr['offset_x'], kpt_y + kpt_labelstr['offset_y']), cv2.FONT_HERSHEY_SIMPLEX, kpt_labelstr['font_size'], kpt_color, kpt_labelstr['font_thickness'])cv2.imshow('img',img_bgr)
cv2.waitKey(0)


http://www.ppmy.cn/news/1332995.html

相关文章

绿原酸市场调研:预计2029年将达到1.8亿美元

绿原酸是一种有机化合物,化学式为C16H18O9,是金银花的主要抗菌、抗病毒有效药理成分之一。绿原酸具有较广泛的抗菌作用,但在体内能被蛋白质灭活。与咖啡酸相似,口服或腹腔注射时,可提高大鼠的中枢兴奋性。可增加大鼠及…

C++ Qt day2

自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #include <io…

Linux基础指令大汇总

Linux的指令比较多&#xff0c;在学习的过程中要学会总结和归纳&#xff0c;同时结合实践多多使用&#xff0c;就像学数学一样&#xff0c;不是背过公式就等于掌握的&#xff0c;而是要知道在什么时候用&#xff0c;怎么用才是关键。 这篇文章会列举一系列常用的指令&#xff0…

AF700 NHS 酯,AF 700 Succinimidyl Ester,一种明亮且具有光稳定性的近红外染料

AF700 NHS 酯&#xff0c;AF 700 Succinimidyl Ester&#xff0c;一种明亮且具有光稳定性的近红外染料&#xff0c;AF700-NHS-酯&#xff0c;具有水溶性和 pH 值不敏感性 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;AF700 NHS 酯&#xff0c;AF 700 Succinimid…

算法训练营Day53(动态规划14)

1143.最长公共子序列 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 提醒 体会一下本题和 718. 最长重复子数组 的区别 class Solution:def longestCommonSubsequence(self, text1: str, text2: str) -> int:# 创建一个二维数组 dp&#xff0c;…

文献速递:人工智能医学影像分割--- 使用带有主动轮廓和CNN分类器的FCM对CT肺部图像进行分割

文献速递&#xff1a;人工智能医学影像分割— 使用带有主动轮廓和CNN分类器的FCM对CT肺部图像进行分割 01 文献速递介绍 肺是呼吸道中最重要的部分。肺的上呼吸道和下呼吸道是两个通道。身体的每个层面都需要氧气来维持健康生活。肺是位于我们胸部两个倒置的锥体中的海绵状、…

使用Python开发简单的聊天应用

使用Python开发一个简单的聊天应用。应用将允许多个用户之间进行实时文字聊天。 导入所需的库 首先导入一些构建该应用所需的Python库: import socket import select import errno import syssocket库用于网络通信select库用于实现异步I/Oerrno库将获取错误号sys库将提供一些…

音频格式之AAC:(3)AAC编解码原理详解

系列文章目录 音频格式的介绍文章系列&#xff1a; 音频编解码格式介绍(1) ADPCM&#xff1a;adpcm编解码原理及其代码实现 音频编解码格式介绍(2) MP3 &#xff1a;音频格式之MP3&#xff1a;(1)MP3封装格式简介 音频编解码格式介绍(2) MP3 &#xff1a;音频格式之MP3&#x…