当前位置: 首页 > news >正文

复现HMMR论文训练:从下载5大数据集到运行do_train.sh的一站式实操教程

复现HMMR论文训练:从下载5大数据集到运行do_train.sh的一站式实操教程

【免费下载链接】human_dynamicsProject for paper "Learning 3D Human Dynamics from Video"项目地址: https://gitcode.com/gh_mirrors/hu/human_dynamics

想复现CVPR 2019论文《Learning 3D Human Dynamics from Video》(简称HMMR)的训练流程,却被繁琐的数据集下载和TFRecord转换劝退?这篇HMMR论文训练实操教程整理了从环境搭建、5大数据集下载,到执行do_train.sh启动训练的完整路径,帮你少踩坑、快速跑通官方训练代码。项目源码位于gh_mirrors/hu/human_dynamics,训练说明见 doc/train.md,全程只需跟着本文一步步操作即可。

HMMR是什么?一张图看懂3D人体动力学模型

HMMR(Human Motion and Recurrent Reconstruction)来自伯克利团队,核心目标是从一段普通视频中恢复人体的3D姿态、形状和运动轨迹。它把经典的HMR单帧重建扩展到时序上,引入时序编码器(Temporal Encoder)和"幻觉"模块(Hallucinator),让模型能同时预测过去、现在和未来的3D人体运动。

上图就是论文的完整系统架构:输入视频帧经过ResNet提取特征phi,再送入时序模块,最终输出逐帧的3D人体参数(SMPL姿态与形状),配合L2D(2D关键点损失)、L3D(3D监督)和对抗先验L_adv prior进行优化。想深入理解每个模块,可以翻看 src/models.py 和 src/trainer_sequence_fc.py。

复现HMMR训练前,先把运行环境搭好

官方代码基于Python 3.5 + TensorFlow 1.8 + PyTorch 0.4,并且只支持GPU(论文实验环境为CUDA 9.0 + Titan Xp/1080 Ti),建议提前准备好显卡和对应版本的驱动。核心步骤只有三步:

第一步:拉取代码并创建虚拟环境

git clone https://gitcode.com/gh_mirrors/hu/human_dynamics cd human_dynamics virtualenv venv_hmmr -p python3 source venv_hmmr/bin/activate pip install -U pip pip install numpy pip install -r requirements.txt

第二步:安装外部依赖(渲染和人体检测用)

cd src/external sh install_external.sh

该脚本会自动安装Neural Mesh Renderer,并拉取AlphaPose/PoseFlow的fork版本(跑demo提取视频中人物轨迹时必需)。完整依赖列表见 requirements.txt。

第三步:下载预训练模型

wget http://angjookanazawa.com/cachedir/hmmr/hmmr_models.tar.gz && tar -xf hmmr_models.tar.gz

解压后把models目录放在项目根目录,训练和TFRecord生成都会用到里面的hmr_noS5.ckpt-642561hmmr_model.ckpt-1119816

HMMR训练数据集下载清单:5大数据集一次理清

复现训练共涉及5个数据集,其中3个用于训练、1个可选、1个用于评估。下表是完整清单:

数据集用途说明
Human3.6M训练(3D监督)提供3D关节标注,但受版权限制不再提供Mosh SMPL真值
Penn Action训练(2D监督)户外运动视频,含2D关键点标注
Mosh数据(CMU + JointLimits)训练(对抗先验)仅限非商业科研使用
InstaVariety训练(可选)官方开源的Instagram运动视频数据集
3DPW评估野外3D人体数据集,用于验证模型

其中InstaVariety是HMMR论文自建的大规模数据集:作者爬取了92个运动相关的Instagram标签、共28,272个视频,覆盖跳舞、骑车、跑步、滑雪等动作(上图即为示例)。项目提供了视频列表 datasets/instavariety/insta_variety_train.txt 和 insta_variety_test.txt,还附带一键下载脚本 download_insta_variety.py:

python download_insta_variety.py --savedir /path/to/save

此外还有一个可选数据Vlog-people(上图为生活vlog场景示例),视频ID清单在 datasets/vlog/vlog_ids.txt。建议先下载UPenn和Human3.6M,InstaVariety和Vlog可后补,每个数据集都请遵守其各自的许可协议。

用prepare_datasets.sh把数据集转成TFRecord

训练前,所有数据集都必须转换成统一的TFRecord格式(每个视频一个文件,内含图像帧、关键点标注、预计算的2048维HMR特征phi等,格式说明见 doc/datasets.md)。转换工作全部由 prepare_datasets.sh 统一调度:

第1步:创建TFRecord输出目录

mkdir ~/hmmr/tf_datasets/

第2步:修改 prepare_datasets.sh 中的路径变量,把OUT_DIRH36_DIRPENN_DIRTDPW_DIRMOSH_DIRHMR_MODEL等替换成你的实际路径。

第3步:按脚本注释逐条执行。脚本里每个数据集对应一条命令,建议逐条取消注释、分别运行,不要一次性全部放开:

  • Human3.6M:先运行预处理 src/datasets/h36/read_human36m.py,再执行src.datasets.h36_to_tfrecords_video
  • UPenn:运行src.datasets.upenn_to_tfrecords_video(train和test各一次)
  • InstaVariety:运行src.datasets.video_in_the_wild_to_tfrecords
  • Mosh:运行src.datasets.smpl_to_tfrecords(CMU和jointLim各一次)
  • 3DPW:先运行 src/datasets/threedpw/compute_neutral_shape.py 计算中性模型,再执行src.datasets.3dpw_to_tfrecords_video

转换完可以用可视化脚本检查数据是否正确:

python -m src.datasets.visualize_train_tfrecords --data_rootdir ${OUT_DIR} --dataset insta_variety

⚠️ 注意:Human3.6M 的 Mosh 数据因授权问题已不再公开,因此你无法100%复现论文原版模型,但数据仍保留3D关节标注,官方也提供了在此设置下重新训练的模型权重。

一键运行do_train.sh启动HMMR训练

TFRecord准备就绪后,训练就变得非常简单。先编辑 do_train.sh,把脚本开头的两个路径改成你的实际路径:

DATA_DIR='/home/jason/tf_datasets_phi_shard_oldaugmin40_toes' # 改成你的TFRecord目录 PRETRAINED_HMR='/home/jason/hmmr/models/hmr_noS5.ckpt-642561' # 改成你的模型路径

脚本默认使用的训练参数与论文一致:--datasets h36m,penn_action,insta_variety--batch_size=8--T 20(时序长度20帧)、--num_conv_layers 3,并开启--do_hallucinate幻觉模块。随后直接运行:

sh do_train.sh

训练日志和模型会写入logs_release目录(可在 src/config.py 中通过--log_dir调整)。若中途中断想断点续训,把do_train.sh中被注释的--load_path ${LP}一行打开,填入之前的日志目录即可。

训练监控与常见问题排查

用TensorBoard实时监控训练是官方反复强调的一步:将TensorBoard指向训练日志目录,重点观察加载的图像是否正确、损失曲线是否正常下降。训练时记得在 src/config.py 里核对e_lw_kpe_lw_smpl等损失权重,以及freeze_phiprecomputed_phi等关键开关。

新手最容易踩的几个坑:

  • 路径不匹配DATA_DIR写错或TFRecord目录结构不符合<tfrecords_dir>/<dataset_name>/<split>规范,训练启动即报错。
  • 版本不兼容:TensorFlow 1.x 与新版2.x差异巨大,务必使用官方要求的1.8版本。
  • 显存不足:batch_size为8且T=20时显存占用较高,可适当调小--batch_size
  • 数据集不完整:缺了Mosh数据会导致对抗先验部分无法工作,可加--mosh_ignore跳过。

训练完成后,可用 src/evaluation/eval.py 在3DPW、UPenn、Human3.6M的测试集上评估模型,具体命令与官方指标对照见 doc/eval.md。

结语

到这里,你已经走完了复现HMMR论文训练的全流程:环境搭建 → 5大数据集下载 → TFRecord转换 →do_train.sh一键训练。虽然HMMR的代码基于较老的TensorFlow 1.x,但作为从视频学习3D人体动力学的经典工作,其"时序编码 + 幻觉预测"的思路至今仍值得学习。跟着这篇教程动手跑一遍,你对3D人体重建的训练管线会有更直观的理解。祝训练顺利,早日跑出你想要的3D人体模型!🎉

【免费下载链接】human_dynamicsProject for paper "Learning 3D Human Dynamics from Video"项目地址: https://gitcode.com/gh_mirrors/hu/human_dynamics

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4085258.html

相关文章:

  • 磁盘清理终极指南:Czkawka 14 个工具一次讲透,重复文件、相似图片、视频瘦身一步到位
  • 一副普通眼镜如何变成AI助手?OpenGlass 25元开源改造方案全解析
  • 用JSON定义游戏界面:FlatUI序列化功能完整上手教程
  • 开发效率提升300%:这套SpringBoot3+Vue3脚手架让你的项目快速启动
  • BilibiliDown使用指南:收藏夹300条内容一键落地的离线视频备份方案
  • Python进阶 - sys模块 退出程序与异常信息获取
  • 用 relly 学 Rust 系统编程:零拷贝与安全内存操作实战
  • lainTSX 是什么:在浏览器中游玩《Serial Experiments Lain》PSX 游戏的完整指南
  • 认识 LightningJS:第三方JavaScript嵌入方案如何同时做到安全、快速与异步?
  • stdarch测试体系全览:C/Rust随机对拍、反汇编断言与20+架构的CI矩阵
  • 【单片机毕业设计】基于 STM32 或 51 单片机的多传感融合智能学习照明设备设计 基于 STM32 或 51 单片机的带时钟定时功能智能护眼装置设计与实现(021303)
  • Milvus 迁移到 RAG:先守住索引和评测口径
  • 告别录屏几小时,m3u8-downloader 让 M3U8 视频下载一条命令搞定
  • DistroAV(OBS-NDI)插件“Runtime缺失“全场景自救指南:从零上手到进阶调优的完整路线图
  • ManyDepth位姿估计网络解析:PoseCNN如何为多帧深度估计提供关键几何信息
  • 打造 7×24 家庭无线音乐中心:Shairport4w 开机自启与托盘运行实战
  • Blender里一键导出GIF动画,再也不为这事发愁
  • 【Bug已解决】Mustache list sections silently drop falsy items (`0`, `False`, `““`)
  • 有手就行!零基础用AI做数据分析,普通打工人也能玩出高级感
  • osu-droid难度算法实现剖析:Aim、Speed与Reading技能模型深度解析
  • 世毫九信息几何物理学框架下黎曼ζ函数非平凡零点的拓扑不动点本质
  • assert_instr测试机制深度解析:stdarch如何确保内建函数与机器指令一一对应
  • SideWaffle vs 其他VS模板扩展:为什么它是Web开发者的终极选择?
  • DDrawCompat 上手全攻略:让老 DirectX 游戏在现代 Windows 上重获新生
  • GitHub 成就解锁新手指南:零代码审查也能拿到的 Yolo 徽章
  • RTOS延时机制解析:从osDelay到阻塞延时的本质区别与应用
  • lainTSX 收集要素攻略:集齐 Polytan 熊全部 6 个部件的完整路线
  • 告别手忙脚乱:FF14钓鱼计时器“渔人的直感“咬钩识别与幻海流预警实战手册
  • 3步上手免登录微博图片批量下载:weiboPicDownloader从入门到进阶完整指南
  • OBS的NDI插件一装就报Runtime错误?DistroAV安装与排障一篇讲透