[Insight-users] Using Levenberg Marquardt optimization for deformable image registration

Luis Ibanez luis.ibanez at kitware.com
Mon Aug 27 10:47:37 EDT 2007



Hi Markus,


1) VNL optimizers do not throw events naturally, so when we wrap them
    into ITK optimizers we were forced to "simulate" iteration events
    by sending them from the cost function. That's the reason why you
    get iteration events at every evaluation of the metric, instead of
    every actual iteration of the optimizer. It is an unfortunate
    limitation that derives from the fact that at the bottom we are still
    calling FORTRAN code from netlib.


2) You are creating an interesting concept by combining both intensity
    metrics and point-based metrics. The effect that you are observing
    may be indeed an annoying, but normal, property of closest-point
    association. It may be the case that many of the points in the sphere
    are being associated to the points in the corners of the cube, and
    in this way, the cube corners are monopolizing large patches of the
    sphere, the same way that with static electricity you will get sparks
    on the pointy parts of an object.

    The effect may disappear if you revert who is the fixed object and
    who is the moving object.


3) That being said,... there are many other possible causes for the
    behavior that you are observing. One of the main suspects being
    the setting parameters of the optimizer, and the second being
    the blending methods that you use for combining both metrics
    (point based and image based).


4) I would suggest you to start with two objects that are not as
    dramatically different as a cube and a sphere.

     For example, try first a sphere and an ellipsoid.

     This will give you a smoother scenario where you can better
     inspect the behavior of the registration.



  BTW: That will make a great paper to the Insight Journal   :-)



    Regards,



        Luis



---------------------
Markus Weigert wrote:
> Dear insight users,
> 
> I am currently investigating Levenberg-Marquardt optimization for image 
> registration.
> The idea is to use a multivalued cost function (intensity differences of 
> each pixel) and
> additional point distances between meshpoints of segmentation results 
> within a Iterative
> Closest Point scheme by performing least squares fits of the transform 
> parameters.
> Although this seems to work with the linear transforms (affine, versor 
> rigid etc.
> providing a proper initialization), it runs into problems with BSpline 
> transform by
> delivering transform parameters which are just off by orders.
> For this reason I created synthetic images showing a sphere and a cube 
> and tried
> to register the cube to the sphere (see 
> http://www.chripa.de/bilder/BSplineLVM.JPG)
> In this example, I use intensity differences only, no point distances.
> When I look at the deformation field (which results of the estimated 
> transform parameters),
> highest deviations appear in the corner of the image, not in the area of 
> the objects as I would
> have expected.
> This is also obvious when looking at the transform parameters  which are 
> at some places
> (image corners) extremely high (see the DOS command shell).
> I tried different configurations of the optimizer but could not figure 
> out a working configuration.
> For the screenshot I used
>        opt->SetNumberOfIterations(2000);
>        opt->SetValueTolerance(1.e-8);
>        opt->SetGradientTolerance(1.e-8);
>        opt->SetEpsilonFunction(1.e-8 );
>        opt->UseCostFunctionGradientOff();  //calculate derivatives by 
> forward differencing
> 
> and a BSpline grid of 3 x 3 x 3 nodes per dim (respectively 6 x 6 x 6 
> when taking the off image
> nodes into account).
> 
> Has somebody an idea why these huge values may appear in the image 
> corners or did I undergo
> an obvious error in reasoning creating this method.
> 
> Another point I would like to mention is that the levenberg marquardt 
> optmizer seems to have a bug
> concerning the creation of iteration events, which appear after each 
> function evaluation instead of each iteration.
> 
> 
> Kind Regards,
> Markus
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ----------------------------------------------------------------------------------------- 
> 
> ----------------------------------------------------------------------------------------- 
> 
> Forschungszentrum Jülich GmbH
> 52425 Jülich
> 
> Sitz der Gesellschaft: Jülich
> Eingetragen im Handelsregister des Amtsgerichts Düren Nr. HR B 3498
> Vorsitzende des Aufsichtsrats: MinDirig'in Bärbel Brumme-Bothe
> Vorstand: Prof. Dr. Achim Bachem (Vorsitzender), Dr. Ulrich Krafft 
> (stellv. Vorsitzender)
> ----------------------------------------------------------------------------------------- 
> 
> ----------------------------------------------------------------------------------------- 
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 


More information about the Insight-users mailing list