zju3dv/neuralbody
Code for "Neural Body: Implicit Neural Representations with Structured Latent Codes for Novel View Synthesis of Dynamic Humans" CVPR 2021 best paper candidate
Neural Body – 用于动态人体的隐式神经表示
简介
- 这是一个研究代码库,通过多视角视频学习移动人体的连续 3D 表示。它使用 隐式神经场(一种将 3‑D 坐标映射到颜色/占用率的神经网络)以及编码姿势相关几何结构的 结构化潜在编码。
- 目标是 新视角合成:给定几个校准过的摄像机,模型可以从任何新视角渲染人物,即使是训练期间未见过的姿势。
主要功能
- 训练 支持两个公开数据集:
- ZJU‑MoCap – 单一演员执行多种动作的多视角捕捉数据。
- People‑Snapshot – 不同人物的短视频集合。
- 推理 支持:
- 渲染单一帧的新视角。
- 从固定或旋转摄像机渲染移动人物的视频。
- 在任何帧提取身体网格。
- 支持 未见过的姿势(泛化到新动作)和 白底渲染。
- 通过 PyTorch 的
torch.distributed进行分布式训练,并提供可直接使用的 Docker 镜像。
如何开始
- 安装 – 依照
INSTALL.md进行手动 conda 设置,或使用docker/中的 Dockerfile(感谢 Zhaoyi Wan)。 - 下载数据 – README 链接到获取 ZJU‑MoCap 和 People‑Snapshot 数据集的脚本,以及托管在 Google Drive 上的预训练检查点。
- 运行示例 – 仓库提供现成的 shell 脚本:
visualize.sh展示如何渲染新视角、姿势变化的视频和网格。train.sh和test.sh说明单 GPU 和多 GPU 训练/评估指令。
- 自定义数据 –
tools/custom文件夹说明如何将管线调整为您自己的多视角捕捉数据。
数据集与资源
- ZJU‑MoCap – 带有 SMPL 参数(使用 EasyMocap 拟合)的多视角捕捉。仓库提供原始版本和较新的 SMPL 拟合集。
- People‑Snapshot – 野外视频;仓库包含处理脚本 (
process_snapshot.py) 和 SMPL 参数可视化工具。 - Mobile‑Stage 和 SyntheticHuman++ 数据集于 2024 年 1 月发布(提供 Google 表单链接以供访问)。
典型工作流程
# 1. 准备数据 (例如, People‑Snapshot)
python tools/process_snapshot.py --input path/to/video
# 2. 训练 (单 GPU)
python train_net.py --cfg_file configs/snapshot_exp/snapshot_f3c.yaml \
exp_name female3c resume False
# 3. 可视化帧的新视角
python run.py --type visualize \
--cfg_file configs/snapshot_exp/snapshot_f3c.yaml \
exp_name female3c vis_novel_view True num_render_views 144
# 4. 渲染网格
python run.py --type visualize \
--cfg_file configs/snapshot_exp/snapshot_f3c.yaml \
exp_name female3c vis_mesh True
适用对象
- 研究神经渲染、人体形状/姿势建模或新视角合成的研究人员。
- 需要从稀疏多摄像机设置生成照片级真实感虚拟化身的开发人员。
- 对从视频中提取可动画 3‑D 网格感兴趣的任何人。
引用 如果您使用此代码或预训练模型,请引用 CVPR 2021 和 TPAMI 2023 论文(BibTeX 包含在 README 中)。
以上所有信息均直接取自仓库的 README;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目