如何用Matplotlib优雅地实现NTU |
您所在的位置:网站首页 › 人体骨架侧视图 › 如何用Matplotlib优雅地实现NTU |
目录
1.简介2.数据分析3.实现过程4.整体代码实现:5.说明
1.简介
骨架数据集由于其强鲁棒性而被广泛运用于动作识别和预测等领域,其中NTU RGB-D数据是最常用的骨架动作数据集。无论是在论文中描述自己的数据,亦或是分析特征变化过程,可视化都是必不可少的一步,本文将以NTU RGB-D数据集为基准使用Python的Matplotlib库对骨架数据进行可视化 2.数据分析NTU RGB-D的数据集非常规范,其文件后缀名为‘.skeleton’,用记事本直接打开结果如下: 从上到下依次为帧数、骨架数量(不超过2,即在该数据集上动作由1个或2个人完成)、骨架其他信息(原文指’bodyID’, ‘clipedEdges’, ‘handLeftConfidence’, ‘handLeftState’, ‘handRightConfidence’, ‘handRightState’,‘isResticted’, ‘leanX’, ‘leanY’, ‘trackingState’ )、一个骨架中有几个关节点、每个关节点的信息( ‘x’, ‘y’, ‘z’, ‘depthX’, ‘depthY’, ‘colorX’, ‘colorY’, ‘orientationW’, ‘orientationX’, ‘orientationY’, ‘orientationZ’, ‘trackingState’) 其中我们只需要其中的x,y,z即可(2D图只需要x和y),于是我们的程序大概为: 导入数据文件创建一个0填充列表用于存储数据循环每一帧,每一个骨架,每一个关节点将数据赋值给数组绘制,用散点图绘制骨架节点,用直线图绘制骨骼连接逐帧展示 3.实现过程首先导入依赖包和数据文件路径,设定好参数 import numpy as np import matplotlib.pyplot as plt file_name = r'C:\Users\lenovo\Desktop\visiual/S001C001P001R001A009.skeleton' max_V = 25 #节点数 max_M = 2 #骨架数量然后循环遍历获取关节点坐标信息 with open(file_name, 'r') as fr: frame_num = int(fr.readline()) point = np.zeros((3, frame_num, 25, 2)) for frame in range(frame_num): person_num = int(fr.readline()) for person in range(person_num): fr.readline() joint_num = int(fr.readline()) for joint in range(joint_num): v = fr.readline().split(' ') if joint |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |