• Stars
    star
    196
  • Rank 198,553 (Top 4 %)
  • Language
    Jupyter Notebook
  • Created 12 months ago
  • Updated 11 months ago

Reviews

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

Repository Details

Gaussian Shell Maps for Efficient 3D Human Generation (CVPR 2024)

Gaussian Shell Maps for Efficient 3D Human Generation

Teaser image

Efficient Geometry-aware 3D Generative Adversarial Networks
Rameen Abdal*, Wang Yifan*, Zifan Shi*, Yinghao Xu, Ryan Po, Zhengfei Kuang, Qifeng Chen, Dit-Yan Yeung, and Gordon Wetzstein
* equal contribution

https://rameenabdal.github.io/GaussianShellMaps/

Abstract: Efficient generation of 3D digital humans is important in several industries, including virtual reality, social media, and cinematic production. 3D generative adversarial networks (GANs) have demonstrated state-of-the-art (SOTA) quality and diversity for generated assets. Current 3D GAN architectures, however, typically rely on volume representations, which are slow to render, thereby hampering the GAN training and requiring multi-view-inconsistent 2D upsamplers. Here, we introduce Gaussian Shell Maps (GSMs) as a framework that connects SOTA generator network architectures with emerging 3D Gaussian rendering primitives using an articulable multi shell–based scaffold. In this setting, a CNN generates a 3D texture stack with features that are mapped to the shells. The latter represent inflated and deflated versions of a template surface of a digital human in a canonical body pose. Instead of rasterizing the shells directly, we sample 3D Gaussians on the shells whose attributes are encoded in the texture features. These Gaussians are efficiently and differentiably rendered. The ability to articulate the shells is important during GAN training and, at inference time, to deform a body into arbitrary userdefined poses. Our efficient rendering scheme bypasses the need for view-inconsistent upsamplers and achieves highquality multi-view consistent renderings at a native resolution of 512 × 512 pixels. We demonstrate that GSMs successfully generate 3D humans when trained on single-view datasets, including SHHQ and DeepFashion.

Installation

  • Python libraries: see environment.yml for exact library dependencies. You can use the following commands with Miniconda3 to create and activate your Python environment:

    • conda env create -f environment.yml
    • conda activate gsm
  • Install smplx and batch-diff-gaussian-rasterization in submodules:

    • cd submodules
    • cd smplx
    • python setup.py develop
    • cd batch-diff-gaussian-rasterization
    • python setup.py install

Getting started

Pre-trained networks are stored as *.pkl. See here for pre-trained checkpoints and files.

Generate Interpolations

# Generate interpolation videos using pre-trained model

cd main/gsm

python gen_interpolation.py --network xxxx.pkl --outdir xxxx --z_seeds 251,58

# Other seeds to try on DeepFashion:

Seeds: 297,235,27,41,135,903,894,570,361,369

Generate Novel Poses

# Generate novel poses using pre-trained model

cd main/gsm

python gen_novel_pose.py --network xxxx.pkl --outdir xxxx --seq ../../assets/seq_novel_pose.npy --z_seeds 58 --reload_modules True

# Other seeds to try on DeepFashion:

Seeds: 745,962,853,621,190

Editing

# Generate upper body edits using pre-trained model

cd main/gsm

python gen_editing.py --network xxxx.pkl --seeds 0,1,2 --seeds_tobereplaced 6162 --trunc 0.7 --resolution 512 --outdir xxxx --pts_path ../../assets/editing/select_upper.txt --reload_modules True

# Generate lower body edits using pre-trained model

python gen_editing.py --network xxxx.pkl --seeds 0,1,2 --seeds_tobereplaced 6162 --trunc 0.7 --resolution 512 --outdir xxxx --pts_path ../../assets/editing/select_trousersshoes.txt --reload_modules True

Generate Animated Sequences

# Generate animated sequences and view on HTML using pre-trained model

cd main/gsm

python gen_animation_videos.py --network xxxx.pkl --outdir xxxx --z_seeds 137

# Other seeds to try on DeepFashion:

Seeds: 67,468,543,718,847,895,66,82,848,952,958,974

