DavidHanSZ/pointnet-modelnet40
220
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)
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) logitsDataset
Trained on jxie/modelnet40-2048 — 9,840 train / 2,468 test samples across 40 object categories.
<!-- ml-intern-provenance -->
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
