[ITK] On the deformable model

Matt McCormick matt.mccormick at kitware.com
Mon Apr 3 17:00:31 EDT 2017


Hi Nicolás,


> I think I haven't explained myself correctly. At the end of the presentation
> there is a variational formulation of the problem, different to the one
> shown at the Optical Flow section. In that one, the problem reads
>
> D[R,T;u] + a S[u],
>
> which you can derivate to get a nonlinear system of equations
>
> Au = f(u).
>
> This is an SSD metric with an elastic penalization (assuming S is such a
> functional) and as far as I understand it should be the default metric as
> stated in the software guide. This setting has no temporal evolution, and
> can be solved by a fixed point iterative scheme as
>
> A u[k+1] = f(u[k])
>
> or through a Newton-Raphson iterative scheme by looking for solutions of
>
> F(u) := Au - f(u) = 0,
>
> where you take a derivative and then iterate taking F(u[k+1]) = 0. Up to
> this point, there is no time in any sense, which is confusing from the
> example. When I read the code from DeformableRegistration1.h (the example I
> mentioned before) and follow all the way what is happening, first the metric
> is loaded
>
> https://github.com/InsightSoftwareConsortium/ITK/blob/aecfac233e8815cdd0121fd2351dd3fef80d2e1b/Modules/Registration/FEM/include/itkFEMRegistrationFilter.hxx#L536-L538
>
> and then the solver is called to iterate
>
> https://github.com/InsightSoftwareConsortium/ITK/blob/aecfac233e8815cdd0121fd2351dd3fef80d2e1b/Modules/Registration/FEM/include/itkFEMRegistrationFilter.hxx#L547-L549.
>
> Now, if I go to check the kind of solver used, it is the CrankNicolson
> Solver
>
> https://github.com/InsightSoftwareConsortium/ITK/blob/aecfac233e8815cdd0121fd2351dd3fef80d2e1b/Modules/Registration/FEM/include/itkFEMRegistrationFilter.h#L145
>
> and checking the documentation for it says explicitly it is used for time
> dependent problems
> (https://itk.org/Doxygen/html/classitk_1_1fem_1_1SolverCrankNicolson.html),
> which the mentioned formulation is not.

While SolverCrankNicolson can be used for time dependent problems, in
the context of the presentation (Au = f) and the example,

  https://github.com/InsightSoftwareConsortium/ITK/blob/f9110a0046a9d07a921767ba000443ad006a2c9b/Examples/RegistrationITKv4/DeformableRegistration1.cxx#L131

you are correct -- it is not being used for time-dependent problems,
because they are only using a stiffness matrix and not a mass matrix.

https://github.com/InsightSoftwareConsortium/ITK/blob/f9110a0046a9d07a921767ba000443ad006a2c9b/Modules/Numerics/FEM/include/itkFEMSolverCrankNicolson.hxx#L298-L318


> Now, in the variational Registration
> filter
> (https://itk.org/Doxygen/html/classitk_1_1VariationalRegistrationFilter.html),
> [...]

To clarify, there are five different registration frameworks within ITK.

1) The Variational Registration framework

2) The ITKv3 Registration framework

3) The ITKv4 Registration framework (classes have "v4" suffix).

4) The PDE deformable registration filters (these include optical flow
algorithms)

5) The FEM Registration

The VariationalRegistrationFilter is from the Variational Registration
framework and is not used by FEM Registration.


It sounds like you are most interested in variational registration,
and the Variational Registration and ITKv4 Registration could help.
More information can be found here:

  http://hdl.handle.net/10380/3460
  https://itk.org/Doxygen/html/group__VariationalRegistration.html

  https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4009425/
  https://itk.org/Doxygen/html/group__ITKMetricsv4.html
  https://itk.org/Doxygen/html/group__ITKRegistrationMethodsv4.html
  https://itk.org/Doxygen/html/group__ITKOptimizersv4.html


I hope this helps.

Matt


More information about the Community mailing list