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:
Relation-Shape Convolutional (RSConv) Neural Network for Point Cloud Analysis
KPConv: Flexible and Deformable Convolution for Point Clouds
PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks
We are actively working on adding the following ones to the framework:
RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds - implemented but not completely tested
and much more to come …
Supported tasks¶
Segmentation
Registration
Classification
Object detection