[Insight-users] Re: itk::Error MutualInformationImageToImageMetric

Luis Ibanez luis.ibanez@kitware.com
Fri, 11 Oct 2002 12:55:06 -0400


Hi Suresh,

When registration is being performed, the moving image is mapped on top
of the fixed image.  The mapping will result in a partial overlap 
between the
images.   Metrics are computed in a subset of the pixels belonging to the
overlap region.

If the transform happens to be too far from the optimal value it may ocurr
that the two images do not overlap at all after mapping.  In that case, 
it is
impossible to compute any metric value and it is then imposible to feed the
optimizer and figure out a modification for the transform.

You may try a combination of the following strategies:

1) Reduce the learning rates.  
  The learning rate parameter used by the itk::GradientDescent algorithm
  define how big is the step taken by the optimizer.  The learning rate is
  used to multiply   the gradient vector and produce a step.  A large 
learning
   rate results in a long steps and increases the chances of sending the 
transform
   too fast, too far from the optimal value.

   It will probably be even better to just replace GradientDescent by
   itk::RegularStepGradientDescent and get rid of the learning rate problem
   altogether...

2)  Tune the values of the translation scaling.  This is important since the
     parameters space is composed of rotational values and translational 
values.
    Rotational values are in the range [-1:1] while translations are in the
    range of the image size.( hundreds of pixels).    If the 
optimization is moving
    too fast on translation it may easily send the moving image out of 
the range
    of the fixed image.

3)  As a general safe approach, you may want to add an Observer to your
     code and print the transform parameters as every IteerationEvent sent
     from the optimizer. In this way you will be able to track the 
trajectory
    in the parametric space and be able to tune the optimization 
parameters .
 

Please let us know if you continue experiencing problems with your
registration.


   Thanks
 
    Luis


==================================
suresh wrote:

> Hi Luis,
> Hi all,
>
> I'm working on MRI-SPECT registration problem.I'm experimenting on 
> MultiResMIRegistration example, with my images which or of sizes
> SPECT 128, 128, 48
> MRI   256, 256, 120
>
> it is throwing an ITK exception
>
> itk::Error MutualInformationImageToImageMetric(00E04B0);All the 
> sampled point mapped to outside of the moving Image.
>
> I tried changing the number of iterations and learning rates.but could 
> not get rid of the exception.
>
> please anybody elaborate more on this exception and on how to fix this.
>
> Thank you,
>
> suresh
>
>
>
>