PU-GCN: Point Cloud Upsampling using Graph Convolutional Networks.
PU-GCN is a point cloud upsampling algorithm based on deep learning, which is collected into our open source algorithm library of point cloud. The original project is run on python-3 and tensorflow-1.13, which is in folder './PU-GCN-src'. We expande the Tensorlayer version which is in folder './PU-GCN-tl'.
Algorithm analysis
This algorithm: 1) propose a GCN based point cloud upsampling module called NodeShuffle, which improve state-of-the-art upsampling pipelines when it is used in place of the original upsampling; 2) introduce the Inception DenseGCN to encode multi-scale information; 3) introduce a new large-scale dataset PU1K for point cloud upsampling.
Running commands
- Install Anaconda3
wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh
bash Anaconda3-2019.07-Linux-x86_64.sh
- Build pugcn environment
conda remove --name pugcn --all
conda create -n pugcn python=3.6.8 cudatoolkit=10.1 cudnn numpy=1.16
- Install packages
conda activate pugcn
pip install matplotlib tensorflow-gpu==2.3.1 open3d==0.9 sklearn Pillow gdown plyfile
- Compile TF operations
cd tf_ops
bash compile.sh linux
- Train PUGCN
python main.py --phase train --model pugcn --upsampler nodeshuffle --k 20
- Test and evaluation
cd evaluation_code
bash compile.sh
bash test_pu1k_allmodels.sh
Paths
Pretrained Models:/pretrain/pu1k-pugcn
Upsampled Points:/evaluation_code/result
Metrics: /pretrain/pu1k-pugcn/evaluation.csv
Performance comparison
We compare the algorithm performance of different frameworks under tensorflow and tensorlayer respectively. The main evaluation metrics are CD, HD and P2F.
Paper results:
CD |
HD |
P2F |
0.585 |
7.577 |
2.499 |
Tensorflow:
CD |
HD |
P2F |
0.630 |
9.768 |
2.613 |
Tensorlayer:
CD |
HD |
P2F |
0.646 |
9.251 |
2.635 |
Contributors
name: Zhang Yongchi
email: zhangych02@pcl.ac.cn