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 镜像。

如何开始

  1. 安装 – 依照 INSTALL.md 进行手动 conda 设置,或使用 docker/ 中的 Dockerfile(感谢 Zhaoyi Wan)。
  2. 下载数据 – README 链接到获取 ZJU‑MoCap 和 People‑Snapshot 数据集的脚本,以及托管在 Google Drive 上的预训练检查点。
  3. 运行示例 – 仓库提供现成的 shell 脚本:
    • visualize.sh 展示如何渲染新视角、姿势变化的视频和网格。
    • train.shtest.sh 说明单 GPU 和多 GPU 训练/评估指令。
  4. 自定义数据tools/custom 文件夹说明如何将管线调整为您自己的多视角捕捉数据。

数据集与资源

  • ZJU‑MoCap – 带有 SMPL 参数(使用 EasyMocap 拟合)的多视角捕捉。仓库提供原始版本和较新的 SMPL 拟合集。
  • People‑Snapshot – 野外视频;仓库包含处理脚本 (process_snapshot.py) 和 SMPL 参数可视化工具。
  • Mobile‑StageSyntheticHuman++ 数据集于 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;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目