File size: 2,072 Bytes
1f47cb4
5939a91
1f47cb4
5939a91
 
 
 
 
5ea284b
5939a91
 
 
 
 
 
 
 
 
 
 
 
 
1f47cb4
 
5939a91
1f47cb4
5939a91
1f47cb4
5939a91
1f47cb4
5939a91
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1f47cb4
 
 
 
5939a91
 
 
 
 
 
 
 
1f47cb4
 
5939a91
 
 
5ea284b
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
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](https://arxiv.org/abs/1612.00593) (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

```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](https://huggingface.co/datasets/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](https://github.com/huggingface/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