[Insight-users] Re: MultiResMIRegistration Example
Luis Ibanez
luis.ibanez@kitware.com
Wed, 11 Sep 2002 17:24:26 -0400
Hi Christina,
Rotations are harder to register than translations.
Keep in mind that this example is using a gradient
descent optimizer which is useful under the assumtion
that the Image metric progressively improves as you
get closer to the registration position.
Unfortunately, any gradient descent-like algorithm
can get trapped in local minima.
An interesting experiment to do is to log all the
values of the metric and the parameters of the
transform along the path followed by the registration
algorithm.
It is quite possible that existance of intermediate
mimima prevents the optimizer from reaching the optimal
registration position.
A possible solution to this problem is the use of
genetic algorithms since they are less vulnerable
to local minima. You can try the OnePlusOne Optimizer
for this purpose.
You may also want to experiment with different
metrics. The default metric in this example is
MutualInformation, and given that you are generating
the moving image from the fixed image, both images
have a similar distribution of gray levels. This is
not the condition on which MI behaves the best.
BTW about the judgement of the quality in the final
registration... Are you visualizing the registered
image in some way ? or are you comparing the values
of the quaternion with the 5 degrees rotations along
x,y and z axis ? Keep in mind that a sequence of
rotations around x, then y and then z will not result
in a quaternions with a uniform axis orientation.
Inapropiate values on the Image spacing can also
lead to registration failures. The data you are
registering seems to be quite anisotropic. Are the
spacings in your image defined correctly ?
(e.g. for a volume of size 256x256x40 the Z spacing
should probably be 5 times the x and y spacing.)
Under unapropiate scaling a rotated object becomes
deformed will not correspond to the expected original
image.
Luis
---------------------------------------
Christina Lee wrote:
> Hi Luis,
>
> Thank you so much for your help!
> I was finally able to obtain reasonable final
> translation parameters after i tweaked the translation
> scale. So I moved on to test the rotation (I
> created a phantom that was rotated 5 deg's in x, y,
> z-dir) & I noticed that the MultiResMIRegistration
> program was only able to undo the rotations in a less
> than perfect manner. The registered cube was not quite
> rotated back to its original position.
>
> Christina
>