NTU60-XSub 是ai人体动作识别最经典的标准数据集,专门用来练模型、做实验、发论文。ST-GCN、2s-AGCN、MSG3D、Pose-Former、行为识别、图卷积网络跑标准对比实验
NTU60-XSub 是人体动作识别最经典的标准数据集专门用来练模型、做实验、发论文。能干什么人体骨骼动作识别识别人体在做什么动作走路、坐下、挥手、喝水、摔倒、握手 等一共60 种日常动作。主要给这些模型用ST-GCN、2s-AGCN、MSG3D、Pose-Former、行为识别、图卷积网络 都拿它跑标准对比实验。XSub 作用就是固定的训练/测试划分规则用一部分人的动作训练模型用完全没见过的另一批人测试用来检验模型能不能泛化到陌生人的动作。适合什么场景做基于骨骼的行为识别、姿态分析做人机交互、监控异常行为检测、机械臂视觉控制研究生/毕设/发论文 跑基线、对比模型精度简单总结你下载的NTU60Xsub现成的60类人体动作骨骼数据 标准跨人物训练测试划分拿来直接喂给动作识别模型训练、测试、跑准确率、做对比实验用的。下面把NTU60‑XSubCross‑Subject给你讲清楚从数据集含义、下载、目录结构到怎么用一次性说明白你自己下的原始数据也能对应上。1. NTU60 与 XSub 是什么NTU60NTU RGBD 6060 类动作共56,880 个样本40 个演员subject3 个 Kinect 相机同时拍摄每个样本包含RGB 视频、深度图、3D 骨骼25 个关节、红外图XSubCross‑Subject跨主体划分按演员 ID 划分训练/测试训练20 个演员 →40,320 样本测试剩下 20 个演员 →16,560 样本训练集演员 ID1,2,4,5,8,9,13,14,15,16,17,18,19,25,27,28,31,34,35,38目的训练和测试的人完全不重叠验证模型泛化到新主体的能力。2. 你自己下载的 NTU60 XSub 原始数据长什么样2.1 官方原始骨骼数据你大概率下的是这个从官网申请后下载nturgbd_skeletons_s001_to_s017.zip→ NTU60 骨骼数据所有主体解压后大概是nturgbd_skeletons/ ├── S001C001P001R001A001.skeleton ├── S001C001P001R001A002.skeleton └── ...文件名含义Sxxxsubject演员IDCxxxcamera相机IDPxxxperformer同主体下编号Rxxxrepetition动作重复次数Axxxaction动作类别1~602.2 处理好的 XSub 划分常用于 ST‑GCN 等网上常见的预处理好的版本如 PaddleVideo、ST‑GCN 提供结构是NTU-RGB-D/ ├── xsub/ │ ├── train_data.npy │ ├── train_label.pkl │ ├── val_data.npy │ └── val_label.pkl └── xview/ └── ...train_data.npy(N, C, T, V, M) → 样本数×3×帧数×25关节×1/2人train_label.pkl对应标签3. 怎么把你自己下的原始数据转成 XSub 训练/测试集核心逻辑遍历所有.skeleton文件从文件名提取Sxxx主体ID和Axxx动作ID按XSub 训练主体ID列表分到训练集其余到测试集解析骨骼文件整理成(C, T, V, M)格式保存为.npy.pkl伪代码思路Pythontrain_subjects{1,2,4,5,8,9,13,14,15,16,17,18,19,25,27,28,31,34,35,38}train_data,train_label[],[]val_data,val_label[],[]forfileinall_skeleton_files:# 解析文件名Sint(file[1:4])Aint(file[-7:-4])-1# 标签0~59# 解析骨骼内容 - array(3, T, 25, M)skelparse_skeleton(file)ifSintrain_subjects:train_data.append(skel)train_label.append(A)else:val_data.append(skel)val_label.append(A)# 保存np.save(xsub/train_data.npy,np.array(train_data))pickle.dump(train_label,open(xsub/train_label.pkl,wb))...