[Insight-users] RE: VersorRigid3DTransform & Optimization
Luis Ibanez
luis.ibanez at kitware.com
Fri, 09 Jan 2004 14:49:13 -0500
Hi Radhika,
It seems that you forgot to attach the optimization
results to your previous message.
Could you please resend ?
---
In any case,
about your questions:
1) Using multi resolution is always good.
It increases robustness and speeds up
the registration process.
You will find multi-resolution examples
in the SoftwareGuide
http://www.itk.org/ItkSoftwareGuide.pdf
Section 8.6, pdf-page 281.
2) There is not a direct way to set a tolerance
for the Metric value in the optimizer. However
you can easily implement this in the Observer
of the Optimizer. Simply check for the metric
value on the Execute() method of the Command/
Observer and if it matches your stopping
criteria you invoke
optimizer->StopOptimization()
Otherwise you could use the GradientMagnitudeTolerance
which is a stopping criterion based on the magnitude
of the gradient. Therefore indicating how flat is
the metric value in the current position. In theory,
the gradient will tend to be zero when you are in
critical point (minimum/maximum/saddle) of the metric.
Please look at the documentation of the RegularStep
GradientDescentOptimizer.
http://www.itk.org/Insight/Doxygen/html/classitk_1_1RegularStepGradientDescentBaseOptimizer.html
3) The step length stopping criteria is based on the
fact that each time the value of the metric increases
the step length is divided by two and its direction
is reversed. If the optimizer enters a valley this
process may lead convergence at the bottom of the valley.
What you specify with MinimumStepLength is how much you
care about precision.
In other words, if you set the minimum step length to
0.001 you are saying that you are satisfied with a
rotation precision of +- 0.01 radians which is about
0.57 degrees. If you are too exigent on the precision,
e.g. 10-7 radians, the optimizer will take a long time
to converge until its oscillations are smaller than this
value. So you basically have a trade-off between
precision and optimization time.
Thanks
Luis
-------------------------------
Radhika Sivaramakrishna wrote:
> Hi Luis,
>
> I decided to start with an initial rotation of 9 degrees (my real
> rotation is 10 degrees) and I was trying to study what parameters to use
> to recover this. I am attaching part of the results at each iteration.
>
> I used the following:
>
> Maximum step length = 0.1
> Minimum step length = 0.01
>
> I find the metric comes down to a low value of about 37 and then starts
> climbing again. Looking at these results, would you recommend
>
> 1) going to a smaller max step length
> OR
> 2) Using a hierarchical multiresolution approach.
>
> I also have another question:
>
> Is there a way to set a minimum value of metric to go down to? How is
> this related to the parameter MinimumStepLength?
>
> Thanks
> Radhika
>
>
>