Torch Points 3D is a framework for developing and testing common deep learning models to solve tasks related to unstructured 3D spatial data i.e. Point Clouds. The framework currently integrates some of the best published architectures and it integrates the most common public datasests for ease of reproducibility. It heavily relies on Pytorch Geometric and Facebook Hydra library thanks for the great work!

We aim to build a tool which can be used for benchmarking SOTA models, while also allowing practitioners to efficiently pursue research into point cloud analysis, with the end-goal of building models which can be applied to real-life applications.


Install with pip

You can easily install Torch Points3D with pip

pip install torch
pip install torch-points3d

but first make sure that the following dependencies are met

  • CUDA 10 or higher (if you want GPU version)

  • Python 3.6 or higher + headers (python-dev)

  • PyTorch 1.7 or higher

  • MinkowskiEngine (optional) see here for installation instructions

Core features

  • Task driven implementation with dynamic model and dataset resolution from arguments.

  • Core implementation of common components for point cloud deep learning - greatly simplifying the creation of new models:

    • Core Architectures - Unet

    • Core Modules - Residual Block, Down-sampling and Up-sampling convolutions

    • Core Transforms - Rotation, Scaling, Jitter

    • Core Sampling - FPS, Random Sampling, Grid Sampling

    • Core Neighbour Finder - Radius Search, KNN

  • 4 Base Convolution base classes to simplify the implementation of new convolutions. Each base class supports a different data format (B = number of batches, C = number of features):

    • DENSE (B, num_points, C)

    • PARTIAL DENSE (B * num_points, C)

    • MESSAGE PASSING (B * num_points, C)

    • SPARSE (B * num_points, C)

  • Models can be completely specified using a YAML file, greatly easing reproducability.

  • Several visualiation tools (tensorboard, wandb) and dynamic metric-based model checkpointing , which is easily customizable.

  • Dynamic customized placeholder resolution for smart model definition.

Supported models

The following models have been tested and validated:

We are actively working on adding the following ones to the framework:

and much more to come …

Supported tasks

  • Segmentation

  • Registration

  • Classification

  • Object detection