# 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'](https://arxiv.org/pdf/2303.08134.pdf).
The paper has been accepted by **CVPR 2023** ð¥.
[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/parameter-is-not-all-you-need-starting-from/training-free-3d-point-cloud-classification)](https://paperswithcode.com/sota/training-free-3d-point-cloud-classification?p=parameter-is-not-all-you-need-starting-from)
[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/parameter-is-not-all-you-need-starting-from/training-free-3d-point-cloud-classification-1)](https://paperswithcode.com/sota/training-free-3d-point-cloud-classification-1?p=parameter-is-not-all-you-need-starting-from)
[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/parameter-is-not-all-you-need-starting-from/training-free-3d-part-segmentation-on)](https://paperswithcode.com/sota/training-free-3d-part-segmentation-on?p=parameter-is-not-all-you-need-starting-from)
## News
* **Seg-NN** has been accepted as ***CVPR 2024 Highlight Paper*** ð¥!
* We release [Seg-NN](https://arxiv.org/pdf/2404.04050.pdf) and [code](https://github.com/yangyangyang127/Seg-NN), 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 **N**on-parametric **N**etwork 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 **P**arametric **N**etworks, **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.
<div align="center">
<img src="pipeline.png"/>
</div>
## Requirements
### Installation
Create a conda environment and install dependencies:
```bash
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](https://shapenet.cs.stanford.edu/media/modelnet40_ply_hdf5_2048.zip), [ScanObjectNN](https://hkust-vgd.ust.hk/scanobjectnn/h5_files.zip), and [ShapeNetPart](https://shapenet.cs.stanford.edu/media/shapenetcore_partanno_segmentation_benchmark_v0_normal.zip). 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:
```bash
python run_nn_cls.py --dataset mn40
```
For ScanObjectNN dataset, just run:
```bash
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:
```bash
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:
```bash
python run_pn_mn40.py --msg <output filename>
```
For ScanObjectNN dataset, just run:
```bash
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
```bash
@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.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Point-PN-main.zip (42个子文件)
utils.py 13KB
pipeline.png 725KB
run_pn_mn40.py 10KB
LICENSE 1KB
run_pn_scan.py 11KB
Point-NN_arxiv.pdf 5.25MB
datasets
data_scan.py 2KB
data_pn_mn40.py 3KB
data_seg.py 4KB
data_mn40.py 4KB
data_pn_scan.py 8KB
run_nn_seg.py 5KB
requirements.txt 193B
logger.py 2KB
pointnet2_ops_lib
setup.py 1KB
pointnet2_ops
__init__.py 123B
pointnet2_modules.py 6KB
_version.py 22B
_ext-src
include
cuda_utils.h 1KB
ball_query.h 163B
interpolate.h 386B
group_points.h 183B
utils.h 983B
sampling.h 260B
src
sampling_gpu.cu 7KB
sampling.cpp 3KB
ball_query.cpp 1KB
bindings.cpp 570B
interpolate.cpp 3KB
group_points_gpu.cu 3KB
group_points.cpp 2KB
ball_query_gpu.cu 2KB
interpolate_gpu.cu 5KB
pointnet2_utils.py 10KB
MANIFEST.in 29B
models
__init__.py 162B
model_utils.py 2KB
point_nn_seg.py 8KB
point_pn.py 9KB
point_nn.py 6KB
README.md 5KB
run_nn_cls.py 4KB
共 42 条
- 1
资源评论
yyfhq
- 粉丝: 337
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功