Getting nice deformations with (Rvtk)Statismo

I got involved in a project that includes surface matching of talus bones (Hi Peter) and using (Rvtk)Statismo in the registration process definitely pays off. Using a model generated for the atlas allows for nice controlling the shape deformation involved - even with my elastic ICP procedures from mesheR.

While the first couple of targets could be matched easily in the way of my last post, there was one bugger, quite different from the rest with a very wide articulation area.

Coarse registration

The approach hereby was to use a smoothed gaussian displacement field (function gaussMatch)[1] with the displacement restricted by a deform as specified by [2]. The resulting displacement is then regularized by the statismo model (simply by calculating a weighted average for each displacement - one from suggested by the ICP and one from its counterpart projected into model space). This gets us already pretty close to the target without messing up the internal mesh structure (which would be the case without regularization):

Fine registration

In a final step we simply use the result from the procedure and the function AmbergRegister from mesheR to fit the estimate smoothly onto the target. This is done without a shape model.

Results

And here are the heatmap and displacement field:

Timing

The timing is about 7 minutes for both registration processes, but could be improved by using a decimated mesh for the first registration.

[1] Moshfeghi M, Ranganath S, Nawyn K. 1994. Three-dimensional elastic matching of volumes. IEEE Transactions on Image Processing: A Publication of the IEEE Signal Processing Society 3(2):128-138.

[2] Amberg B 2011. Editing faces in videos, University of Basel. http://edoc.unibas.ch/1415/.