Giter Club home page Giter Club logo

3dilg's Introduction

3DILG: Irregular Latent Grids for 3D Generative Modeling

This repository is the official pytorch implementation of 3DILG (https://arxiv.org/abs/2205.13914).

Biao Zhang1, Matthias Niessner2 Peter Wonka1,
1KAUST, 2Technical University of Munich

https://1zb.github.io/3DILG/static/video/pipeline.mp4

https://1zb.github.io/3DILG/static/video/uni_ar_wtitle.mp4

πŸ’» Progress

  • Training of first stage
  • Training of category-conditioned generation
  • Preprocessed data
  • Evaluation code of first stage model
  • Pretrained models
  • Code cleaning

πŸš… Training

Download the preprocessed data from here. In case that this link is inaccessable, send me an email for the data. Uncompress occupancies.zip and surfaces.zip to somewhere in your hard disk. They are required in the training phase.

First stage (autoencoder):

torchrun --nproc_per_node=4 run_vqvae.py --output_dir output/vqvae_512_1024_2048 --model vqvae_512_1024_2048 --batch_size 32 --num_workers 60 --lr 1e-3 --disable_eval --point_cloud_size 2048
python eval.py

Second stage (category-conditioned generation):

torchrun --nproc_per_node=4 run_class_cond.py --output_dir output/class_encoder_55_512_1024_24_K1024_vqvae_512_1024_2048 --model class_encoder_55_512_1024_24_K1024 --vqvae vqvae_512_1024_2048 --vqvae_pth output/vqvae_512_1024_2048/checkpoint-799.pth --batch_size 32 --num_workers 60 --point_cloud_size 2048

🎈 Sampling

Pick a category id $CATEGORY_ID which you can find definition in shapnet.py. Using the following code to sample a shape, you will find a file sample.obj in the root folder.

python run_class_cond_sample.py --model_pth pretrained/class_encoder_55_512_1024_24_K1024_vqvae_512_1024_2048/checkpoint-399.pth --vqvae_pth pretrained/vqvae_512_1024_2048/checkpoint-799.pth --id $CATEGORY_ID

πŸ“§ Contact

Contact Biao Zhang (@1zb) if you have any further questions. This repository is for academic research use only.

πŸ’‘ Acknowledgments

The architecture of our method is inspired by Taming-transformers and ViT.

πŸ“˜ Citation

@inproceedings{
zhang2022dilg,
title={3{DILG}: Irregular Latent Grids for 3D Generative Modeling},
author={Biao Zhang and Matthias Nie{\ss}ner and Peter Wonka},
booktitle={Advances in Neural Information Processing Systems},
editor={Alice H. Oh and Alekh Agarwal and Danielle Belgrave and Kyunghyun Cho},
year={2022},
url={https://openreview.net/forum?id=RO0wSr3R7y-}
}

πŸ“œ License

This project is under the CC-BY-NC 4.0 license.

3dilg's People

Contributors

1zb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

3dilg's Issues

About training time

Thanks for releasing the codes of this awesome work!
May I know the training cost of the model?

About the sigma parameter in your code implementation

Hi Biao,

I found that in your code there is a sigma parameter sigma. I saw that in the loss function, you decay it to zeros, I don't know what is the purpose of setting this. Could you please give me some feedbacks?

Thanks in advance.

About the decoder stage

Thanks for sharing the codes. The codes are well organized and easy to read.
I have some questions about the decoder stage. If I unstander correctly, you extract T point features and centers at the encoder stage, and sample N points with feature interporlation to compute the logits in the decoder stage. So I wonder what the value of N? Is N equal to 100,000 the same as Occupancy Network?
Thanks!

normalization?

Hi @1zb,

I have another question regarding to data processing? Does the model expect normalized point cloud, SDF coordinates (e.g., transform all points to be within [-0.5, 0.5] ^ 3)? It seems that you scaled the points cloud but not the SDF points?
https://github.com/1zb/3DILG/blob/master/shapenet.py#L134

I'm also curious why the "Axis transform" is only applied on training data. Is this a common practice? -- sorry that I'm new to this line of work :)
https://github.com/1zb/3DILG/blob/master/datasets.py#L33

Thanks in advance!

quick question on dataset

Hi @1zb,

Thank you for sharing your work! Since you haven't released the processed data, can you explain what does "vol_points" and "near_points" mean in your code? Are those the outputs of the mesh-fusion pipeline as well?

vol_points = data['vol_points']

What exactly the x(or say surface) represents in forward function of Autoencoder

Hi, when I read this code, I found there are two inputs x and points in Autoencoder. I found the x is the surface variable, so what it exactly mean?

Since the reconstruction task just needs point cloud input, why do we need the "surface" as one of inputs?

Maybe I misunderstand something as I cannot download so a large dataset.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.