Skip to content
ZrrSkywalkerPublic

About

[CVPR 2023] Parameter is Not All You Need: Starting from Non-Parametric Networks for 3D Point Cloud Analysis

Resources

Stars

540 stars

Watchers

15 watching

Forks

Repository files navigation

Parameter is Not All You Need

Official implementation of 'Parameter is Not All You Need: Starting from Non-Parametric Networks for 3D Point Cloud Analysis'.

The paper has been accepted by CVPR 2023 🔥.

PWC PWC PWC

News

  • Seg-NN has been accepted as CVPR 2024 Highlight Paper 🔥!
  • We release Seg-NN and code, which adapts Point-NN & Point-PN into 3D scene segmentation tasks 🔥.
  • For the first time, we conduct 3D analysis entirely requiring $\color{darkorange}{No\ Parameter\ or\ Training.}$ 💥
  • The code of Point-PN has been released 📌.
  • The code of Point-NN for shape classification and part segmentation has been released.

Introduction

We present a Non-parametric Network for 3D point cloud analysis, Point-NN, which consists of purely non-learnable components. Surprisingly, requiring no parameters or training, it performs well on various 3D tasks, and even surpasses existing fully trained models. Starting from this basic non-parametric model, we propose two extensions. First, Point-NN can serve as a base architectural framework to construct Parametric Networks, Point-PN, which exhibits superior performance with simple linear layers. Second, Point-NN can be regarded as a plug-and-play module to enhance the already trained 3D models during inference by complementary knowledge.

Requirements

Installation

Create a conda environment and install dependencies:

git clone https://github.com/ZrrSkywalker/Point-NN.git
cd Point-NN

conda create -n pointnn python=3.7
conda activate pointnn

# Install the according versions of torch and torchvision
conda install pytorch torchvision cudatoolkit

pip install -r requirements.txt
pip install pointnet2_ops_lib/.

Dataset

Please download the following datasets: ModelNet40, ScanObjectNN, and ShapeNetPart. Then, create a data/ folder and organize the datasets as

data/
|–– h5_files/
|–– modelnet40_ply_hdf5_2048/
|–– shapenetcore_partanno_segmentation_benchmark_v0_normal/

Point-NN --- Very Quick Implementation 🚀

Shape Classification

Due to the training-free manner, the preparation and inference of Point-NN only take 2 minutes.

For ModelNet40 dataset, just run:

python run_nn_cls.py --dataset mn40

For ScanObjectNN dataset, just run:

python run_nn_cls.py --dataset scan --split 1

Please indicate the splits at --split by 1,2,3 for OBJ-BG, OBJ-ONLY, and PB-T50-RS, respectively.

Part Segmentation

For ShapeNetPart, Point-NN takes 7 minutes to achieve 71.5% mIOU (70.4% in the paper), just run:

python run_nn_seg.py

You can increase the point number --points and k-NN neighbors --k into 2048 and 128, which further acheives 74% with 18 minutes.

Point-PN

Shape Classification

Point-PN is the parametric version of Point-NN with efficient parameters and simple 3D operators.

For ModelNet40 dataset, just run:

python run_pn_mn40.py --msg <output filename>

For ScanObjectNN dataset, just run:

python run_pn_scan.py --split 1 --msg <output filename>

Please indicate the splits at --split by 1,2,3 for OBJ-BG, OBJ-ONLY, and PB-T50-RS, respectively.

Citation

@article{zhang2023parameter,
  title={Parameter is not all you need: Starting from non-parametric networks for 3d point cloud analysis},
  author={Zhang, Renrui and Wang, Liuhui and Wang, Yali and Gao, Peng and Li, Hongsheng and Shi, Jianbo},
  journal={arXiv preprint arXiv:2303.08134},
  year={2023}
}

Contact

If you have any question about this project, please feel free to contact zhangrenrui@pjlab.org.cn.

About

[CVPR 2023] Parameter is Not All You Need: Starting from Non-Parametric Networks for 3D Point Cloud Analysis

Resources

Stars

540 stars

Watchers

15 watching

Forks

Releases

Packages

Used by

Contributors

Languages