This repository provides the official codes (PyTorch implementation) for the paper _"Self-supervised Learning of Rotation-invariant 3D Point Set Features using Transformer and its Self-distillation". The paper has been accepted as a paper of the Computer Vision and Image Understanding (CVIU) journal.
Takahiko Furuya, Zhoujie Chen, Ryutarou Ohbuchi, Zhenzhong Kuang, Self-supervised Learning of Rotation-invariant 3D Point Set Features using Transformer and its Self-distillation, Computer Vision and Image Understanding (CVIU), to appear.
Our code has been tested on Ubuntu 22.04. We highly recommend using the Docker container "nvcr.io/nvidia/pytorch:21.07-py3", which is provided by Nvidia NGC. After launching the Docker container, run the following shell script to install the prerequisite libraries.
./prepare.sh
The 3D point cloud data used in our study can be downloaded from Google Drive.
Save the downloaded h5 files in the "dataset" directory.
Dataset | URL |
---|---|
ModelNet10 | training_set testing_set |
ModelNet40 | training_set testing_set |
ShareNetCore55 | training_set testing_set |
ScanObjectNN OBJ_ONLY | training_set testing_set |
ScanObjectNN OBJ_BG | training_set testing_set |
ScanObjectNN PB_T50_RS | training_set testing_set |
In the shell script file "Run.sh", you can specify the conditions of the experiment such as dataset, rotation of the 3D point clouds, hyperparameters etc. By executing "Run.sh", the proposed DNN (i.e., RIPT) is trained by using the proposed self-supervised self-distillation algorithm (i.e., SDMM). Every five epochs, the retrieval accuracy on the testing dataset is evaluated. The retrieval accuracy is measured in macro-averaged Mean Average Precision (MAP).
./Run.sh