PU-GCN: Point Cloud Upsampling using Graph Convolutional Networks (CVPR21')
CVPR21 | Arxiv | project | code | PU1K data
This is the official implementation for our CVPR 21' paper PU-GCN: Point Cloud Upsampling using Graph Convolutional Networks. This repository supports training our PU-GCN, and previous methods PU-Net, MPU (3PU), PU-GAN.
Update
- 2021/08/28: provide pretrained model. fix evaluation bug. add more tf_ops compilation instructions.
Preparation
-
Clone the repository:
https://github.com/guochengqian/PU-GCN.git
cd PU-GCN
-
install the environment
Once you have modified the path in compile.sh
under tf_ops
, you can simply install pugcn
environment by:
bash env_install.sh
conda activate pugcn
Note this repository is based on Tensorflow (1.13.1) and the TF operators from PointNet++. You can check the env_install.sh
for details how to install the environment. In the second step, for compiling TF operators, please check compile.sh
in tf_ops
folder, one may have to manually change the path!!
-
Download PU1K dataset from Google Drive
Link the data to ./data
:
mkdir data
ln -s /path/to/PU1K ./data/
-
Optional. The original meshes of PU1K dataset is avaialble in Goolge Drive
Train
Train models. Our pretrained models are available Google Drive
-
PU-GCN
python main.py --phase train --model pugcn --upsampler nodeshuffle --k 20
-
PU-Net
python main.py --phase train --model punet --upsampler original
-
MPU
python main.py --phase train --model mpu --upsampler duplicate
-
PU-GAN
python main.py --phase train --model pugan --more_up 2
Evaluation
-
Test on PU1K dataset
bash test_pu1k_allmodels.sh # please modify this script and `test_pu1k.sh` if needed
-
Test on real-scanned dataset
bash test_realscan_allmodels.sh
-
Visualization.
check below. You have to modify the path inside.
python vis_benchmark.py
Citation
If PU-GCN and the repo are useful for your research, please consider citing:
@InProceedings{Qian_2021_CVPR,
author = {Qian, Guocheng and Abualshour, Abdulellah and Li, Guohao and Thabet, Ali and Ghanem, Bernard},
title = {PU-GCN: Point Cloud Upsampling Using Graph Convolutional Networks},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2021},
pages = {11683-11692}
}
@article{Yu2018PUNetPC,
title={PU-Net: Point Cloud Upsampling Network},
author={Lequan Yu and Xianzhi Li and Chi-Wing Fu and D. Cohen-Or and P. Heng},
journal={2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2018},
pages={2790-2799}
}
@article{Wang2019PatchBasedP3,
title={Patch-Based Progressive 3D Point Set Upsampling},
author={Yifan Wang and Shihao Wu and Hui Huang and D. Cohen-Or and O. Sorkine-Hornung},
journal={2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2019},
pages={5951-5960}
}
@inproceedings{li2019pugan,
title={PU-GAN: a Point Cloud Upsampling Adversarial Network},
author={Li, Ruihui and Li, Xianzhi and Fu, Chi-Wing and Cohen-Or, Daniel and Heng, Pheng-Ann},
booktitle = {{IEEE} International Conference on Computer Vision ({ICCV})},
year = {2019}
}
Acknowledgement
This repo is heavily built on PU-GAN code. We also borrow the architecture and evaluation codes from MPU and PU-Net.