Animatable Neural Radiance Fields for Modeling Dynamic Human Bodies

Overview

News

  • 10/28/2021 To make the comparison with Animatable NeRF easier on the Human3.6M dataset, we save the quantitative results at here, which also contains the results of other methods, including Neural Body, D-NeRF, Multi-view Neural Human Rendering, and Deferred Neural Human Rendering.

Animatable Neural Radiance Fields for Modeling Dynamic Human Bodies

Project Page | Video | Paper | Data

teaser

Animatable Neural Radiance Fields for Modeling Dynamic Human Bodies
Sida Peng, Junting Dong, Qianqian Wang, Shangzhan Zhang, Qing Shuai, Hujun Bao, Xiaowei Zhou
ICCV 2021

Any questions or discussions are welcomed!

I will update the code and the document.

Since the license of Human3.6 dataset does not allow us to distribute its data, we cannot release the processed Human3.6 dataset publicly. If someone is interested at the processed data, please email me.

Installation

Please see INSTALL.md for manual installation.

Citation

If you find this code useful for your research, please use the following BibTeX entry.

@inproceedings{peng2021animatable,
  title={Animatable Neural Radiance Fields for Modeling Dynamic Human Bodies},
  author={Peng, Sida and Dong, Junting and Wang, Qianqian and Zhang, Shangzhan and Shuai, Qing and Zhou, Xiaowei and Bao, Hujun},
  booktitle={ICCV},
  year={2021}
}
Comments
  • joints.npy does not exist in data/zju_mocap/CoreView_313\\lbs\\joints.npy

    joints.npy does not exist in data/zju_mocap/CoreView_313\\lbs\\joints.npy

    Hello, Sir. I am trying to the test on 313 but i got error: FileNotFoundError: [Errno 2] No such file or directory: 'data/zju_mocap/CoreView_313\lbs\joints.npy'. Could you give me advice how to get joints.npy?

    opened by choycoy 14
  • Some question about zju_mocap dataset

    Some question about zju_mocap dataset

    Hi, Thanks for your great work, I have some questions about the dataset:

    1. The npy files in the new_vertices folder mean the SMPL mesh in the world coordinates, right? I wonder what unit they use, meter or millimeter?
    2. I wonder if the provided smpl_param(pose parameters) are in the coordinate system defined in SMPL or in the world coordinates? In other words, if I use smplx to get mesh with provided params like: smpl_layer(pose, shape, th) will I get the same result in the vertices folder?
    opened by EAST-J 7
  • Question of custom data

    Question of custom data

    Hi, I'm having some problems implementing my own data with prepare_lbs_meta.py. I try to test the cope with CAPE dataset. The param of CAPE is

    for k, v in cape_param.items():
        print(k)
        print(v.shape)
    
    print: transl
            (3,)
            v_cano
            (6890, 3)
            pose
            (72,)
            v_posed
            (6890, 3)
    

    I performed the following processing to fite prepare_lbs_meta.py.

    vertices = cape_param["v_posed"].reshape(6890, 3)
    
    shapes = betas.reshape(1, 10)
    Th = cape_param["transl"].reshape(1, 3)
    Rh = cape_param["pose"][:, :3].reshape(1, 3)
    poses = cape_param["pose"].reshape(1, 72)
    poses[:, :3] = 0
    save_dict = {"shapes":shapes, "poses":poses, "Rh":Rh, "Th":Th, }
    
    out_param = os.path.join(param_dir, f'{i:04d}')
    out_verti = os.path.join(vertices_dir, f'{i:04d}')
    np.save(out_param, save_dict)
    np.save(out_verti, vertices)
    

    But I find the result of get_tpose_blend_weights() seems not right

    5d35b75caee6d8921d6936d6e949e2d

    from left to right are the posed vertices, GT T-pose vertices, and process T-pose vertices. I simply checked the code against SMPL, there didn't seem to be any problems.

    Am I doing it the right way? Can you give me some advice? Thanks

    opened by tpzou 5
  • questions about how to process H3.6m (lbs/bweights/*.npy)

    questions about how to process H3.6m (lbs/bweights/*.npy)

    when loading human3.6m dataset, here comes a question that I can't change the batch_size from 1 to any other number > 1. Then I find out that it's because when loading data, the size of the param "pbw" changes as well. The pbw is loaded in the lbs/bweights folder, which is provided by you. I wanna process more other datasets, what should I do? How to make this pbw blend weights have the same size(n_batch,d,h,w,25)? @pengsida

    opened by longxiang-ai 5
  • No such file or directory: 'data/zju_mocap/CoreView_394/lbs/bigpose_vertices.npy'

    No such file or directory: 'data/zju_mocap/CoreView_394/lbs/bigpose_vertices.npy'

    Hi, Sida

    I was trying to extract mesh results for sequences 392, 393, and 394 for ZJU-MoCap dataset in order to do some comparison. Since 392, 393, 394 do not come with preprocessed lbs folder I just run tools/prepare_blend_weights.py to generate folder. However when generating meshes it still says "lbs/bigpose_vertices.npy" is missing. Could you share these files for 392, 393, 394 or the script that can generate this "bigpose_vertices.npy"?

    Thanks!

    opened by taconite 5
  • Why need to retrain the blend weight fields of unseen human poses?

    Why need to retrain the blend weight fields of unseen human poses?

    Congrats on this great work, and thanks a lot for open-sourcing this project!

    1. I wonder why we need to retrain the blend weight fields of unseen human poses? It seems can directly use the Nerf and neural blend weight field for 3D animation.

    2. And what‘s the 'Rh" mean? Is it the same of global_orient in SMPL?

      # transform smpl from the world coordinate to the smpl coordinate 
       params_path = os.path.join(self.data_root, cfg.params,
                                  '{}.npy'.format(i))
       params = np.load(params_path, allow_pickle=True).item()
       Rh = params['Rh'].astype(np.float32)
       Th = params['Th'].astype(np.float32)
      
    opened by tpzou 4
  • Segmentation Fault(core dumped) error

    Segmentation Fault(core dumped) error

    Hello I tried to run your code but I get error message... "Segmentation Fault (core dumped)"

    I used pytorch==1.11.0, CUDA 11.3, torchvision 0.12.0..

    Is your code only available in pytorch 1.4.0 & CUDA 10 version?

    opened by iseunghoon 3
  • AniSDF gives noisy mesh in observation space for ZJU-mocap dataset

    AniSDF gives noisy mesh in observation space for ZJU-mocap dataset

    Hi,

    I trained the AniSDF on ZJU-mocap 387 sequence with configs/sdf_pdf/anisdf_pdf_387.yaml. I then produce mesh with python run.py --type visualize --cfg_file configs/sdf_pdf/anisdf_pdf_387.yaml exp_name anisdf_pdf_387 vis_posed_mesh True resume True. However the reconstructed mesh seems noisy.

    • Reconstructed mesh for 387 sequence
    image

    I found if I omit in lib/networks/renderer/sdf_mesh_renderer.py the following lines, the mesh is smooth.

    if 'gradient_of_deformed_sdf' in dir(self.net):
        normal, sdf = self.batchify_normal_sdf(pts, batch)
        resd = -normal * sdf
        resd = torch.from_numpy(resd).to(pts)
        deformed_pts = pts + resd
    else:
        deformed_pts = pts
    
    • Reconstructed mesh without offset for mesh vertices.
    image

    Could you provide any suggestions to solve this problem?

    Thanks a lot.

    opened by HelloRicky123 2
  • confused about the yaml files

    confused about the yaml files

    hello I read your paper in ICCV 2021 and newly pre-print paper. I am confused about the experiment settings. In paper "Animatable Implicit Neural Representations for Creating Realistic Avatars from Videos": 1.Section 3.2.1 describe the method in the ICCV2021 paper and its corresponding config file is configs/aninerf_s9p.yaml 2.Section 3.2.2 's config file is configs/aligned_nerf_pdf/aligned_aninerf_pdf_s9p.yaml(termed pdf) 3.the config file of "pdf+sdf" is configs/sdf_pdf/anisdf_pdf_s9p.yaml am I right? and I dont know what the config file configs/aligned_nerf_lbw/aligned_aninerf_lbw_s9p.yaml refer to ...

    opened by liwenssss 2
  • AttributeError: 'Network' object has no attribute 'get_alpha'

    AttributeError: 'Network' object has no attribute 'get_alpha'

    python run.py --type visualize --cfg_file configs/aninerf_313.yaml exp_name aninerf_313 vis_posed_mesh True The following error occurs when running the above statement。 AttributeError: 'Network' object has no attribute 'get_alpha'

    opened by LaolangOne 2
  • dataset about animatable sdf

    dataset about animatable sdf

    According to your readme, I directly run the training code for animatable sdf on human36. This reports an error, i.e., no such file or directory: 'data/h36m/S9/Posing/lbs/weights.npy'.

    I don't find weights.npy in the corresponding directory under human36 datasets. Do I need to additionally generate this weights.npy ?

    opened by yjh576 2
  • The missing code about implementing NT method

    The missing code about implementing NT method

    In current code, the funciton transform_can_smpl is missing. When I ran the code there was a missing function error and I didn't find it in this code base. image

    opened by yjh576 0
  • When install the libraries pointnet2 and PCPR to run NHR and NT, some errors occur:

    When install the libraries pointnet2 and PCPR to run NHR and NT, some errors occur:

    Hi, when I want to install the pointnet2 and PCPR libraries to run the code in your project, I met these problems:

    1. Although I had installed the pointnet2 successfully, when I run the code, it occurred this error:

    image

    1. When I try to install the PCPR, I can't install it successfully. image

    How can I install them and run the code successfully? Thanks.

    opened by XuqianRen 0
Owner
ZJU3DV
ZJU3DV is a research group of State Key Lab of CAD&CG, Zhejiang University. We focus on the research of 3D computer vision, SLAM and AR.
ZJU3DV
Pytorch implementation for A-NeRF: Articulated Neural Radiance Fields for Learning Human Shape, Appearance, and Pose

A-NeRF: Articulated Neural Radiance Fields for Learning Human Shape, Appearance, and Pose Paper | Website | Data A-NeRF: Articulated Neural Radiance F

Shih-Yang Su 172 Dec 22, 2022
Implementation of "Generalizable Neural Performer: Learning Robust Radiance Fields for Human Novel View Synthesis"

Generalizable Neural Performer: Learning Robust Radiance Fields for Human Novel View Synthesis Abstract: This work targets at using a general deep lea

null 163 Dec 14, 2022
This is the code for Deformable Neural Radiance Fields, a.k.a. Nerfies.

Deformable Neural Radiance Fields This is the code for Deformable Neural Radiance Fields, a.k.a. Nerfies. Project Page Paper Video This codebase conta

Google 1k Jan 9, 2023
Open source repository for the code accompanying the paper 'Non-Rigid Neural Radiance Fields Reconstruction and Novel View Synthesis of a Deforming Scene from Monocular Video'.

Non-Rigid Neural Radiance Fields This is the official repository for the project "Non-Rigid Neural Radiance Fields: Reconstruction and Novel View Synt

Facebook Research 296 Dec 29, 2022
(Arxiv 2021) NeRF--: Neural Radiance Fields Without Known Camera Parameters

NeRF--: Neural Radiance Fields Without Known Camera Parameters Project Page | Arxiv | Colab Notebook | Data Zirui Wang¹, Shangzhe Wu², Weidi Xie², Min

Active Vision Laboratory 411 Dec 26, 2022
Unofficial & improved implementation of NeRF--: Neural Radiance Fields Without Known Camera Parameters

[Unofficial code-base] NeRF--: Neural Radiance Fields Without Known Camera Parameters [ Project | Paper | Official code base ] ⬅️ Thanks the original

Jianfei Guo 239 Dec 22, 2022
Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields.

This repository contains the code release for Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields. This implementation is written in JAX, and is a fork of Google's JaxNeRF implementation. Contact Jon Barron if you encounter any issues.

Google 625 Dec 30, 2022
Code for KiloNeRF: Speeding up Neural Radiance Fields with Thousands of Tiny MLPs

KiloNeRF: Speeding up Neural Radiance Fields with Thousands of Tiny MLPs Check out the paper on arXiv: https://arxiv.org/abs/2103.13744 This repo cont

Christian Reiser 373 Dec 20, 2022
This repository contains a PyTorch implementation of "AD-NeRF: Audio Driven Neural Radiance Fields for Talking Head Synthesis".

AD-NeRF: Audio Driven Neural Radiance Fields for Talking Head Synthesis | Project Page | Paper | PyTorch implementation for the paper "AD-NeRF: Audio

null 551 Dec 29, 2022
Code release for DS-NeRF (Depth-supervised Neural Radiance Fields)

Depth-supervised NeRF: Fewer Views and Faster Training for Free Project | Paper | YouTube Pytorch implementation of our method for learning neural rad

null 524 Jan 8, 2023
PyTorch implementation for MINE: Continuous-Depth MPI with Neural Radiance Fields

MINE: Continuous-Depth MPI with Neural Radiance Fields Project Page | Video PyTorch implementation for our ICCV 2021 paper. MINE: Towards Continuous D

Zijian Feng 325 Dec 29, 2022
This repository contains the source code for the paper "DONeRF: Towards Real-Time Rendering of Compact Neural Radiance Fields using Depth Oracle Networks",

DONeRF: Towards Real-Time Rendering of Compact Neural Radiance Fields using Depth Oracle Networks Project Page | Video | Presentation | Paper | Data L

Facebook Research 281 Dec 22, 2022
BARF: Bundle-Adjusting Neural Radiance Fields 🤮 (ICCV 2021 oral)

BARF ?? : Bundle-Adjusting Neural Radiance Fields Chen-Hsuan Lin, Wei-Chiu Ma, Antonio Torralba, and Simon Lucey IEEE International Conference on Comp

Chen-Hsuan Lin 539 Dec 28, 2022
[ICCV21] Self-Calibrating Neural Radiance Fields

Self-Calibrating Neural Radiance Fields, ICCV, 2021 Project Page | Paper | Video Author Information Yoonwoo Jeong [Google Scholar] Seokjun Ahn [Google

null 381 Dec 30, 2022
[ICCV 2021 Oral] NerfingMVS: Guided Optimization of Neural Radiance Fields for Indoor Multi-view Stereo

NerfingMVS Project Page | Paper | Video | Data NerfingMVS: Guided Optimization of Neural Radiance Fields for Indoor Multi-view Stereo Yi Wei, Shaohui

Yi Wei 369 Dec 24, 2022
This is the code for "HyperNeRF: A Higher-Dimensional Representation for Topologically Varying Neural Radiance Fields".

HyperNeRF: A Higher-Dimensional Representation for Topologically Varying Neural Radiance Fields This is the code for "HyperNeRF: A Higher-Dimensional

Google 702 Jan 2, 2023
A PyTorch implementation of NeRF (Neural Radiance Fields) that reproduces the results.

NeRF-pytorch NeRF (Neural Radiance Fields) is a method that achieves state-of-the-art results for synthesizing novel views of complex scenes. Here are

Yen-Chen Lin 3.2k Jan 8, 2023
pixelNeRF: Neural Radiance Fields from One or Few Images

pixelNeRF: Neural Radiance Fields from One or Few Images Alex Yu, Vickie Ye, Matthew Tancik, Angjoo Kanazawa UC Berkeley arXiv: http://arxiv.org/abs/2

Alex Yu 1k Jan 4, 2023
Code release for NeRF (Neural Radiance Fields)

NeRF: Neural Radiance Fields Project Page | Video | Paper | Data Tensorflow implementation of optimizing a neural representation for a single scene an

null 6.5k Jan 1, 2023