Skip to content

Repository files navigation

Point-Selection Fine-Tuning Framework for Robust Point Cloud Classification (PRCV 2026)

arXiv Paper Supplement Hugging Face License

Da Li1,2†, Chang Ma2†, and Dongfu Yin1*

1Guangdong Laboratory of Artificial Intelligence and Digital Economy (Shenzhen), Shenzhen, China
2Shenzhen University, Shenzhen, China

Equal contribution. *Corresponding author.
li944104439@gmail.com; 2510235035@mails.szu.edu.cn; yindongfu@gml.ac.cn

Official implementation and checkpoints for PSFT on point-cloud corruption benchmarks.

Pretrained Models

The released checkpoints are hosted on Hugging Face. Each checkpoint contains the classifier model and point-selection model used by test_ps.py.

ModelNet-C and ModelNet40-C share the same checkpoints. Use the ModelNet-C checkpoint files for both ModelNet-C and ModelNet40-C evaluation.

Dataset Backbone Method Augmentation Download
ModelNet-C / ModelNet40-C Point-BERT PSFT None Link
ModelNet-C / ModelNet40-C Point-BERT PSFT + Aug. WOLFMix Link
ModelNet-C / ModelNet40-C Point-MAE PSFT None Link
ModelNet-C / ModelNet40-C Point-MAE PSFT + Aug. WOLFMix Link
ModelNet-C / ModelNet40-C ULIP-2 PSFT None Link
ModelNet-C / ModelNet40-C ULIP-2 PSFT + Aug. WOLFMix Link
ModelNet-C / ModelNet40-C Uni3d-B PSFT None Link
ModelNet-C / ModelNet40-C Uni3d-B PSFT + Aug. WOLFMix Link
ScanObjectNN-C Point-BERT PSFT None Link
ScanObjectNN-C Point-BERT PSFT + Aug. WOLFMix Link
ScanObjectNN-C Point-MAE PSFT None Link
ScanObjectNN-C Point-MAE PSFT + Aug. WOLFMix Link
ScanObjectNN-C ULIP-2 PSFT None Link
ScanObjectNN-C ULIP-2 PSFT + Aug. WOLFMix Link
ScanObjectNN-C Uni3d-B PSFT None Link
ScanObjectNN-C Uni3d-B PSFT + Aug. WOLFMix Link

You can download all released checkpoints with:

pip install huggingface_hub
huggingface-cli download SZUChangMa/PSFT \
  --local-dir ckpts/PSFT \
  --include "ModelNet-C/*.pt" "ScanObjectNN-C/*.pt"

Datasets

Download the clean training data and corrupted test data from Hugging Face.

Dataset Classes Training data Corrupted test data Checkpoint
ModelNet-C 40 Download Download ModelNet-C ckpt
ModelNet40-C 40 Download Download reuse ModelNet-C ckpt
ScanObjectNN-C 15 Download Download ScanObjectNN-C ckpt

Quick Start

First, clone this repository and install the dependencies:

git clone <this-repo-url>
cd PSFT-master

pip install torch torchvision torchaudio
pip install numpy h5py scikit-learn timm pyyaml huggingface_hub
pip install "git+git://github.com/erikwijmans/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"
pip install utils/KNN_CUDA-0.2-py3-none-any.whl

Download the original backbone checkpoints required by utils/model.py and place them under data_inputs/pretrained/:

Backbone Pretrained checkpoint
Point-BERT Point-BERT.pth
Point-MAE Point-MAE.pth
ULIP-2 pretrained_models_ckpt_zero-shot_classification_pointbert_ULIP-2.pt
Uni3d-B Pretrianed_Uni3d_B_Ensembled.pt

Then evaluate a PSFT checkpoint:

CUDA_VISIBLE_DEVICES=0 python test_ps.py \
  --model_path ckpts/PSFT/ModelNet-C/Train-PS-Point-BERT-PG-ModelNet-C-add_FFM-Augmentation%3ANone-train_alpha%3A0.5_epoch_300.pt \
  --model_name Point-BERT \
  --train_mode PG \
  --add_FFM \
  ModelNet-C

Replace --model_path with the actual downloaded checkpoint path, replace --model_name with the matching backbone in the checkpoint name, and replace the final dataset argument with one of:

ModelNet-C
ModelNet40-C
ScanObjectNN-C

For ModelNet40-C, keep using a checkpoint from the ModelNet-C folder and only change the final dataset argument:

CUDA_VISIBLE_DEVICES=0 python test_ps.py \
  --model_path ckpts/PSFT/ModelNet-C/Train-PS-Point-BERT-PG-ModelNet-C-add_FFM-Augmentation%3ANone-train_alpha%3A0.5_epoch_300.pt \
  --model_name Point-BERT \
  --train_mode PG \
  --add_FFM \
  ModelNet40-C

If your data is stored elsewhere, pass dataset-specific paths after the dataset name:

CUDA_VISIBLE_DEVICES=0 python test_ps.py \
  --model_path ckpts/PSFT/ScanObjectNN-C/Train-PS-Uni3d-B-PG-ScanObjectNN-C-add_FFM-Augmentation%3AWOLFMix-train_alpha%3A0.5_epoch_300.pt \
  --model_name Uni3d-B \
  --train_mode PG \
  --add_FFM \
  ScanObjectNN-C \
  --test_dir /path/to/scanobjectnn_c

Training

PSFT training uses distributed training through torchrun. For example:

CUDA_VISIBLE_DEVICES=0 torchrun --nproc_per_node=1 train_ps.py \
  --model_name Point-BERT \
  --train_mode PG \
  --add_FFM \
  ModelNet-C

Add WOLFMix augmentation with:

CUDA_VISIBLE_DEVICES=0 torchrun --nproc_per_node=1 train_ps.py \
  --model_name Point-BERT \
  --train_mode PG \
  --add_FFM \
  --add_WOLFMix \
  ModelNet-C

License

The released checkpoints are distributed under the MIT license on Hugging Face. Please also check the license terms of the original datasets and backbone checkpoints before use.

Citation

If you find this work useful, please cite the paper:

@misc{arxiv2607.19711,
  title        = {Point-Selection Fine-Tuning Framework for Robust Point Cloud Classification},
  author       = {Da Li, Chang Ma, and Dongfu Yin},
  year         = {2026},
  url          = {https://arxiv.org/abs/2607.19711}
}

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages