[Insight-users] Gradient-based optimization and Jacobian-based partial derivative estimation in 2D/3D scenarios

Luis Ibanez luis.ibanez at kitware.com
Mon Mar 29 18:13:46 EDT 2010


Hi Lars,

There is a clear API contract / separation between Optimizers
and Image Metrics.

The two talk only through the methods (of the Metric).

         double GetValue( parametersArray );
         double GetDerivative( parametersArray );
         double GetValueAndDerivative( parametersArray );

(API simplified here for the sake of making the email readable).

The Optimizers do not need to know (and shouldn't have to care)
about how exactly the Metric computes those derivatives.

Some Metrics will compute the derivatives by using the Jacobian
of the transformation, others will do it by using finite differences.

Optimizers that do not requires derivative information, simply
call the GetValue() method of the metrics. This is the case, for
example, of the AmoebaOptimizer and the OnePlusOneEvolutionary
optimizer.



    Regards,


          Luis


-----------------------------------------------------------------------------------------------
On Sun, Mar 28, 2010 at 6:37 AM, Lars Friedrich Lars
<lars-friedrich at gmx.net> wrote:
> Hello,
>
> the current implementation of InsightApplication 'IntensityBased2D3DRegistration' uses the RegularStepGradientDescentOptimizer and the GradientDifferenceImageToImageMetric. This optimizer directly uses the gradient information of the cost function retrieved via metric->GetDerivative() for cost function minimization. In the case of GradientDifferenceImageToImageMetric a 'derivative-delta' is utilized to generate positions around the current transformation position in order to generate an estimation of the partial derivatives of the transformation parameters.
>
> However, if you replaced the metric type in this example with the MeanSquaresImageToImageMetric, the partial derivatives are estimated in a fundamentally different way. Internally this metric uses the Jacobian of the transformation amongst others. The ITK 2D/3D-registration implementation treats the 3D volume as moving image and the (2D) fixed image as single-sliced 3D fixed image. The transformation is the transformation of the volume and maps the fixed image points 'somewhere'. However, the transformed fixed image points are used to compute the Jacobian and are then used for partial derivative estimation.
>
> Is this kind of derivative estimation valid in situations where one uses ITK's 2D/3D-registration approach together with optimizers that require direct gradient information? There are many ITK metrics that internally use the Jacobian to estimate the gradient (MeanSquaresImageToImageMetric, MutualInformationImageToImageMetric, MattesMutualInformationImageToImageMetric ...). Can these metric types only be used together with optimizer that do not require direct gradient information?
>
> The more I think about this, the more I get confused. Has someone thought about this or does someone have answers to these questions?
>
> Thank you!
>
>
> best regards,
>
> lars
>
> --
> GMX DSL: Internet, Telefon und Entertainment für nur 19,99 EUR/mtl.!
> http://portal.gmx.net/de/go/dsl02
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>


More information about the Insight-users mailing list