/PMP-Net

Primary LanguagePythonMIT LicenseMIT

PMP-Net: Point Cloud Completion by Learning Multi-step Point Moving Paths

This repository contains the source code for the paper PMP-Net: Point Cloud Completion by Learning Multi-step Point Moving Paths. The project page is here. Intro pic

Cite this work

@inproceedings{wen2021pmp,
  title={PMP-Net: Point cloud completion by learning multi-step point moving paths},
  author={Wen, Xin and Xiang, Peng and Han, Zhizhong and Cao, Yan-Pei and Wan, Pengfei and Zheng, Wen and Liu, Yu-Shen},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year={2021}
}

Datasets

We use the PCN and Compeletion3D datasets in our experiments, which are available below:

The pretrained models on Completion3D and PCN dataset are available as follows:

Backup Links:

Install Python Denpendencies

cd PMP-Net
pip install -r requirements.txt

Build PyTorch Extensions

NOTE: PyTorch >= 1.4 of cuda version are required.

cd pointnet2_ops_lib
python setup.py install

cd ..

cd Chamfer3D
python setup.py install

You need to update the file path of the datasets:

__C.DATASETS.COMPLETION3D.PARTIAL_POINTS_PATH    = '/path/to/datasets/Completion3D/%s/partial/%s/%s.h5'
__C.DATASETS.COMPLETION3D.COMPLETE_POINTS_PATH   = '/path/to/datasets/Completion3D/%s/gt/%s/%s.h5'
__C.DATASETS.SHAPENET.PARTIAL_POINTS_PATH        = '/path/to/datasets/ShapeNet/ShapeNetCompletion/%s/partial/%s/%s/%02d.pcd'
__C.DATASETS.SHAPENET.COMPLETE_POINTS_PATH       = '/path/to/datasets/ShapeNet/ShapeNetCompletion/%s/complete/%s/%s.pcd'

# Dataset Options: Completion3D, Completion3DPCCT, ShapeNet, ShapeNetCars
__C.DATASET.TRAIN_DATASET                        = 'ShapeNet'
__C.DATASET.TEST_DATASET                         = 'ShapeNet'

Getting Started

To train PMP-Net, you can simply use the following command:

python main_*.py  # remember to change '*' to 'c3d' or 'pcn'

To test or inference, you should specify the path of checkpoint if the config_*.py file

__C.CONST.WEIGHTS                                = "path to your checkpoint"

then use the following command:

python main_*.py --test
python main_*.py --inference

Acknowledgements

Some of the code of this repo is borrowed from GRNet and pytorchpointnet++. We thank the authors for their great job!

License

This project is open sourced under MIT license.