/MeshWalker

MeshWalker implementation

Primary LanguagePythonMIT LicenseMIT

MeshWalker: Deep Mesh Understanding by Random Walks

SIGGRAPH ASIA 2020 [Paper]

Created by Alon Lahav.

This repository contains the implementation of MeshWalker.

Installation

A step-by-step installation guide for Ubuntu is provided in INSTALL.md.

Data

Note for this README: each time <dataset> is mentioned, it should be replaced by one of the following:

1. modelnet40
2. engraved_cubes
3. shrec11
4. coseg
5. human_seg

Raw datasets

To get the raw datasets go to the relevant website, and put it under MeshWalker/datasets_raw/<dataset>.

You can also download it from our raw_datasets folder.

Processed

To prepare the data, run python dataset_prepare.py <dataset>

Or download the data after processing from datasets_processed to MeshWalker/datasets_processed/<dataset>. Processing will rearrange dataset in npz files, labels included, vertex niebours added.

Use the following to download all:

bash ./get_datasets.sh

Training

python train_val.py <job> <part>

While <job> can be one of the following: shrec11 / coseg / human_seg / cubes / modelnet40. <job> can also be all to run all of the above.

<part> should be used in case of shrec11 or coseg datasets. For shrec11 it should be one of the follows: 10-10_A / 10-10_B / 10-10_C / 16-04_A / 16-04_B / 16-04_C.

For coseg it should be one of the follows: aliens / vases / chairs.

You will find the results at: MeshWalker\runs\???

Use tensorboard to show training results: tensorboard <trained-model-folder>

Note that "accuracy" tab is a fast accuracy calculated while training, it is not the final accuracy we get using averaging. To get the final accuracy results, please refer to the "full_accuracy" tab at tensorboard, or run evaluation scripts.

Evaluating

After training is finished (or pretrained is downloaded), to evaluate segmentation model run:

python evaluate_segmentation.py <job> <part> <trained model directory>

For example:

python evaluate_segmentation.py coseg chairs pretrained/coseg_chairs/

Or:

python evaluate_segmentation.py human_seg --- pretrained/0010-15.11.2020..05.25__human_seg/

To evaluate classification model run:

python evaluate_segmentation.py <job> <part> <trained model directory>

<job> and <part> are define the same as in train_val.py.

Pretrained

You can use some pretrained models from our pretrained folder
to run evaluation only.

Or download them all using

bash ./get_pretrained.sh

Reference

If you find our code or paper useful, please consider citing:

@article{lahav2020meshwalker,
  title={MeshWalker: Deep Mesh Understanding by Random Walks},
  author={Lahav, Alon and Tal, Ayellet},
  journal={arXiv preprint arXiv:2006.05353},
  year={2020}
}

Questions / Issues

If you have questions or issues running this code, please open an issue.