README.md 2.1 KB
Newer Older
Alexander Dielen's avatar
Alexander Dielen committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Shape Correspondences using Spiral Sequences

This repository contains the code to reproduce the results for the
sequence-based networks in the paper

Lim, I., Dielen, A., Campen, M., & Kobbelt, L. (2018). A Simple Approach to
Intrinsic Correspondence Learning on Unstructured 3D Meshes. arXiv preprint
arXiv:1809.06664.


## Results

![](data/results.png)


## Dependencies

* [pytorch][pytorch] 0.4.1
* [openmesh][openmesh]
* [h5py][h5py]
* [matplotlib][matplotlib]


## Dataset

To run the code you need a copy of the meshes in the [FAUST][faust] dataset and
the precomputed SHOT descriptors. Both are contained in this [archive][dropbox]
originally posted by Jonathan Masci [here][tutorial]. Simply extract the
`EG16_tutorial` folder to `data/` and you should be set.

Alternatively you can run the preprocessing code of Masci et al. yourself. The
code for computing the SHOT descriptor can be found [here][matlab1]. We computed
geodesic distances using the code from [here][matlab2]. Copy the mesh files to
`data/meshes/`, the shot descriptors to `data/shot/` and the geodesic distances
to `data/dists/`.

Precomputed distances are optional and only required for evaluation purposes
(i.e. the graph above).


## Running the code

    python train.py --mode lstm

    python train.py --mode linear

Model checkpoints and predictions on the validation and test sets are saved
to `out/`.

Note: On the first run, the spiral sequences for all meshes and all possible
rotations are precomputed. This may take a while. You can control the number of
parallel processes using the `--processes N` option (default: 4).


[pytorch]: https://pytorch.org/
[openmesh]: https://pypi.org/project/openmesh/
[h5py]: https://pypi.org/project/h5py/
[matplotlib]: https://pypi.org/project/matplotlib/
[faust]: http://faust.is.tue.mpg.de/
[dropbox]: https://www.dropbox.com/s/aamd98nynkvbcop/EG16_tutorial.tar.bz2?dl=0
[tutorial]: https://github.com/jonathanmasci/EG16_tutorial/blob/master/deep_learning_for_3D_shape_analysis.ipynb
[matlab1]: https://github.com/davideboscaini/shape_utils
[matlab2]: https://github.com/jonathanmasci/ShapeNet_data_preparation_toolbox