This is the official implementation for paper PU-GACNet: Graph Attention Convolution Network for Point Cloud Upsampling
Previous methods including PU-Net, MPU (3PU), PU-GAN, Dis-PU, PU-GCN and the repositories of PU-GCN support training our PU-GACNet. Please kindly cite all of the methods.
This repository is based on Tensorflow (1.13.1) and the TF operators from PointNet++. Therefore, you need to install tensorflow and compile the TF operators.
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
and tf_compile.sh
in tf_ops
folder, one has to manually change the path!!.
-
Clone the repository:
https://github.com/BingHan0458/PU-GACNet cd PU-GAC
-
Install the environment:
Once you have modified the path in
compile.sh
andtf_compile.sh
undertf_ops
, you can simply installpugac
environment by:source env_install.sh conda activate pugac
-
Download the dataset:
You can download PU1K dataset from Google Drive and place it into PU-GAC/data/PU1K.
The directory tree of the data file is as follows:
data |__PU1K |__train |__pu1k_poisson_256_poisson_1024_pc_2500_patch50_addpugan.h5 |__test |__original_meshes |__*.off |__input_2048 |__*.xyz |__gt_8192 |__*.xyz |__realscan_KITTI |__0000001.xyz |__...
Since PU1K benchmark data is used, no data preprocessing operations are required. If you want to use your own datasets, you can refer to
data_preprocessing/prep_data
for data processing. -
Train the models:
- PU-GACNet
python main.py --phase train --model pugac --upsampler edge-aware_nodeshuffle --k 20
- PU-GCN
python main.py --phase train --model pugcn --upsampler nodeshuffle --k 20
- PU-Net
python main.py --phase train --model punet --upsampler multi_cnn
- MPU
python main.py --phase train --model mpu --upsampler duplicate
- PU-GAN
python main.py --phase train --model pugan --more_up 2
-
Evaluate the models:
Before testing, please copy the corresponding model to the
pretrain
folder. Then you can run the scriptstest_pu1k_allmodels.sh
.source test_pu1k_allmodels.sh # please look this file and `test_pu1k.sh` for details
-
Test on the real-scanned dataset:
Before testing, please copy the corresponding model to the
pretrain
folder. Then you can run the scriptstest_realscan_allmodels.sh
.source test_realscan_allmodels.sh # please look this file and `test_realscan.sh` for details
-
Visualization:
You can use meshlab or cloudcompare software for visualization. Furthermore, mayavi is also a good choice.
If PU-GACNet and the repo are useful for your research, please consider citing:
@inproceedings{Yu2018Pu,
author = "Lequan Yu and Xianzhi Li and Chi-Wing Fu and Daniel Cohen-Or and Pheng-Ann Heng.",
year = 2018,
title = "{Pu-net: Point cloud upsampling network}",
booktitle="Proceedings of IEEE Conference on Computer Vision and Pattern Recognition {(CVPR-18)}",
pages = "2790-2799",
}
@inproceedings{Wang2019Patch,
author = "Yifan Wang and Shihao Wu and Hui Huang and Daniel Cohen-Or and Olga Sorkine-Hornung.",
year = 2019,
title = "{Patch-based progressive 3d point set upsampling}",
booktitle="Proceedings of IEEE Conference on Computer Vision and Pattern Recognition {(CVPR-19)}",
pages = "5958-5967",
}
@inproceedings{Li2019Pu,
author = "Ruihui Li and Xianzhi Li and Chi-Wing Fu and Daniel Cohen-Or and Pheng-Ann Heng.",
year = 2019,
title = "{Pu-gan: A point cloud upsampling adversarial network}",
booktitle="Proceedings of IEEE International Conference on Computer Vision {(ICCV-19)}",
pages = "7203-7212",
}
@inproceedings{Li2021Point,
author = "Ruihui Li and Xianzhi Li and PhengAnn Heng and ChiWing Fu.",
year = 2021,
title = "{Point cloud upsampling via disentangled refinement}",
booktitle="Proceedings of IEEE Conference on Computer Vision and Pattern Recognition {(CVPR-21)}",
pages = "344-353",
}
@inproceedings{Qian2021Pu,
author = "Guocheng Qian and Abdulellah Abualshour and Guohao Li and Ali Thabet and Bernard Ghanem.",
year = 2021,
title = "{Pu-gcn: Point cloud upsampling using graph convolutional networks}",
booktitle="Proceedings of IEEE Conference on Computer Vision and Pattern Recognition {(CVPR-21)}",
pages = "11683-11692",
}