[Insight-users] Re: On MultiResMIRegistration

Luis Ibanez luis.ibanez@kitware.com
Fri, 15 Nov 2002 09:55:57 -0500


Hi Vali,

Regsitration in ITK is performed in the
following way:

An optimization method search for the
optimal parameters of a transform "T".
The optimal T is the one that will map
points *from* the fixed image space
into the *moving* image space.

The optimality criterion is provided
by image metrics that compare the moving
image with the transformed fixed image
(transformed by T).

The final result of the registration
process is the transform T with which
you can take the position of a pixel P
in the fixed image, map it throught T
by doing P' = T( P ) and the resulting
point P' will indicate the position of
the corresponding pixel in the moving
image.

If you use the itkResampleImageFilter
with the resulting transform, and plug
the fixed image as input, it will produce
a transformed image that should overlap
ontop of the moving image.

----

About the values of your experiment,
the resulting matrix doesn't match
the expected result.  If you are rotating
around X, The resulting matrix should be a
classical rotation matrix in the form of

      1        0           0
      0      cos a     - sin a
      0      sin a       cos a

I the applied rotation angle "a" was
1.75 degrees you should get a matrix with
values

      1        0           0
      0      0.9995    - 0.0305
      0      0.0305      0.9995

Your matrix seems to be reporting
additional rotations in other axis
with very small angles. Actually your
resulting matrix is pretty close to
identity.

The offset values look ok though.
Compared to the pixel spacing of your
image they are reporting subpixel
translations that are well in the
tolerable noise range.

It is possible that your registration
process didn't converge satisfactory.

Possible reasons could be:

1) Not enough iterations provided to
    the optimizer.

2) Learning rate too small.

These two parameters are not independent.
In principle, larger learning rate should
allow you to go with less iterations.
In practice, the risk is that too large
values of the learning rate may compromise
the stability of the optimizer and result
in large unexpected (and undesirable)
jumps in the paramter space.

So, you may want to start being more generous
with the number of iterations before trying
to increase the learning rate.



Unfortunately it is always necessary to
fine tune parameters on the registration
methods.



Please let us know if you have further
questions.


   Thanks


    Luis


=======================================

valli gummadi wrote:
> Dear Mr.Luis,
>     I am working on the Multiresolution example in itk/examples.I could 
> execute the example.
> Fixed volume is MRI volume of size 256X256X120 and spacing is 
> 0.859373\0.859375\1.60000. Moving volume is generated from fixed by 
> rotating fixed in 1.75 degrees in X-axis.I have a rough idea that when 
> fixed and rotated moving are registered and then resampled the output 
> volume should be the fixed one.Is it the correct idea or not?B'caz I 
> could not get the fixed volume after resampling.I am   enclosing the 
> final transformation matrix and offset values.Please, verify the values 
> and tell me whether they are the expected values or not.
> 
> Transformation matrix:
> 1.000000  -0.000076  -0.000058
> 0.000076  1.000000  -0.000026
> 0.000058  0.000026  1.000000
> 
> Offset vales:
> -0.071094  0.024176  0.033166
> 
> 
> Regards,
> Valli
> 
> 
>