GithubHelp home page GithubHelp logo

qizekun / vpp Goto Github PK

View Code? Open in Web Editor NEW
28.0 6.0 1.0 3.79 MB

[NeurIPS 2023] VPP: Efficient Conditional 3D Generation via Voxel-Point Progressive Representation

Home Page: https://arxiv.org/abs/2307.16605

License: MIT License

Python 85.47% Cuda 9.14% C++ 4.89% C 0.22% Shell 0.28%
3d 3d-generation 3d-point-clouds conditional-generation representation-learning

vpp's Introduction

VPP⚡

VPP: Efficient Conditional 3D Generation via Voxel-Point Progressive Representation, NeurIPS 2023
Zekun Qi, Muzhou Yu, Runpei Dong and Kaisheng Ma

arXiv Paper

News

  • 🎆 Sep, 2023: VPP is accepted to NeurIPS 2023.
  • 💥 Aug, 2023: Check out our previous work ACT and ReCon about 3D represent learning, which have been accepted by ICLR & ICML 2023.

This repository contains the code release of VPP⚡: Efficient Conditional 3D Generation via Voxel-Point Progressive Representation.

1. Requirements

PyTorch >= 1.7.0; python >= 3.7; CUDA >= 9.0; GCC >= 4.9; torchvision;

# Quick Start
conda create -n vpp python=3.8 -y
conda activate vpp

conda install pytorch==1.10.0 torchvision==0.11.0 cudatoolkit=11.3 -c pytorch -c nvidia
# pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html
# Install basic required packages
pip install -r requirements.txt
# Chamfer Distance
cd ./extensions/chamfer_dist && python setup.py install --user

# install sap to recontruct meshes from point clouds
cd sap
cd pointnet2_ops_lib && pip install -e .
wget https://github.com/facebookresearch/pytorch3d/archive/refs/tags/v0.6.1.zip
unzip v0.6.1.zip
cd pytorch3d-0.6.1/ && pip install -e .

2. Training

2.1 Data Preparation

See DATASET.md for details.

2.2 Training 3D VQGAN

sh scripts/train_vqgan.sh <gpu_id>

2.3 Training Voxel Semantic Generator

sh scripts/train_voxel_generator.sh <gpu_id>

2.4 Training Grid Smoother

sh scripts/train_grid_smoother.sh <gpu_id>

2.5 Training Point Upsampler

sh scripts/train_point_upsampler.sh <gpu_id>

3. Conditional Point Clouds Generation

text prompt:

sh scripts/inference/text_prompt.sh <gpu_id> "a round table."

image prompt:

sh scripts/inference/image_prompt.sh <gpu_id> <img_path>

5. Reconstruction Meshes from Point Clouds

Download the pretrained sap model.

cd sap
export CUDA_VISIBLE_DEVICES=0 && python mesh_reconstruction.py --config ../sap.json --ckpt ../sap.pkl --dataset_path ../points.npz --save_dir output/

The shape as points reconstruction pipeline originates from SLIDE, which has been trained on multi-category ShapeNet datasets with artificial noise.

6. Visualization

We use PointVisualizaiton repo to render beautiful point cloud image, including specified color rendering and attention distribution rendering.

Contact

If you have any questions related to the code or the paper, feel free to email Zekun ([email protected]).

License

VPP is released under MIT License. See the LICENSE file for more details.

Acknowledgements

This codebase is built upon Point-MAE, CLIP and SLIDE

Citation

If you find our work useful in your research, please consider citing:

@inproceedings{vpp2023,
title={{VPP}: Efficient Universal 3D Generation via Voxel-Point Progressive Representation},
author={Qi, Zekun and Yu, Muzhou and Dong, Runpei and Ma, Kaisheng},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
year={2023},
url={https://openreview.net/forum?id=etd0ebzGOG}
}

vpp's People

Contributors

qizekun avatar runpeidong 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

whuhxb

vpp's Issues

How can I get the FID, IS and Acc with PointNet++?

The paper reports the results of FID and IS on CLIP-Forge and Point-E. It confuses me how do you get the FID and IS of Point-E and CLIP-Forge. As far as I know CLIP-Forge gets the FID and IS based on a voxel classifier while Point-E gets the FID and IS based on a pointcloud classifier. Which pointnet++ classifier should I use?

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.