[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