2020-03-31 19:56:08 +00:00
2020-04-27 22:20:35 +00:00
![Intro figure ](https://github.com/HuguesTHOMAS/KPConv-PyTorch/blob/master/doc/Github_intro.png )
2020-03-31 19:56:08 +00:00
Created by Hugues THOMAS
## Introduction
2020-04-27 22:18:00 +00:00
This repository contains the implementation of **Kernel Point Convolution** (KPConv) in [PyTorch ](https://pytorch.org/ ).
2020-03-31 19:56:08 +00:00
2020-04-27 23:27:31 +00:00
KPConv is also available in [Tensorflow ](https://github.com/HuguesTHOMAS/KPConv ) (original but older implementation).
Another implementation of KPConv is available in [PyTorch-Points-3D ](https://github.com/nicolas-chaulet/torch-points3d )
2020-03-31 19:56:08 +00:00
KPConv is a point convolution operator presented in our ICCV2019 paper ([arXiv](https://arxiv.org/abs/1904.08889)). If you find our work useful in your
research, please consider citing:
```
@article {thomas2019KPConv,
Author = {Thomas, Hugues and Qi, Charles R. and Deschaud, Jean-Emmanuel and Marcotegui, Beatriz and Goulette, Fran{\c{c}}ois and Guibas, Leonidas J.},
Title = {KPConv: Flexible and Deformable Convolution for Point Clouds},
Journal = {Proceedings of the IEEE International Conference on Computer Vision},
Year = {2019}
}
```
## Installation
2020-04-27 22:18:00 +00:00
This implementation has been tested on Ubuntu 18.04 and Windows 10. Details are provided in [INSTALL.md ](./INSTALL.md ).
2020-03-31 19:56:08 +00:00
## Experiments
2020-04-27 22:18:00 +00:00
We provide scripts for three experiments: ModelNet40, S3DIS and SemanticKitti. The instructions to run these
experiments are in the [doc ](./doc ) folder.
* [Object Classification ](./doc/object_classification_guide.md ): Instructions to train KP-CNN on an object classification
task (Modelnet40).
* [Scene Segmentation ](./doc/scene_segmentation_guide.md ): Instructions to train KP-FCNN on a scene segmentation
task (S3DIS).
* [SLAM Segmentation ](./doc/slam_segmentation_guide.md ): Instructions to train KP-FCNN on a slam segmentation
task (SemanticKitti).
* [Pretrained models ](./doc/pretrained_models_guide.md ): We provide pretrained weights and instructions to load them.
* [Visualization scripts ](./doc/visualization_guide.md ): For now only one visualization script has been implemented:
the kernel deformations display.
2020-03-31 19:56:08 +00:00
## Acknowledgment
Our code uses the < a href = "https://github.com/jlblancoc/nanoflann" > nanoflann< / a > library.
## License
Our code is released under MIT License (see LICENSE file for details).
## Updates
2020-04-27 22:18:00 +00:00
* 27/04/2020: Initial release.
2022-04-13 12:36:58 +00:00
* 27/04/2020: Added NPM3D support thanks to @GeoSur .