[Insight-users] Re: NMI registration

Luis Ibanez luis.ibanez at kitware.com
Tue Aug 10 18:25:20 EDT 2004


Hi Vineet,

Thanks for you clarifications.

What you describe sounds like a problem with the
Event invoking/observing mechanism.
What are you using for looking at the Metric values ?


Are you setting up a Command/Observer as illustrated
in Insight/Examples/Registration  ?



It is not surprising that after a Jump the metric
may take a many iterations to recover. You may have
to look at the changes in the Transform parameters
in order to evaluate how much the optimizer is moving
in the parametric space.

I would suggest you to get familiar first with the
parameter tunning using a simple TranslationTransform.
Do not attempt to use an Euler3DTransform until you
feel confident with tunning the optimizer parameters
in the simple Translation case.

If you think in terms, of a landscape, the changes
of the metric just represent changes in elevation,
their magnitude is not necessarily correlated with
how far you move in the parametric space.


If you identify some parameters in the Transform
that have already satisfactory values, you may prevent
them from changing by setting their associated scaling
values. In this way you can almost disable selected
parameters from the Transform.



   Regards,


      Luis



-----------------------
Vineet Kulkarni wrote:

> Hi Luis,
> 
> - I am using Bspline interpolation.
> - I dont expect the optimizer to follow the same "return" path, nor do I 
> expect it to return back to the optimum in just one step.
> 
> - I was initially not working with the same images, but I found that during 
> the registration process, one interation would significantly reduce the metric 
> value but then it would  take a really long time to recover.
> - I was performing registration with the same images is to examine that 
> behaviour. I saw that the metric value reduced by one iteration takes hundreds 
> of iterations to recover. What I wanted to know was if this behaviour was 
> normal.
> - The other reason was that in the images I am working on, some transform 
> parameters may already be near optimal but others very different. So for the 
> values which are already near optimal I wouldnt want them to go away and then 
> take too many iterations to get back.
> 
> Regards,
> Vineet
> 
> 
> 
>>===== Original Message From Luis Ibanez <luis.ibanez at kitware.com> =====
>>Hi Vineet,
>>
>>
>>Some lateral comments first:
>>
>>A) The value of normalized mutual information is
>>   and *estimation*. The quality of this estimation
>>   will vary depending on the number of histogram
>>   bins and the number of sample points taken.
>>
>>
>>B) The choice of the Interpolator has a critical
>>   effect on the computation of the metric. What
>>   interpolator are you using ?
>>
>>
>>C) The optimizer is walking in a non-linear parametric
>>   space, there is no reason for expecting that the
>>   "return" trip will follow the same path of the jump
>>   that introduced a first misregistration step".
>>
>>   Since you are starting at the maximum, the evaluation
>>   of the metric derivatives at this position will return
>>   a NULL vector. A gradient descent optimizer will therefore
>>   depart in an almost random direction.
>>
>>
>>D) You may want to try the OnePlusOne Evolutionary
>>   optimizer illustrated in the Examples
>>
>>         Insight/Examples/Registration
>>                     ImageRegistration11.cxx
>>                     ImageRegistration14.cxx
>>
>>    This optimizer does not requires derivatives of
>>    the Image Metric, and therefore it may behave
>>    closer to what you seem to be intuitively expecting.
>>
>>
>>
>>Some basic questions:
>>
>>1) What is the purpose of your test ?
>>
>>2) What is the behavior that you were expecting from
>>   the optimizer ? To return to the original position
>>   in a single step ?
>>
>>3) Once you succeed to make this self-registration
>>   work,  what will you have achieved ?
>>
>>
>>
>>Starting with two identical images and an identity Transform
>>doesn't seems to be intended for evaluating any particular
>>behavior of a registration method. Optimization methods are
>>designed to get to extrema values, not to depart from them
>>and return rapidly.
>>
>>
>>Put in other words:
>>
>>    There are so many *real* and *interesting* problems to
>>    solve out there, that it doesn't seem to be worth to
>>    invest time in fine tunning an artificially constructed
>>    registration problem that may not illustrate any useful
>>    behavior of a registration algorithm.
>>
>>
>>
>>
>>Please let us know if you have good reasons
>>for pursuing this tautological test.
>>
>>
>>
>>   Thanks
>>
>>
>>
>>      Luis
>>
>>
> 
> 
> 






More information about the Insight-users mailing list