metadata
license: mit
tags:
- pointnet
- modelnet40
- 3d-classification
- point-cloud
- pytorch
- ml-intern
metrics:
- accuracy
model-index:
- name: pointnet-modelnet40
results:
- task:
type: 3d-shape-classification
dataset:
type: modelnet40
name: ModelNet40
metrics:
- type: accuracy
value: 83.83
PointNet for ModelNet40 Classification
Reimplementation of PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation (Qi et al., 2017).
Architecture
Exact architecture from the paper (Appendix C):
- Input Transform (T-Net 3×3): MLP(64,128,1024) → max pool → FC(512,256) → 3×3
- Shared MLP(64,64) → Feature Transform (T-Net 64×64) → MLP(64,128,1024)
- Global max pool → FC(512,256,40) + dropout(0.3)
- Orthogonal regularization (λ=0.001) on both T-Nets
Training Recipe (from paper)
| Parameter | Value |
|---|---|
| Points sampled | 1024 (uniform, normalized to unit sphere) |
| Augmentation | Random up-axis rotation + Gaussian jitter (σ=0.02) |
| Optimizer | Adam, lr=0.001, β₁=0.9 |
| Batch size | 32 |
| LR schedule | ÷2 every 20 epochs |
| Epochs trained | 250 |
| Best test accuracy | 83.83% (epoch 238) |
Usage
import torch
# Copy the PointNetClassification class from pointnet_modelnet40.py
model = PointNetClassification(num_classes=40)
model.load_state_dict(torch.load('pytorch_model.bin'))
model.eval()
# Input: (B, 3, 1024) point cloud normalized to unit sphere
# Output: (B, 40) logits
Dataset
Trained on jxie/modelnet40-2048 — 9,840 train / 2,468 test samples across 40 object categories.
Generated by ML Intern
This model repository was generated by ML Intern, an agent for machine learning research and development on the Hugging Face Hub.
- Try ML Intern: https://smolagents-ml-intern.hf.space
- Source code: https://github.com/huggingface/ml-intern