This repository is the implementation of "Learning 3D Dense Correspondence via Canonical Point Autoencoder".
conda create -n CPAE python=3.6
conda activate CPAE
pip install -r requirements.txt
To install PyMesh
https://pymesh.readthedocs.io/en/latest/installation.html#building-pymesh
By default, the Chamfer Loss module should work properly. If you failed to run the chamfer loss module, please see the following link and follow their instruction.
https://github.com/ThibaultGROUEIX/ChamferDistancePytorch
To install EMD Loss, please follow the instruction in here.
cd external/emd
python setup.py install
The installed build
folder should be under external/emd
.
Please download the KeypointNet dataset from here, and modify the path in the config file.
python train.py configs/keypoint/default.yaml -c airplane
You may specify the category using the --categories
argument.
python eval.py configs/keypoint/default.yaml -c airplane --load PATH_TO_WEIGHT
The result file which contains error distance between keypoints will be saved in your ['training']['out_dir']
directory. You can specify the folder using the --tag
argument.
Pretrained models together with the baselines' result files can be downloaded here.
To plot the curve as below, please see the notebook file in out/plot_curve.ipynb
.
Please cite our paper (link) in your publications if this repo helps your research:
@inproceedings{cheng2021learning,
title = {Learning 3D Dense Correspondence via Canonical Point Autoencoder},
author = {Cheng, An-Chieh and Li, Xueting and Sun, Min and Yang, Ming-Hsuan and Liu, Sifei},
booktitle = {Advances in Neural Information Processing Systems},
year = {2021}
}