HumanML3D 3D人类运动语言数据集完整使用指南
HumanML3D是一个开源的大规模3D人类运动-语言数据集,结合了HumanAct12和Amass数据集。它涵盖了广泛的人类动作类型,包括日常活动、体育运动、杂技表演和艺术表演。每个运动片段都配有3-4个通过Amazon Mechanical Turk标注的单句描述,为多模态学习和运动生成研究提供了宝贵资源。
项目概述与核心特性
HumanML3D数据集包含14616个运动序列和44970个文本描述,由5371个不同的单词组成。总运动时长达到28.59小时,平均运动长度为7.1秒,平均描述长度为12个单词。
数据增强特色
项目通过镜像所有运动并适当替换描述中的关键词(如"左"替换为"右","顺时针"替换为"逆时针"),将数据集规模扩大了一倍。
环境配置与安装
使用conda环境配置
项目提供了完整的环境配置文件,可以通过以下命令一键安装:
conda env create -f environment.yaml
conda activate torch_render
手动安装依赖
如果环境配置失败,可以手动安装以下核心依赖:
- Python==3.7.10
- Numpy
- Scipy
- PyTorch
- Tqdm
- Pandas
- Matplotlib==3.3.4 // 仅用于动画
- ffmpeg==4.3.1 // 仅用于动画
- Spacy==2.3.4 // 仅用于文本处理
下载SMPL+H和DMPL模型
为了使用完整的AMASS数据集功能,需要下载SMPL+H模型和DMPL模型,并将所有模型文件放置在"./body_model/"目录下。
数据集获取与处理流程
数据处理步骤
要获得完整的HumanML3D数据集,需要按顺序运行以下脚本:
- raw_pose_processing.ipynb
- motion_representation.ipynb
- cal_mean_variance.ipynb
可选动画生成
如果需要生成运动动画,可以运行:
animation.ipynb
数据集结构与文件说明
HumanML3D数据集采用清晰的文件组织结构:
./HumanML3D/
├── animations.rar // 所有运动片段的MP4格式动画
├── new_joint_vecs.rar // 从3D运动位置提取的旋转不变特征和旋转特征向量
├── new_joints.rar // 3D运动位置数据
├── texts.rar // 运动数据的文本描述
├── Mean.npy // new_joint_vecs中所有数据的均值
├── Std.npy // new_joint_vecs中所有数据的标准差
├── all.txt // 所有数据名称列表
├── train.txt // 训练数据名称列表
├── test.txt // 测试数据名称列表
├── train_val.txt // 训练和验证数据名称列表
└── val.txt // 验证数据名称列表
骨骼结构说明
HumanML3D数据遵循SMPL骨骼结构,包含22个关节点。KIT-ML数据集包含21个骨骼关节点。
HumanML3D数据集包含丰富的3D人类运动序列和对应的文本描述
文本处理与语言分析
文本处理模块
项目的文本处理功能由text_process.py文件提供,主要包含以下功能:
- 文本预处理和标准化
- 词性标注和词形还原
- 句子分词和语义分析
文本文件格式
每个文本文件包含多个描述行,每行格式如下:
原始描述(小写)#处理后的句子#开始时间(s)#结束时间(s)
示例文本内容:
a man kicks something or someone with his left leg#a/DET man/NOUN kick/VERB something/PRON or/CCONJ someone/PRON with/ADP his/DET left/ADJ leg/NOUN#0.0#0.0
the standing person kicks with their left foot before going back to their original stance#the/DET stand/VERB person/NOUN kick/VERB with/ADP their/DET left/ADJ foot/NOUN before/ADP go/VERB back/ADV to/ADP their/DET original/ADJ stance/NOUN#0.0#0.0
实用技巧与最佳实践
数据加载优化
- 使用缓存机制加速大型数据集加载
- 分批处理运动序列以减少内存占用
- 合理配置预处理流水线参数
常见问题解决
- 检查数据格式兼容性
- 解决依赖版本冲突
- 调试预处理流程
项目应用与研究价值
HumanML3D为以下研究领域提供了重要基础:
- 3D人类运动生成
- 文本到运动转换
- 多模态学习
- 动作识别与分类
通过本指南,您可以快速掌握HumanML3D的核心功能,并在实际项目中高效应用这个强大的3D运动语言数据集。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



