All Projects → erikwijmans → Pointnet2_pytorch

erikwijmans / Pointnet2_pytorch

Licence: unlicense
PyTorch implementation of Pointnet2/Pointnet++

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pointnet2 pytorch

Interactive slam
Interactive Map Correction for 3D Graph SLAM
Stars: ✭ 372 (-55.92%)
Mutual labels:  point-cloud
3dmatch Toolbox
3DMatch - a 3D ConvNet-based local geometric descriptor for aligning 3D meshes and point clouds.
Stars: ✭ 571 (-32.35%)
Mutual labels:  point-cloud
3d Machine Learning
A resource repository for 3D machine learning
Stars: ✭ 7,405 (+777.37%)
Mutual labels:  point-cloud
Learning Deep Learning
Paper reading notes on Deep Learning and Machine Learning
Stars: ✭ 388 (-54.03%)
Mutual labels:  point-cloud
Thc Hydra
hydra
Stars: ✭ 5,645 (+568.84%)
Mutual labels:  hydra
Hydra
A light-weight library for building distributed applications such as microservices
Stars: ✭ 611 (-27.61%)
Mutual labels:  hydra
Pvcnn
[NeurIPS 2019, Spotlight] Point-Voxel CNN for Efficient 3D Deep Learning
Stars: ✭ 356 (-57.82%)
Mutual labels:  point-cloud
Gpdnet
Learning Graph-Convolutional Representations for Point Cloud Denoising (ECCV 2020)
Stars: ✭ 19 (-97.75%)
Mutual labels:  point-cloud
Superpoint graph
Large-scale Point Cloud Semantic Segmentation with Superpoint Graphs
Stars: ✭ 533 (-36.85%)
Mutual labels:  point-cloud
Lidar camera calibration
ROS package to find a rigid-body transformation between a LiDAR and a camera for "LiDAR-Camera Calibration using 3D-3D Point correspondences"
Stars: ✭ 734 (-13.03%)
Mutual labels:  point-cloud
Draco
Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.
Stars: ✭ 4,611 (+446.33%)
Mutual labels:  point-cloud
Awesome Robotics
A curated list of awesome links and software libraries that are useful for robots.
Stars: ✭ 478 (-43.36%)
Mutual labels:  point-cloud
Depth clustering
🚕 Fast and robust clustering of point clouds generated with a Velodyne sensor.
Stars: ✭ 657 (-22.16%)
Mutual labels:  point-cloud
Easy3d
A lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data
Stars: ✭ 383 (-54.62%)
Mutual labels:  point-cloud
Pcx
Point cloud importer & renderer for Unity
Stars: ✭ 806 (-4.5%)
Mutual labels:  point-cloud
Kitti2bag
Convert KITTI dataset to ROS bag file the easy way!
Stars: ✭ 359 (-57.46%)
Mutual labels:  point-cloud
Cilantro
A lean C++ library for working with point cloud data
Stars: ✭ 577 (-31.64%)
Mutual labels:  point-cloud
3d Bounding Boxes From Monocular Images
A two stage multi-modal loss model along with rigid body transformations to regress 3D bounding boxes
Stars: ✭ 24 (-97.16%)
Mutual labels:  point-cloud
Pointcloudutilities
Utilities for point cloud processing. read ply, write ply, search nearest neighbors using octree ...
Stars: ✭ 17 (-97.99%)
Mutual labels:  point-cloud
Pcl
Point Cloud Library (PCL)
Stars: ✭ 6,897 (+717.18%)
Mutual labels:  point-cloud

Pointnet2/Pointnet++ PyTorch

  • Implemention of Pointnet2/Pointnet++ written in PyTorch <http://pytorch.org>_.

  • Supports Multi-GPU via nn.DataParallel <https://pytorch.org/docs/stable/nn.html#torch.nn.DataParallel>_.

  • Supports PyTorch version >= 1.0.0. Use v1.0 <https://github.com/erikwijmans/Pointnet2_PyTorch/releases/tag/v1.0>_ for support of older versions of PyTorch.

See the official code release for the paper (in tensorflow), charlesq34/pointnet2 <https://github.com/charlesq34/pointnet2>_, for official model definitions and hyper-parameters.

The custom ops used by Pointnet++ are currently ONLY supported on the GPU using CUDA.

Setup

  • Install python -- This repo is tested with {3.6, 3.7}

  • Install pytorch with CUDA -- This repo is tested with {1.4, 1.5}. It may work with versions newer than 1.5, but this is not guaranteed.

  • Install dependencies

    ::

    pip install -r requirements.txt

Example training

Install with: pip install -e .

There example training script can be found in pointnet2/train.py. The training examples are built using PyTorch Lightning <https://github.com/williamFalcon/pytorch-lightning>_ and Hydra <https://hydra.cc/>_.

A classifion pointnet can be trained as

::

python pointnet2/train.py task=cls

Or with model=msg for multi-scale grouping

python pointnet2/train.py task=cls model=msg

Similarly, semantic segmentation can be trained by changing the task to semseg

::

python pointnet2/train.py task=semseg

Multi-GPU training can be enabled by passing a list of GPU ids to use, for instance

::

python pointnet2/train.py task=cls gpus=[0,1,2,3]

Building only the CUDA kernels

::

pip install pointnet2_ops_lib/.

Or if you would like to install them directly (this can also be used in a requirements.txt)

pip install "git+git://github.com/erikwijmans/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"

Contributing

This repository uses black <https://github.com/ambv/black>_ for linting and style enforcement on python code. For c++/cuda code, clang-format <https://clang.llvm.org/docs/ClangFormat.html>_ is used for style. The simplest way to comply with style is via pre-commit <https://pre-commit.com/>_

::

pip install pre-commit pre-commit install

Citation

::

@article{pytorchpointnet++, Author = {Erik Wijmans}, Title = {Pointnet++ Pytorch}, Journal = {https://github.com/erikwijmans/Pointnet2_PyTorch}, Year = {2018} }

@inproceedings{qi2017pointnet++, title={Pointnet++: Deep hierarchical feature learning on point sets in a metric space}, author={Qi, Charles Ruizhongtai and Yi, Li and Su, Hao and Guibas, Leonidas J}, booktitle={Advances in Neural Information Processing Systems}, pages={5099--5108}, year={2017} }

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].