Ongoing project with University of Toronto. Final improved version will be published in a new repository
List of upgrades compared to KPConv-Pytorch
- New pytorch implementation of grid subsampling on GPU tensors using
torch.unique
function. - New pytorch implementation of cropped radius neighbor on GPU tensors using Keops.
- New network blocks, simplified and more standalone
- Separate block for KPConv, KPDef and KPInv blocks
- More standalone blocks for easir plug and play in other networks and tasks
- Configuration as an easyDict and save as json for readability
- Option to choose from two input pipelines:
- Simpler input pipeline that does not preload neighborhoods.
- With it, a network that computes conv neighbors on the fly on GPU.
- Faster for inference on streamed data (like segmenting lidar frames in real time).
- Easier to use as plug and play in other types of networks that do not compute neighbors during data preparation.
- Smaller use of CPU.
- Old pipeline precomputing neighbors in parallel on GPU.
- The neighbors are computed in advance by the dataloader on CPU.
- Much faster training or test when data is already on disk and input preparation can be parallelized.
- Possible heavy CPU usage.
- Simpler input pipeline that does not preload neighborhoods.
- New simplified and faster calibration for batch limit and neighbor limits.
- Additional options like feature grouping.
- New definition of architecture layers and blocks.
- Still the option