Authors: Himangi Mittal, Brian Okorn, Arpit Jangid, David Held
[Conference Paper][Arxiv (Paper + Supplementary)][Conference Presentation][Webpage]
If you find our work useful in your research, please cite:
@article{mittal2021self,
title={Self-Supervised Point Cloud Completion via Inpainting},
author={Mittal, Himangi and Okorn, Brian and Jangid, Arpit and Held, David},
journal={arXiv preprint arXiv:2111.10701},
year={2021}
}
In this work, we adopt an inpainting-based approach for self-supervised point cloud completion to train our network using only partial point clouds. Given a partial point cloud as input, we randomly remove regions from it and train the network to complete these regions using the input as the pseudo-ground truth. The loss is only applied to the regions which have points in the observed input partial point cloud. Since, the network cannot differentiate between synthetic and natural occlusions, the network predicts a complete point cloud.
For more details, please refer to our paper or project page.
(a). Clone the repository
git clone https://github.com/HimangiM/Self-Supervised-Point-Cloud-Completion-via-Inpainting.git
b). Install dependencies
python3 -m venv pcn3
source pcn3/bin/activate
cd Self-Supervised-Point-Cloud-Completion-via-Inpainting
pip install -r requirements.txt
Build point cloud distance ops by running `make` under `pc_distance`.
To train on Shapenet categories (airplane, car, chair respectively), run the following command:
Airplanes: bash command_train_shapenet_planes.sh
Cars: bash command_train_shapenet_cars.sh
Chairs: bash command_train_shapenet_chairs.sh
To train on Semantic KITTI dataset, run the following command:
bash command_train_semantickitti.sh
Simply, change the --train flag to --test flag in the command file and call lmdb_train dataset.