README.md
August 20, 2020 ยท View on GitHub
PCN: Point Completion Network
[paper] [data] [website]
Introduction
PCN is a learning-based shape completion method which directly maps a partial point cloud to a dense, complete point cloud without any voxelization. It is based on our 3DV 2018 publication PCN: Point Completion Network. Please refer to our project website or read our paper for more details.
Citation
If you find our work useful for your research, please cite:
@inProceedings{yuan2018pcn,
title = {PCN: Point Completion Network},
author = {Yuan, Wentao and Khot, Tejas and Held, David and Mertz, Christoph and Hebert, Martial},
booktitle = {3D Vision (3DV), 2018 International Conference on},
year = {2018}
}
Usage
1) Prerequisite
- Install dependencies via
pip3 install -r requirments.txt. - Follow this guide to install Open3D for point cloud I/O.
- Build point cloud distance ops by running
makeunderpc_distance. Make sure the paths in makefile are correct. - Download trained models from Google Drive.
This code is built using Tensorflow 1.12 with CUDA 9.0 and tested on Ubuntu 16.04 with Python 3.5.
2) Demo
Run python3 demo.py. Use --input_path option to switch between the input examples in demo_data.
3) ShapeNet Completion
- Download ShapeNet test data in the
shapenetfolder on Google Drive. Specifically, this experiment requirestest,test_novel,test.listandtest_novel.list. - Run
python3 test_shapenet.py. Use--model_typeoption to choose different model architectures. Typepython3 test_shapenet.py -hfor more options.
4) KITTI Completion
- Download KITTI data in the
kittifolder on Google Drive. - Run
python3 test_kitti.py. Typepython3 test_kitti.py -hfor more options.
5) KITTI Registration
- Run the KITTI completion experiment first to get complete point clouds.
- Run
python3 kitti_registration.py. Typepython3 kitti_registration.py -hfor more options.
6) Training
- Download training (
train.lmdb,train.lmdb-lock) and validation (valid.lmdb,valid.lmdb-lock) data fromshapenetorshapenet_cardirectory on Google Drive. Note that the training data for all 8 categories inshapenettakes up 49G of disk space. The training data for only the car category takes 9G instead. - Run
python3 train.py. Typepython3 train.py -hfor more options.
7) Data Generation
To generate your own data from ShapeNet, first Download ShapeNetCore.v1. Then, create partial point clouds from depth images (see instructions in render) and corresponding ground truths by sampling from CAD models (see instructions in sample). Finally, serialize the data using lmdb_writer.py.
License
This project Code is released under the MIT License (refer to the LICENSE file for details).