choosing the best rigid alignment and robustness

123 views
Skip to first unread message

Sybren van Rijn

unread,
Aug 18, 2022, 8:58:11 AM8/18/22
to scalismo

Hello community,

I struggle with how to choose the best rigid alignment transformations for my meshes. Below I elaborate on my findings and considerations. Since I expect that I am not the first with these findings I am interested in knowing how others dealt with them. 

Choosing the best rigid alignment

There are three attachments (named sequentially) with three different possibilities how to align two bones:

  1. Results from ICP when I orient the bones in generally the same orientation, and center them at the origin. 
  2. Results from a Procrustes transformation (without scaling) with 6 points on the distal radius and two points on the proximal radius. 
  3. Results from ICP after the Procrustes transformation. 

Findings

  1. The first example (ICP transformation) aligns the shaft of both bones very well, but the landmarks characteristics of the distal bone are not well aligned.There are a lot of points on the shaft, therefore, the shaft has more weight during ICP alignment compared to the proximal and distal part of the radius. This makes it logical that the radii are primarily aligned by their shaft. After registration and building a shape model we will find that the distal part rotates a lot relative to the shaft - I.e. the distal part has a lot of variation while the shaft has little. 
  2. The second example results in a better alignment of the distal landmark characteristics but in a worse alignment of the shaft. I put more emphasis on aligning the distal part by sampling it more. I assume that this will result in more variation along the shaft and less in the distal part of the radius according to the shape model (I did not implemented this yet).
  3. The final example (procrustes + icp) results in a different transformation compared to the first example (only icp) even though the meshes were generally oriented in the same direction. Thus, icp still results in a local optima even though the shape are oriented in the same direction and orientation. 

These Findings have major impact on the interpretation of shape variation of the radius. Disregarding it all together by only looking at the distal radius may be an option, if im only interested in shape variation of distal landmark characteristics, but the relative position of the distal radius to the other part (or the variation is shaft shape) may be very valuable.

Q1: I regard the final example (or the second) as the overall best rigid alignment. Could I achieve this result without using manual landmarks?

Did you ever look at or implement more robust ways to perform rigid alignment? Like SIFT maybe? https://en.wikipedia.org/wiki/Scale-invariant_feature_transform

I thought of a possible solution by creating an additional mesh that is used to find the rigid alignment transform: the mesh can be simplified based on surface complexity. Where flat areas can be described with fewer faces compared to complex surfaces. This means that the distal and proximal part of the radius and other long bones will be described with more points, therefore, aligning the distal and proximal part will be more rewarding than aligning the shaft or by just sampling along the distal and proximal part along the axis of the principal component and then using this transformation for the original mesh.

Q2: Instead of improving the rigid alignment step, I could also try to deal with the improper alignment in the next step (during registration). Should I take into account registration and translation during nonrigid registration? 

The current approach that I use is the non-rigid parametric optimisation approach from tutorial 12 (https://scalismo.org/docs/Tutorials/tutorial12). Possibly the results will be different by modifying the current approach to include rotation and translation or using a different registration approach that does take into account rotation and translation such as non-rigid ICP or the “Closest Point Proposal for MCMC-based Probabilistic Surface Registration” (or a combination)?

I really appreciate that we can ask our questions here.

Kind regards,

Sybren van Rijn

AlignmentExample3.jpeg
alignmentExample1.jpeg
AlignmentExample2.jpeg

Marcel Luethi

unread,
Aug 19, 2022, 3:38:24 AM8/19/22
to Sybren van Rijn, scalismo
HI Sybren

It is always possible to achieve a result without manually clicking landmarks. Often it involves using a few heuristics to find the initial transformation. A simple one is to align the center of mass first or to do procrustes alignment using the corners of the bounding box as landmarks. If you suspect that bones could be rotated or flipped, you may want to run the algorithm from different starting positions. Landmarks are just a very convenient tool, to avoid such heuristics and directly translate our (human) knowledge about the anatomy to the algorithm.

If you know that the alignment is not reliable, it makes sense to include a rigid alignment into the non-rigid registration step. If you are using non-rigid icp, this is very easy to do. Just perform a rigid icp step before every non-rigid icp step in the algorithm.

My colleague, Dennis Madsen, has recently released a registration library based on Scalismo. It includes different variants of (probabilistic) CPD and ICP algorithms. Maybe it could be worthwhile having a look at it. The algorithms are much more advanced than what we can present in the tutorials. Furthermore, he has made a great job of making it accessible and easy to use.
You can find the code and a link to the paper on github: https://github.com/unibas-gravis/gingr

Best regards,

Marcel


--
You received this message because you are subscribed to the Google Groups "scalismo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scalismo+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scalismo/ba73c0e5-2ca3-461b-ba73-3711e6f48cf8n%40googlegroups.com.

Gregory Lahman

unread,
Feb 16, 2023, 7:27:18 AM2/16/23
to scalismo
How would you go about aligning models by the principal axis in scalismo?

Gregory Lahman

unread,
Feb 16, 2023, 7:45:44 AM2/16/23
to scalismo
Or aligning to the center of mass for that matter?
Reply all
Reply to author
Forward
0 new messages