Training

(to be updated)

Citation

@misc{abdal2023gaussian,
      title={Gaussian Shell Maps for Efficient 3D Human Generation}, 
      author={Rameen Abdal and Wang Yifan and Zifan Shi and Yinghao Xu and Ryan Po and Zhengfei Kuang and Qifeng Chen and Dit-Yan Yeung and Gordon Wetzstein},
      year={2023},
      eprint={2311.17857},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Acknowledgements

We thank the authors of 3D Gaussian Splatting, Bernhard Kerbl, Georgios Kopanas, and George Drettakis for the discussions on the code. We thank Thabo Beeler and Guandao Yang for fruitful discussions and Alexander Bergman for helping with the baseline comparisons. We also thank the authors of GetAvartar for providing additional evaluation results. This work was in part supported by Google, Samsung, Stanford HAI, and the Swiss Postdoc Mobility Fund.

More Repositories

1

ACORN

ACORN: Adaptive Coordinate Networks for Neural Scene Representation | SIGGRAPH 2021
Python
289
star
2

automatic-integration

Official repo for AutoInt: Automatic Integration for Fast Neural Volume Rendering in CVPR 2021
Python
179
star
3

bacon

Official respository for "Band-limited Coordinate Networks for Multiscale Scene Representation" | CVPR 2022
Python
173
star
4

neural-holography

Code and data for Neural Holography
Python
162
star
5

opticalCNN

hybrid optical electronic convolutional neural networks
Jupyter Notebook
124
star
6

nlos-fk

Processing code for "Wave-Based Non-Line-of-Sight Imaging using Fast f-k Migration"
MATLAB
70
star
7

holographic-AR-glasses

Python
61
star
8

AcousticNLOS

Processing code for acoustic non-line-of-sight imaging
Python
56
star
9

DepthFromDefocusWithLearnedOptics

ICCP2021: Depth from Defocus with Learned Optics for Imaging and Occlusion-aware Depth Estimation
Python
54
star
10

DeepOpticsHDR

Code associated with the paper "Deep Optics for Single-shot High-dynamic-range Imaging"
Python
52
star
11

neural-3d-holography

Code and data for Neural 3D Holography | SIGGRAPH Asia 2021
Python
44
star
12

GraphPDE

Jupyter Notebook
43
star
13

confocal-diffuse-tomography

Code and data for "Three-dimensional imaging through scattering media based on confocal diffuse tomography"
Python
30
star
14

ThreeDeconv.jl

A convex 3D deconvolution algorithm for low photon count fluorescence imaging
Julia
30
star
15

partially_coherent_neural_holography

Python
26
star
16

KeyholeImaging

Code associated with the paper "Keyhole Imaging: Non-Line-of-Sight Imaging and Tracking of Moving Objects Along a Single Optical Path"
Python
24
star
17

olas

Overlap-Add Stereograms Source Code
MATLAB
20
star
18

nlos-dlct

Non-line-of-sight Surface Reconstruction Using the Directional LCT
MATLAB
19
star
19

time-multiplexed-neural-holography

Code and data for Time-multiplexed Neural Holography | SIGGRAPH 2022
Python
19
star
20

diffusion-in-the-dark

Repository for Diffusion in the Dark (WACV 2024)
Jupyter Notebook
17
star
21

single_spad_depth

Code for Disambiguating Monocular Depth Estimation with a Single Transient
Jupyter Notebook
11
star
22

spad_pileup

MATLAB
11
star
23

EE267-Spring2022

JavaScript
7
star
24

DeepS3PR

Code associated with the paper "Deep S3PR: Simultaneous Source Separation and Phase Retrieval Using Deep Generative Models"
Python
6
star
25

multishot-localization-microscopy

Python
4
star
26

spad_single

Jupyter Notebook
4
star
27

PixelRNN

Official Implementation of PixelRNN: In-Pixel Recurrent Neural Networks for End-to-end--optimized Perception with Neural Sensors
Python
2
star
28

EE267-Spring2024

A repository for the starter code of homework for EE267.
JavaScript
1
star