SlicerMorph - semilandmarks

Hello –

may I ask for help with semilandmark projection using either Alpaca or ProjectSemiLM. I have fairly simple surface objects so that Alpaca struggles to superimpose meshes without errors. Sometime it works just fine but not always. In some cases surfaces flip. I tried to use ProjectSemiLM module (having introduced some fixed lm points specifically for that) but the module does not run. I am stuck. May I please ask:

is there any way I can control surface superimposition process in Alpaca?
is ther anything I am missing in ProjectSemiLM in terms of file setup? I have exported my landmark and semilandmarks into fcsv format, stored the template and target surfaces in the same folder, as well as fixed landmarks (with the names as in surfaces) and the semilandmarks (also in fcsv but a different name). The order and names of fixed landmarks is correct.

I am happy to tinker with Python code, if there is an option to hack into the brains of the SlicerMorph.

Look forward to hearing from you,
With best wishes
Katya Stansfield


Can you share an example dataset? It is a little hard to tell what’s going on from the screen captures.

also I will need the fixed landmarks to test the issue with the ProjectSemiLMs module.

Your two surface are too similar, and there is not much difference top from the bottom. This is actually a fairly challenging registration problem, and I am not surprised occasssionally things are flipped upside down. perhaps increasing the point cloud sampling would help, but hard for me to make suggestions without seeing the data.

So if you can upload those two models, their corresponding points and the template you want to transfer as a zip file to a cloud file share (google drive, onedrive, dropbox etc), and share the link, I can try to take a look

Just to echo Murat and add some additional insight. Having a dataset would be helpful in figuring out how to improve ALPACA registration. In my experience, when surfaces are flat or homogeneously round, it is hard to find geometric correspondences. One strategy that has worked for me in the past is to increase the Normal Search Radius and FPFH Search Radius in the Advanced Settings (e.g., doubling them). Essentially, you want to use broader (area-wise) geometric descriptors.

Different dataset, related question: Is there a limit on ALPACA working with completely flat surfaces? I’ve been trying to explore its use on samples like this one (example files), but ALPACA crashes when attempting to align.

I can project semiLM (with associated fixed landmarks) with moderate success, but I’m wondering if there is any a priori reason why these flat surfaces can’t work, or if there is something in particular about my dataset/situation.

We never considered such a use case. It crashes for me too. I am sure all points being co-planar creates all sorts of issues. Unfortunately, we do not have time to chase this. Unless @agporto has…

M

ALPACA uses FPFH features to find the initial rough alignment between objects. FPFH relies on curvature variation. So, when matching two models, you look for points whose FPFH vectors are similar. On a flat area, every point looks equally similar (no curvature variation), so RANSAC or any matching algorithm has no cue to pick the correct correspondences. If you are working with 2d masks (as seem to be the case), you are better off using 2D approaches.

1 Like