| --- |
| license: mit |
| library_name: torch-pointcloud |
| tags: |
| - point-cloud |
| - 3d |
| - pytorch |
| - torch-pointcloud |
| - pointgpt |
| - classification |
| datasets: |
| - scanobjectnn |
| base_model: torch-pointcloud/pointgpt-b.pretrain.guangyan-chen |
| model-index: |
| - name: pointgpt-b.scanobjectnn-objonly.guangyan-chen |
| results: |
| - task: |
| type: point-cloud-classification |
| dataset: |
| name: ScanObjectNN (OBJ_ONLY) |
| type: scanobjectnn |
| metrics: |
| - name: OA |
| type: accuracy |
| value: 95.18 |
| --- |
| |
| # Model card for pointgpt-b.scanobjectnn-objonly.guangyan-chen |
|
|
| A PointGPT point cloud classification model (autoregressive generative pretraining transformer). Trained on ScanObjectNN (OBJ_ONLY). |
| |
| ## Model Details |
| |
| - **Model Type:** Point cloud classification |
| - **Model Stats:** |
| - Params (M): 120.4 |
| - Classes: 15 |
| - Features: 1536 |
| - **Dataset:** ScanObjectNN (OBJ_ONLY) |
| - **Metrics:** OA 95.18 (reference 95.2) |
| - **Paper:** [PointGPT: Auto-regressively Generative Pre-training from Point Clouds](https://arxiv.org/abs/2305.11487) |
| - **Converted from:** [CGuangyan-BIT/PointGPT](https://github.com/CGuangyan-BIT/PointGPT) (MIT) |
| - **Library:** [torch-pointcloud](https://github.com/arthurdjn/pytorch-pointcloud) |
|
|
| ## Install |
|
|
| ```bash |
| pip install torch-pointcloud |
| ``` |
|
|
| ## Usage |
|
|
| ```python |
| import torch |
| import torch_pointcloud as tp |
| from torch_pointcloud.utils.data import collate |
| |
| model, info = tp.create_model( |
| "pointgpt-b.scanobjectnn-objonly.guangyan-chen", |
| task="classification", |
| pretrained=True, |
| return_info=True, |
| ) |
| model = model.eval() |
| |
| # synthetic sample with the keys a dataset provides |
| num_points = 8192 |
| sample = { |
| "pos": torch.randn(num_points, 3), |
| } |
| data = info["transform"](sample) |
| data = collate([data]) |
| |
| with torch.no_grad(): |
| logits = model(data.get("x"), data["pos"], data["batch"]) |
| ``` |
|
|
| ## Feature extraction |
|
|
| ```python |
| with torch.no_grad(): |
| embeddings = model.forward_features(data.get("x"), data["pos"], data["batch"]) |
| |
| model.reset_classifier(num_classes=0) |
| with torch.no_grad(): |
| embeddings = model(data.get("x"), data["pos"], data["batch"]) # (B, 1536) |
| ``` |
|
|
| ## Citation |
|
|
| ```bibtex |
| @inproceedings{chen2023pointgpt, |
| title = {PointGPT: Auto-regressively Generative Pre-training from Point Clouds}, |
| author = {Guangyan Chen and Meiling Wang and Yi Yang and Kai Yu and Li Yuan and Yufeng Yue}, |
| booktitle = {NeurIPS}, |
| year = {2023} |
| } |
| |
| @inproceedings{uy2019scanobjectnn, |
| title = {Revisiting Point Cloud Classification: A New Benchmark Dataset and Classification Model on Real-World Data}, |
| author = {Mikaela Angelina Uy and Quang-Hieu Pham and Binh-Son Hua and Duc Thanh Nguyen and Sai-Kit Yeung}, |
| booktitle = {ICCV}, |
| year = {2019} |
| } |
| |
| @software{dujardin2026pytorchpointcloud, |
| author = {Arthur Dujardin}, |
| title = {PyTorch PointCloud}, |
| year = {2026}, |
| doi = {10.5281/zenodo.22159632}, |
| url = {https://github.com/arthurdjn/pytorch-pointcloud}, |
| } |
| ``` |
|
|