Home

Awesome

MaskLRF

Introduction

This repository provides the official codes (PyTorch implementation) for the paper "MaskLRF: Self-supervised Pretraining via Masked Autoencoding of Local Reference Frames for Rotation-invariant 3D Point Set Analysis". The paper is accepted to the IEEE Access journal.

Pre-requisites

My code has been tested on Ubuntu 22.04. I highly recommend using the Docker container "nvcr.io/nvidia/pytorch:21.09-py3", which is provided by Nvidia NGC. After launching the Docker container, run the following shell script to install the prerequisite libraries.

./prepare.sh

Datasets

See DATASET.md for details.

Self-supervised pretraining

Run the following shell script to start pretraining from scratch with the configurations used in the paper.<br> The pretrained parameters will be saved as "experiments/pretrain/ckpt-last.pth".

./Run_MaskLRF_pretraining.sh

You can also download the pretrained DNN parameters below. <br> Save ckpt-last.pth in the directory "experiments/pretrain/".

DNN modelDataset for pretrainingPretrained parameters
R2PTShapeNetCore55ckpt-last.pth

Supervised finetuning

Run the corresponding shell script to finetune the pretrained model and evaluate its accuracy in a downstream task.<br> By default, finetuning/evaluation is done in the NR/SO3 rotation setting.<br> A log file will be saved in the directory "experiments/".

Real-world object classification

./Run_MaskLRF_finetuning_cls.sh

Few-shot object classification

./Run_MaskLRF_finetuning_fewshot.sh

Part segmentation

./Run_MaskLRF_finetuning_partseg.sh

Acknowledgements

My code is built upon Point-MAE.