Volver al ranking

guochengqian/PointNeXt

Pythonguochengqian.github.io/PointNeXt/

[NeurIPS'22] PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies

3d-visionpointcloudpointnet2pytorch
Crecimiento de estrellas
Estrellas
1.1k
Forks
162
Crecimiento semanal
Issues
0
5001k
ene 2023mar 2024may 2025jul 2026
ArtefactosPyPIpip install pointnext
README

PointNeXt

[arXiv] | [OpenPoints Library] | [Online Documentation]

Official PyTorch implementation for the following paper:

PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies

by Guocheng Qian, Yuchen Li, Houwen Peng, Jinjie Mai, Hasan Hammoud, Mohamed Elhoseiny, Bernard Ghanem

TL;DR: We propose improved training and model scaling strategies to boost PointNet++ to the state-of-the-art level. PointNet++ with the proposed model scaling is named as PointNeXt, the next version of PointNets.

News

  • :boom: Sep, 2022: PointNeXt accepted by NeurIPS'22
  • :boom: Jun, 2022: Code released

Features

In the PointNeXt project, we propose a new and flexible codebase for point-based methods, namely OpenPoints. The biggest difference between OpenPoints and other libraries is that we focus more on reproducibility and fair benchmarking.

  1. Extensibility: supports many representative networks for point cloud understanding, such as PointNet, DGCNN, DeepGCN, PointNet++, ASSANet, PointMLP, and our PointNeXt. More networks can be built easily based on our framework since OpenPoints support a wide range of basic operations including graph convolutions, self-attention, farthest point sampling, ball query, e.t.c.

  2. Reproducibility: all implemented models are trained on various tasks at least three times. Mean±std is provided in the PointNeXt paper. Pretrained models and logs are available.

  3. Fair Benchmarking: in PointNeXt, we find a large part of performance gain is due to the training strategies. In OpenPoints, all models are trained with the improved training strategies and all achieve much higher accuracy than the original reported value.

  4. Ease of Use: Build model, optimizer, scheduler, loss function, and data loader easily from cfg. Train and validate different models on various tasks by simply changing the cfg\*\*.yaml file.

    model = build_model_from_cfg(cfg.model)
    criterion = build_criterion_from_cfg(cfg.criterion_args)
    

    Here is an example of pointnet.yaml (model configuration for PointNet model):

    model:
      NAME: BaseCls
      encoder_args:
        NAME: PointNetEncoder
        in_channels: 4
      cls_args:
        NAME: ClsHead
        num_classes: 15
        in_channels: 1024
        mlps: [512,256]
        norm_args: 
          norm: 'bn1d'
    
  5. Online logging: Support wandb for checking your results anytime anywhere. Just set wandb.use_wandb=True in your command.

    docs/misc/wandb.png


Installation

Pip packages

The Python libraries are released as installable packages:

pip install pointnext_official

pointnext_official installs openpoints as its core library dependency and provides PointNeXt release metadata and checkpoint download helpers, for example:

pointnext-download --list
pointnext-download modelnet40-pointnext-s-c64 --output-dir ./hf_cache

The PyPI packages are importable without compiling CUDA extensions. Full training/evaluation still requires the custom CUDA/C++ ops, so use a source checkout for benchmark reproduction.

Source install for training/evaluation

git clone --recurse-submodules https://github.com/guochengqian/PointNeXt.git
cd PointNeXt
git submodule update --init --recursive
source update.sh
source install.sh

If SSH is configured, git@github.com:guochengqian/PointNeXt.git also works. The current install.sh targets modern NVIDIA GPUs, including Blackwell (RTX 50-series / RTX 5090, sm_120), via a uv + Python 3.12 environment with PyTorch ≥2.7 built for CUDA 12.8 (cu128). Blackwell requires CUDA ≥12.8 and PyTorch ≥2.7; the legacy CUDA 11.3 recipe (kept commented at the bottom of install.sh) does not run on an RTX 5090. To compile the CUDA ops you also need a matching CUDA toolkit (nvcc) and a host compiler the toolkit supports (CUDA 12.x needs g++ < 14, e.g. sudo apt install gcc-13 g++-13). Modify install.sh for a different CUDA/PyTorch version. See Install, FAQ, and Checkpoints for details.

Usage

Check our online documentation for detailed instructions.

A short instruction: all experiments follow the simple rule to train and test:

CUDA_VISIBLE_DEVICES=$GPUs python examples/$task_folder/main.py --cfg $cfg $kwargs
  • $GPUs is the list of GPUs to use, for most experiments (ScanObjectNN, ModelNet40, S3DIS), we only use 1 A100 (GPUs=0)
  • $task_folder is the folder name of the experiment. For example, for s3dis segmentation, $task_folder=s3dis
  • $cfg is the path to cfg, for example, s3dis segmentation, $cfg=cfgs/s3dis/pointnext-s.yaml
  • $kwargs are the other keyword arguments to use. For example, testing in S3DIS area 5, $kwargs should be mode=test, --pretrained_path $pretrained_path.

Model Zoo (pretrained weights)

See Model Zoo and checkpoint download docs. The recommended new release path hosts large checkpoints and checksum manifests on Hugging Face Hub, while GitHub Releases/PyPI host source and Python packages.

Visualization

More examples are available in the paper.

s3dis shapenetpart


Acknowledgment

This library is inspired by PyTorch-image-models and mmcv.

Citation

If you find PointNeXt or the OpenPoints codebase useful, please cite:

@InProceedings{qian2022pointnext,
  title   = {PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies},
  author  = {Qian, Guocheng and Li, Yuchen and Peng, Houwen and Mai, Jinjie and Hammoud, Hasan and Elhoseiny, Mohamed and Ghanem, Bernard},
  booktitle=Advances in Neural Information Processing Systems (NeurIPS),
  year    = {2022},
}
Repositorios relacionados
Pointcept/Pointcept

Pointcept: Perceive the world with sparse points, a codebase for point cloud perception research. Latest works: Utonia (ICML'26), Concerto (NeurIPS'25), Sonata (CVPR'25 Highlight), PTv3 (CVPR'24 Oral)

PythonPyPIMIT License3d-visionpoint-cloud
3.1k398
NVIDIA/MinkowskiEngine

Minkowski Engine is an auto-diff neural network library for high-dimensional sparse tensors

PythonPyPIOtherneural-networkcomputer-vision
nvidia.github.io/MinkowskiEngine
2.9k482
zju3dv/LoFTR

Code for "LoFTR: Detector-Free Local Feature Matching with Transformers", CVPR 2021, T-PAMI 2022

Jupyter NotebookApache License 2.0feature-matchingpose-estimation
zju3dv.github.io/loftr/
2.9k420
microsoft/MoGe

[CVPR'25 Oral] MoGe: Unlocking Accurate Monocular Geometry Estimation for Open-Domain Images with Optimal Training Supervision

PythonPyPIOther3d-reconstruction3d-vision
wangrc.site/MoGePage/
2.7k205
google-research-datasets/Objectron

Objectron is a dataset of short, object-centric video clips. In addition, the videos also contain AR session metadata including camera poses, sparse point-clouds and planes. In each video, the camera moves around and above the object and captures it from different views. Each object is annotated with a 3D bounding box. The 3D bounding box describes the object’s position, orientation, and dimensions. The dataset contains about 15K annotated video clips and 4M annotated images in the following categories: bikes, books, bottles, cameras, cereal boxes, chairs, cups, laptops, and shoes

Jupyter NotebookOtherdeep-learningcomputer-vision
2.3k267
zju3dv/NeuralRecon

Code for "NeuralRecon: Real-Time Coherent 3D Reconstruction from Monocular Video", CVPR 2021 oral

PythonPyPIApache License 2.03d-reconstruction3d-vision
zju3dv.github.io/neuralrecon/
2.3k312
junshutang/Make-It-3D

[ICCV 2023] Make-It-3D: High-Fidelity 3D Creation from A Single Image with Diffusion Prior

PythonPyPI3d-generation3d-vision
1.9k137
mint-lab/3dv_tutorial

An Invitation to 3D Vision: A Tutorial for Everyone

CMakeOther3d-visionvisual-geometry
1.8k336
snavely/bundler_sfm

Bundler Structure from Motion Toolkit

Cstructure-from-motioncomputer-vision
1.6k478
QingyongHu/RandLA-Net

🔥RandLA-Net in Tensorflow (CVPR 2020, Oral & IEEE TPAMI 2021)

PythonPyPIOthersemantic-segmentation3d-vision
1.6k335
cvg/pixel-perfect-sfm

Pixel-Perfect Structure-from-Motion with Featuremetric Refinement (ICCV 2021, Best Student Paper Award)

C++Apache License 2.0deep-learningstructure-from-motion
1.5k153
una-dinosauria/3d-pose-baseline

A simple baseline for 3d human pose estimation in tensorflow. Presented at ICCV 17.

PythonPyPIMIT Licensetensorflowcomputer-vision
1.5k357