3D point cloud classification is pivotal in applications like autonomous driving, robotics, and augmented reality. However, existing benchmarks such as ModelNet40 suffer from inconsistent labeling, the presence of 2D data, size mismatches, and ambiguous class definitions.
Our contributions:
- ModelNet‑R Dataset: A refined version of ModelNet40 that resolves labeling inconsistencies, removes low-quality (almost 2D) data, adjusts size disparities, and sharpens class boundaries.
- Point‑SkipNet: A lightweight graph‑based neural network that leverages efficient sampling, neighborhood grouping, and skip connections to achieve state‑of‑the‑art classification accuracy with a reduced computational footprint.
For full details, please refer to the paper on arXiv.
Official implementation of the paper "Enhancing 3D Point Cloud Classification with ModelNet-R and Point-SkipNet",
The paper will be available soon...
ModelNet40, while widely used, contains:
- Inconsistent labeling: Many samples are mislabeled or ambiguous.
- 2D artifacts: A significant portion of the data is nearly flat, lacking volumetric depth.
- Size mismatches: Normalization often causes objects of different real-world scales to appear similar.
- Poor class differentiation: Similar geometries between classes (e.g., flower pot vs. vase) lead to confusion.
By addressing the issues of ModelNet40, ModelNet‑R provides a cleaner and more reliable benchmark for 3D point cloud research. It improves both the training process and the evaluation of classification models.
Point‑SkipNet is designed to:
- Efficiently sample and group points using a dedicated module.
- Leverage skip connections to preserve both global and local features.
- Reduce computational overhead while maintaining high classification accuracy.
The architecture is modular:
- Sample and Group Module: Uses farthest point sampling (FPS) and ball queries to extract meaningful local neighborhoods.
- Feature Aggregation: Combines local geometric features with skip connections for robust global representation.
Experiments demonstrate that refining the dataset (ModelNet‑R) coupled with the efficient design of Point‑SkipNet results in significant performance improvements. For instance:
-
Point‑SkipNet on ModelNet:
- Overall Accuracy (OA): ~92.29%
- Mean Class Accuracy (mAcc): ~89.84%
-
Point‑SkipNet on ModelNet‑R:
- Overall Accuracy (OA): ~94.33%
- Mean Class Accuracy (mAcc): ~92.93%
These results underscore the importance of both dataset quality and computational efficiency.
Tested configurations include:
-
Configuration 1:
- OS: Ubuntu 22.04.3 LTS
- GPU: NVIDIA GeForce RTX 2080 Ti
- CUDA: 12.0
- PyTorch: 2.1.1+cu121
- Python: 3.10.12
-
Configuration 2:
- OS: Ubuntu 22.04.5 LTS
- GPU: NVIDIA GeForce RTX 3080 Ti
- CUDA: 12.2
- PyTorch: 1.13.1+cu117
- Python: 3.10.12
Place the following datasets in the data
folder:
data/modelnet40_normal_resampled
data/modelnet40_ply_hdf5_2048
Note: The
modelnet40_normal_resampled
dataset will be converted tomodelnetR_normal_resampled
when you run the dataset creation script. It is recommended to back up the original data if needed.
To generate the refined dataset:
cd Creating_ModelNet-R
h5=false bash creat_modelnetR.sh # Use this if you do not require the h5 format
h5=true bash creat_modelnetR.sh # Use this if you require the h5 format
Ensure that the modelnet40_normal_resampled
dataset is present in the data
folder before running the script.
Train Point‑SkipNet on your chosen dataset:
cd Point-SkipNet
dataset="modelnetR" bash run_train.sh # Train on ModelNet‑R (refined dataset)
dataset="modelnet" bash run_train.sh # Train on ModelNet (original dataset)
Test the trained model using the provided checkpoints:
cd Point-SkipNet
dataset="modelnetR" bash run_test.sh # Test on ModelNet‑R
dataset="modelnet" bash run_test.sh # Test on ModelNet
Model | OA | mAcc | Param(M) |
---|---|---|---|
PointNet | 91.39 | 88.79 | 3.47 |
PointNet++ (ssg) | 94.02 | 92.40 | 1.47 |
PointNet++ (msg) | 94.06 | 91.80 | 1.74 |
Point-NN | 84.75 | 77.65 | 0 |
DG-CNN | 94.03 | 92.64 | 1.8 |
CurveNet | 94.12 | 92.65 | 2.04 |
PointMLP | 95.33 | 94.30 | 12.6 |
Point-SkipNet(proposed) | 94.33 | 92.93 | 1.47 |
If you use this work, please cite:
@inproceedings{2025paper,
author = {Mohammad Saeid and Amir Salarpour and Pedram MohajerAnsari},
title = {Enhancing 3D Point Cloud Classification with ModelNet-R and Point-SkipNet},
booktitle = {Proceedings of IPRIA 2025},
year = {2025},
}
This project builds upon the valuable contributions of the research community. Special thanks to:
-
PointNet++
Deep Hierarchical Feature Learning on Point Sets in a Metric Space by Qi et al. -
PointNet++ PyTorch Implementation
Repository by yanx27 -
ModelNet Dataset
Originally presented in 3D ShapeNets: A Deep Representation for Volumetric Shapes
We also acknowledge all related works cited in the paper for inspiring this study.
Future enhancements include:
- Refining all classes in ModelNet40 for uniform consistency.
- Incorporating techniques to retain size-related features lost during normalization.
- Extending validations of Point‑SkipNet to additional real‑world datasets such as ScanObjectNN and ShapeNet.
This repository offers an integrated approach to improve both dataset quality and model efficiency for 3D point cloud classification. Enjoy exploring the project, and feel free to reach out through the project homepage for any inquiries!