This repo contains the training and testing code for classification using a variation of Multi-view CNN (that uses non comutative merge operation) and Multi-Layered Height-map features of 3D shapes. The details are available in the following paper which is to be presented at ECCV 2018:
Learning 3D Shapes as Multi-Layered Height-maps using 2D Convolutional Networks
Kripasindhu Sarkar, Basavaraj Hampiholi, Kiran Varanasi, Didier Stricker
Computer Vision -- ECCV 2018 European Conference on Computer Vision (ECCV-2018), September 8-14, Munich, Germany
Bibtex -
@InProceedings{Sarkar2018b,
Title = {Learning 3D Shapes as Multi-Layered Height-maps using 2D Convolutional Networks},
Author = {Kripasindhu Sarkar and Basavaraj Hampiholi and Kiran Varanasi and Didier Stricker},
Booktitle = {Computer Vision -- ECCV 2018},
Year = {2018},
Publisher = {Springer International Publishing},
}
Please find the Arxiv preprint of the paper here.
- Clone this repository (lets say to MLH_MVCNN_ROOT).
- Download the MLH features of ModelNet40 here and extract it to <mlh_root_path>.
- Edit the
train_data_root
variable in config.py to point to <mlh_root_path>.
Simply run python train.py
to train Multi-View CNN with non-commutative merge operation (for details see the paper) with MLH descriptors. Edit the training parameters in config.py
to further control the training. Training for 20 epoches should give a validation accuracy of around 93.1.
- Run
python test.py <path_to_saved_model>
to test your trained model. By default, the best model gets saved toMLH_MVCNN_ROOT/data/vgg16_bn_best_model.pth.tar
(configurable through config.py) while training. - We are also providing the trained model used in our paper here. Just download it and use it as <path_to_saved_model> to get the testing results on ModelNet40.