Entropic Metric Alignment for Correspondence Problems




  • Paper topic: Geometry
  • Software type: Code
  • Able to run a replicability test: True
  • Replicability score: 5
  • Software language: Matlab / Mathematica / ..
  • License: unspecified
  • Build mechanism: Not applicable (python, Matlab..)
  • Dependencies: matlab / cvx / labelpoints / toolbox_fast_marching
  • Documentation score {0,1,2}: 0
  • Reviewer: Nicolas Bonneel <nicolas.bonneel@liris.cnrs.fr>
  • Time spent for the test (build->first run, timeout at 100min): 80min

Source code information


The code would be a model in term of replicability as there is one matlab file for each figure in the paper.
To install the code, put the toolbox_fast_marching directory and labelpoints.m inside the external folder, and for some matlab files, install the CVX toolbox, which is done easily. You may need to recompile the toolbox_fast_marching in 64bits, which can be done by running compile_mex from the toolbox folder. 

However, for the toolbox to compile, you will need to change 
int dims[3] = {n,p,q};
mwSize dims[3] = {n,p,q};
in perform_front_propagation_3d_mex.cpp, line 86.

Also in compile_mex.m, you need to change line 7, from
mex mex/anisotropic-fm//perform_front_propagation_anisotropic.cpp
mex mex/perform_front_propagation_anisotropic.cpp
Also, in perform_front_propagation_anisotropic.cpp, lines 2-3, change 
#include "anisotropic-fm/AnisotropicTensorDistance.h"
#include "anisotropic-fm/AnisotropicTensorDistanceConfidence.h"
#include "anisotropic-fm-feth/AnisotropicTensorDistance.h"
#include "anisotropic-fm-feth/AnisotropicTensorDistanceConfidence.h"
and more importantly download these missing files at http://read.pudn.com/downloads144/sourcecode/windows/system/627786/toolbox_fast_marching/mex/anisotropic-fm/AnisotropicTensorDistance.h__.htm

Beware the version at
does not contain the appropriate constructor that takes a voronoi map as input.

Similarly, the missing GenericPradosSchemesForFastMarching_3D.h , Globals.h , FastMarching_WithOptimalDynamics.h , FastMarching.h, PriorityQueue.h can be downloaded at 
and be put in the same directory.

- in perform_front_propagation_anisotropic.cpp line 45, replace
int dims[3] = {w, h, d};
mwSize dims[3] = {w, h, d};

- in fm2dAniso.cpp line 15, replace
const int* dim_h = mxGetDimensions(prhs[0]);
const mwSize* dim_h = mxGetDimensions(prhs[0]);

- in fm2dAniso.cpp line 45:
int dims[2] = {Nx,Ny};
mwSize dims[2] = {Nx,Ny};

The necessary "data" folder is only available upon request due to copyrighted materials. We did not contact authors in such cases.
In practice, the following codes run without data folder: generateConvexFigure, generateInitialGuessFigure2, generateTimingFigure, testGWComputation2d, testNNMF, testPartial2DMatch (out of 33 test files).
When running generateMeshExampleFigure with my own .off files, I run into an "Undefined function 'sparse' for input arguments of type 'int64') which can be solved by addin "|| ...
   strcmp(version,' (R2018a)')" in line 54 of cotLaplacian.m (or type 'version' to know your matlab version).

After that, the code works well and results in reasonables mappings.

If you want to contribute with another review, please follow these instructions.

Please consider to cut/paste/edit the raw JSON data attached to this paper.