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

目录

coco转h36m人体关键点

[opencv 2d关键点可视化](#opencv 2d关键点可视化)


coco转h36m人体关键点

mhformer中有

python 复制代码
def h36m_coco_format(keypoints, scores):
    assert len(keypoints.shape) == 4 and len(scores.shape) == 3

    h36m_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关键点可视化

python 复制代码
import numpy as np


import cv2
import numpy as np
import json


kpt_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 = point
        kpt_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)
相关推荐
天天进步20156 分钟前
[架构篇] 解构项目蓝图:Toonflow 的模块化设计与 AI 管道流转
人工智能·架构
龙文浩_6 分钟前
AI中NLP的深入浅出注意力机制 Seq2Seq 模型
人工智能·pytorch·深度学习·神经网络·自然语言处理
小饕6 分钟前
RAG 学习之-向量数据库与 FAISS 索引完全指南:从原理到选型实战
人工智能·rag·大模型应用
北京耐用通信7 分钟前
CC-Link IE转Modbus TCP集成实战:耐达讯自动化网关在五星级酒店节能改造中的应用
人工智能·物联网·网络协议·自动化·信息与通信
小超同学你好7 分钟前
面向 LLM 的程序设计 9:系统提示中的「能力边界」——减少越权与幻觉调用
人工智能·深度学习·语言模型
黑金IT8 分钟前
从“抽卡”到“工业化”:多模态 Harness 如何重塑 AI 内容生产的反馈闭环
人工智能·prompt·harness工程
模拟器连接器曾工9 分钟前
纸塑 表面缺陷视觉检测系统
计算机视觉·视觉检测·视觉检测系统·纸塑表面缺陷检测·视觉图像视觉
笨笨饿10 分钟前
# 52_浅谈为什么工程基本进入复数域?
linux·服务器·c语言·数据结构·人工智能·算法·学习方法
dtsola14 分钟前
小遥搜索生态新成员:一键导出钉钉文档,实现本地AI搜索
人工智能·ai编程·知识库·ai创业·独立开发者·个人开发者·一人公司
星爷AG I14 分钟前
18-9 预测心智(AGI基础理论)
人工智能·agi