• Stars
    star
    191
  • Rank 202,877 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created over 1 year ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This is the official implementation of Tensor4D: Efficient Neural 4D Decomposition for High-fidelity Dynamic Reconstruction and Rendering.

Tensor4D : Efficient Neural 4D Decomposition for High-fidelity Dynamic Reconstruction and Rendering

Project Page | Paper | Data

image

Tensor4D : Efficient Neural 4D Decomposition for High-fidelity Dynamic Reconstruction and Rendering
Ruizhi Shao, Zerong Zheng, Hanzhang Tu, Boning Liu, Hongwen Zhang, Yebin Liu. (CVPR 2023 Highlight)

This is the official implementation of Tensor4D: Efficient Neural 4D Decomposition for High-fidelity Dynamic Reconstruction and Rendering. Tensor4D can efficiently achieve high-fidelity dynamic reconstruction and rendering with only sparse views or monocular camera:

image image image

Installation

To deploy and run Tensor4d, you will need install the following Python libraries

numpy
opencv-python
torch
tensorboard
shutil
tqdm
pyhocon==0.3.57
glob
scipy
einops

We have tested Tensor4D with several PyTorch versions including 1.13 and 2.0. It is recommended to use PyTorch with these versions to ensure compatibility. In addition, we find that pyhocon==0.3.60 is not compatible with our project.

Run the code on Tensor4D dataset

Download Tensor4D samples

We have provided several samples for Tensor4D training. You can download the test samples using the following links:

  • thumbsup_v4 : A man giving thumbs up and waving, captured by 4 RGB cameras focusing on the front face.
  • dance_v4 : A woman dancing in a gorgeous dress, captured by 4 RGB cameras focusing on the front face.
  • boxing_v12 : A man in a down jacket boxing, captured by 12 RGB cameras in a circle.
  • lego_v1 : A LEGO excavator with a raised arm, captured by monocular camera, similar with D-NeRF dataset.

The format of our test samples is the same with NeuS, we will also provide scripts that convert NeRF blender dataset to our dataset.

Run the standard Tensor4D

To train Tensor4D for monocular cases, you can use the following scripts:

# Train Tensor4D with flow
python exp_runner.py --case lego_v1 --mode train --conf confs/t4d_lego.conf --gpu 0    
# Resume training
python exp_runner.py --case lego_v1 --mode train --conf confs/t4d_lego.conf --gpu 0 --is_continue

After training, you can visualize the results by the following scripts:

# interpolation between view 0 and view 2, setting the number of interpolation views to 100 and the downsampling resolution to 2

python exp_runner.py --case t4d_lego --mode interpolate_0_2 --conf confs/t4d_lego.conf --is_continue --inter_reso_level 2 --gpu 1 --n_frames 100

Similarly, you can train Tensor4D for multi-view cases according to the following scripts:

# Train Tensor4D without flow
python exp_runner.py --case thumbsup_v4 --mode train --conf confs/t4d_origin.conf --gpu 0

After about 50k iterations of training, you can achieve a reasonably good result. If you want higher quality results, you may need to train for a longer period of time with more iterations, such as 200k iterations.

Run Tensor4D with image guidance

Tensor4D can be further accelerated with image guidance. Here we provide a naive implementation which directly uses the 2D CNN to extract image features as additional conditions:

# Train Tensor4D with image guidance on thumbsup_v4
python exp_runner.py --case thumbsup30 --mode train --conf confs/t4d_thumbsup_img.conf --gpu 0

# Train Tensor4D with image guidance on dance_v4
python exp_runner.py --case dance_v4 --mode train --conf confs/t4d_dance_img.conf --gpu 0

# Train Tensor4D with image guidance on boxing_v12
python exp_runner.py --case boxing_v12 --mode train --conf confs/t4d_boxing_img.conf --gpu 0

Tensor4D with image guidance can achieve more efficient convergence within 5k iterations:

image

Config documentation

We provide the config documentation to explain the parameters in Tensor4D. It is recommended to check out the documentation before training your own Tensor4D model.

Tensor4D Dataset

We provide Tensor4D dataset in this link. Our dataset contains 5 multi-view sequences which is captured by 6 RGB cameras. All cameras are directed towards the front of the human. We will provide the scripts to process these raw data and convert them into our training samples.

We now provide the scripts to process raw data and convert them into our training samples in scripts. Thanks, Sun([email protected]), for writing and providing the data processing code.

Citation

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

@inproceedings{shao2023tensor4d,
title = {Tensor4D: Efficient Neural 4D Decomposition for High-fidelity Dynamic Reconstruction and Rendering},
author = {Shao, Ruizhi and Zheng, Zerong and Tu, Hanzhang and Liu, Boning and Zhang, Hongwen and Liu, Yebin},
booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
year = {2023}
}

Acknowledgments

Our project is benefit from these great resources:

Thanks for their sharing code.

More Repositories

1

DiffuStereo

This repository is the official implementation of DiffuStereo: High Quality Human Reconstruction via Diffusion-based Stereo Using Sparse Cameras.
Python
190
star
2

threestudio-3dgs

3D Gaussian Splatting extension of threestudio.
Python
168
star
3

DeepMultiCap

This repository is the official implementation of DeepMultiCap: Performance Capture of Multiple Characters Using Sparse Multiview Cameras.
Python
68
star
4

threestudio-dreamcraft3D

Python
56
star
5

threestudio-4dfy

Python
39
star
6

DoubleField

This repository is the official implementation of DoubleField: Bridging the Neural Surface and Radiance Fields for High-fidelity Human Reconstruction and Rendering.
39
star
7

threestudio-mvdream

MVDream extension of threestudio.
Python
37
star
8

threestudio-meshfitting

A simple extension of ThreeStudio, enabling the use of neural representation to fit a 3D mesh.
Python
25
star
9

LocalTrans

This repository is the official implementation of LocalTrans: A Multiscale Local Transformer Network for Cross-Resolution Homography Estimation.
C++
21
star
10

threestudio-mvimg-gen

Python
20
star
11

threestudio-diffusers-guidance

Python
7
star
12

Stupid-C-Compiler

Yacc
4
star
13

NERF-test

Python
4
star
14

threestudio-stable-nerf-renderer

Python
3
star
15

threestudio-shap-e

Python
3
star
16

OS

NKU OS course
2
star
17

threestudio-humangaussian

Python
2
star
18

threestudio-AnimatableGaussian

Python
2
star
19

BlockChain_Backend_Demo

A block chain backend without block chain
Java
1
star
20

KinectTest

simple kinect test
C++
1
star
21

diff-gaussian-rasterization-gsstudio

Cuda
1
star
22

CPUGL

CPU实现的渲染管线
C++
1
star
23

Drender

CUDA depth render
Python
1
star
24

simple-knn

Cuda
1
star
25

threestudio-dynamic-gaussian

1
star