Home

Awesome

PWC

PWC

Implicit Autoencoder for Point Cloud Self-supervised Representation Learning

<div align="center"> <img width="100%" alt="IAE Pipeline" src="imgs/main_figure.png"> </div>

This repository contains the PyTorch implementation of paper: Implicit Autoencoder for Point Cloud Self-supervised Representation Learning.

Installation

Our code is tested with Ubuntu 18.04, Python 3.6.7, Pytorch v1.4.0, TensorFlow v1.14, and CUDA 10.1.

First you have to make sure that you have all dependencies in place.

You can create an anaconda environment called iae using

conda env create -f environment.yaml
conda activate iae

Note: you might need to install torch-scatter mannually following the official instruction:

pip install torch-scatter==2.0.4 -f https://pytorch-geometric.com/whl/torch-1.4.0+cu101.html

To compile the CUDA layers for PointNet++

cd src/encoder/pointnet2

python setup.py install

Datasets

We pre-train our model on two different datasets, ShapeNet and ScanNet, for different downstream tasks. Please refer to datasets for more details.

Usage

To train our model, run:

python train.py CONFIG.yaml

We provide different model config files under configs folder.

Downstream Tasks

Please refer to README.md under downstream_tasks folders.

Acknowledgements

We would like to thank and acknowledge referenced codes from

Convolutional Occupancy Network: https://github.com/autonomousvision/convolutional_occupancy_networks.

PointNet++ implementation in Pytorch: https://github.com/erikwijmans/Pointnet2_PyTorch.

DGCNN implementation in Pytorch: https://github.com/AnTao97/dgcnn.pytorch.

Citation

If you find this repository useful in your research, please cite:

@article{yan2022implicit,
  title={Implicit Autoencoder for Point Cloud Self-supervised Representation Learning},
  author={Yan, Siming and Yang, Zhenpei and Li, Haoxiang and Guan, Li and Kang, Hao and Hua, Gang and Huang, Qixing},
  journal={arXiv preprint arXiv:2201.00785},
  year={2022}
}