CoolFace
Modelpublic

DavidHanSZ/pointnet-modelnet40

sourceHugging Facemitupdated 4mo agoView on Hugging Face
2likes20downloads
Model Card

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)

ParameterValue
Points sampled1024 (uniform, normalized to unit sphere)
AugmentationRandom up-axis rotation + Gaussian jitter (σ=0.02)
OptimizerAdam, lr=0.001, β₁=0.9
Batch size32
LR schedule÷2 every 20 epochs
Epochs trained250
Best test accuracy83.83% (epoch 238)

Usage

python
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.

<!-- 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