[Insight-users] parameters for a 1+1 evolutionary optimizer

Denis Nikitenko dnikiten at uoguelph.ca
Thu Jun 3 12:51:05 EDT 2004


Luis,

1) The moving image is interpolated after each level of subdivision. In effect,
each level gets closer an closer to the optimal registration (or at least this
is the idea). Once the subimages at each level have been rigidly matched, their
centres are used at the control points for the interpolating spline. I'm not
sure if it is necessary to initialize the next level of translations to the
results of the previous one, since the translation has already been "applied"
through interpolation, but I will give it a try.

2) and 3) At the moment I am not using rotation, I use a simple
TranslationTransform, so if I understand the scaling factors correctly, I don't
need them.

4) I have only been displaying the transform parameters so far. The exception
occurs when, for instance, while registering 32x64 images, the optimizer picks a
random sample [-31.962, -1.87488]. 

As for the value returned by the metric - it is calculated after checking how
many samples map outside of the moving image, so if the exception is thrown, the
metric is not calculated. I will move this check to the end of GetValue() method
and take a look at the results. 

I'm curious - what is the proper exception-handling procedure in this case? In
the examples, which I used as the basis for my code, once the exception is
thrown, the registration terminates. Should I attempt instead to adjust the
transform/optimizer parameters and attempt the registration once more?

Dennis

> Hi Denis,
> 
> Thanks for posting the additional details of your program.
> 
> 1) Shouldn't you initialize the transforms of the
>     subimages to the translation that you already
>     resolved from the larger image ?
> 
>     Otherwise you are not taking advantage of the
>     natural multi-resolution approach that you are
>     using.
> 
>     If you start always from null translations,
>     your sub-images may have to move a relatively
>     large distance in order to get registered.
> 2) Ok, using a new optimizer is fine. Just make sure
>     that the scaling parameters you pass to it, are
>     proportional to the extent of the image that you
>     are trying to register.
> 
> 
> 3)  Nope, by scaling factors I meant the array
>      of scaling parameters. This is the array that
>      allows you to compoensate for the difference
>      in the dynamic range between the rotational
>      and translational components.
> 
>      Rotations are propotional to radians... thus
>      around -1:1,  while translation are proportional
>      to millimeters (if you are using CT or MRI), thus
>      in the range -500:500.
> 
>      Please look at the example ImageRegistration8.cxx
>      to see the use of the scaling parameters.  In fact
>      most of the examples in
> 
>           Insight/Examples/Registration
> 
>      are using parameter scaling.
> 
> 
> 4)  My Mistake about
>      "the value returned by the Transform"
>      what I wanted to say was:
>      "the value returned by the Metric"
>      Sorry about that.
> 
> 
> Please let us know of your findings,
> 
> 
>     Thanks
> 
> 
> 
>        Luis


More information about the Insight-users mailing list