NW-UCLA骨架数据可视化
基本信息
NW-UCLA骨架数据 raw data下载链接。
每个视频都只有一个人。人身上设置了20个节点,如下图所示:
NW-UCLA骨架数据总共1484个样本,平均时长39.4帧,最长的有201帧,最短的只有1帧(a02_s09_e04_v03.json和a02_s09_e04_v02.json)。
记样本帧数为len:
0 < len < 10 ---> 10个样本
10 <= len < 30 ---> 683个样本
30 <= len < 50 ---> 445个样本
50 <= len < 100 ---> 269个样本
100 <= len < 150 ---> 65个样本
150 <= len ---> 12个样本
通常view1和view2作为training set,共1020个样本。view3作为validation set。NW-UCLA数据集总共包含10类动作,training set的各个动作的样本数目如下:(i表示第几类,count表示样本数)
validation set的各个动作的样本数目如下:
可视化程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import numpy as np import sys import json import random import math import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D file_json = open (r 'E:\CS\action_research\NW-UCLA\all_sqe\a01_s01_e00_v01.json' , 'r' ) data_dict = json.load(file_json) data = np.array(data_dict[ 'skeletons' ]) # shape (T, J, D). T: time step. J:joint. D:dimension. T, J, D = data.shape # 相邻各节点列表,用来画节点之间的连接线 hands = [ 7 , 6 , 5 , 4 , 2 , 8 , 9 , 10 , 11 ] legs = [ 15 , 14 , 13 , 12 , 0 , 16 , 17 , 18 , 19 ] trunk = [ 0 , 1 , 2 , 3 ] # 3D展示------------------------------------------------------------------------ n = 0 # 从第n帧开始展示 m = T # 到第m帧结束,n<m<T fig = plt.figure() # 先生成一块画布,然后在画布上添加3D坐标轴 plt.ion() for i in range (n, m): fig.clf() ax = Axes3D(fig, azim = - 10 , elev = 5 ) ax.scatter(data[i, :, 0 ], data[i, :, 2 ], data[i, :, 1 ], c = 'red' , s = 40.0 ) ax.plot(data[i, hands, 0 ], data[i, hands, 2 ], data[i, hands, 1 ], c = 'green' , lw = 2.0 ) ax.plot(data[i, legs, 0 ], data[i, legs, 2 ], data[i, legs, 1 ], c = 'green' , lw = 2.0 ) ax.plot(data[i, trunk, 0 ], data[i, trunk, 2 ], data[i, trunk, 1 ], c = 'green' , lw = 2.0 ) ax.set_xlabel( "X" ) ax.set_ylabel( "Y" ) ax.set_zlabel( "Z" ) ax.set_xlim( - 0.2 , 0.4 ) ax.set_ylim( 2.0 , 3.2 ) ax.set_zlim( - 1.0 , 1.0 ) plt.pause( 0.1 ) plt.ioff() plt.show() |
效果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2020-08-12 解决torch.save时遇到的UserWarning
2020-08-12 pytorch lstm 预测航空旅客数目