Skip to content

IntelligentGeometry/NeLo

Repository files navigation

NeLo: Neural Laplacian Operators on Point Clouds

This work introduces a novel way for Laplacian operator estimation on point clouds. Please refer to our paper for more details: arxiv.

We will continue to optimize & update this repo in the future. TODO list:

  • Rename the confusing class name "graphtree" to "h_graph", and clean the legacy code in that class

  • Clean the unncessary configs

  • Check the installation script, specify the version of pyg

  • Upload the code of applications of Laplacian (eigen-decompose, laplaician smoothing, etc.)

  • Upload a checkpoint trained on more categories of ShapeNet

  • Reoriginaze the data-preparing code

1. Environment

We test the code in Ubuntu 22.04 with pytorch 2.3. The model was trained on 4x4090 GPUs, but it should be OK to do inference with a 1060 GPU.

To run the code, first, please install pytorch that fits your cuda version.

Then:

conda install pyg -c pyg

bash install_requirements.sh

2. Dataset

We provide the script of generating training data (Section 4.1 in the paper). Please put the mesh you want to process in raw_data folder. Then run:

cd src/data_prepare

python generate_processed_mesh.py

You will see the processed mesh in processed_data folder.

3. Training

Before training, you may want to specifiy some hyperparamters. You can open config/global_config.py and modify the training settings. Most paramters in that file are self-explainary.

To train the model:

python main.py --config config/global_config.py

A pretrained checkpoint is provided on Google Drive. Please put it in out/checkpoints. It was trained on a subset of ShapeNet objects. As a deep-learning based method, it may not generalize well on categories very different from the training set.

4. Inference

We provide three simple script to visualize the result of our method on different shapes. You can run any of the three scripts to see the result.

bash script/test_on_desk.sh

# or test_on_chair.sh, test_on_plane.sh

After this, there should be 3 browser tabs opened, visualizing $L_{ours}f$, $L_{robust} f$, $L_{gt}f$ (ours, [Sharp and Crane 2020], and ground truth), where $f$ is the 48th eigenvector of the input shape.

5. Citation

If you find this project useful for your research, please kindly cite our paper:

@article{pang2024neural,

title={Neural Laplacian Operator for 3D Point Clouds},

author={Pang, Bo and Zheng, Zhongtian and Li, Yilong and Wang, Guoping and Wang, Peng-Shuai},

journal={ACM Transactions on Graphics (SIGGRAPH Asia)},

year={2024}

}

If you have any questions, please feel free to contact us at bo98@stu.pku.edu.cn

About

NeLo: Neural Laplacian Operators on Point Clouds

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published