[Insight-users] non-gradient base optimizer for 3D registration with versors

Moti Freiman freiman at cs.huji.ac.il
Mon Apr 16 08:33:07 EDT 2007


Hi Luis,
Indeed, using the initialization of the transform caused the registration
process to start converge.
Now I have some more questions:

1. When I used the itkVersorRigid3DTransformOptimizer with MI as similarity
measure I got the following:


0   -0.503786   [0.225825, 0.130641, -0.089263, 17.0313, -5.89068, 2.82659]
1   -0.530214   [0.0337306, 0.00517666, 0.0194914, 17.0843, -13.8388,
3.57437]
2   -0.732826   [0.0115593, 0.0676283, -0.240682, 19.3635, -10.6118, 3.26182
]

I understood that the most left number is the number of iteration. But when
I used the powell optimizer with my similarity measure I got:
0   1256   [0.24891, 0, 0, 16.8535, -21.8262, 1.51675]
0   1256   [0.24891, 0, 0, 16.8535, -21.8262, 1.51675]
0   1249   [0.214091, 0, 0, 16.8535, -21.8262, 1.51675]
0   1245   [0.217064, 0, 0, 16.8535, -21.8262, 1.51675]

Isn't the event occur in each iteration of the optimizer?

2. I set the powell optimizer parameters as follows:
      optimizer->SetStepLength( 0.00001 );
      optimizer->SetStepTolerance( 0.000005 );
      optimizer->SetValueTolerance( 50 );

But when the optimizer reached the requested tolerance it did not stop: here
is the output:
iter: 0   val:  717   step: 0.0001      [0.000361803, 0, 0, 16.8535, -
21.8262, 1.51675]
iter: 0   val:  717   step: 0.0001      [0.000423607, 0, 0, 16.8535, -
21.8262, 1.51675]
iter: 0   val:  717   step: 0.0001      [0.000461803, 0, 0, 16.8535, -
21.8262, 1.51675]
iter: 0   val:  717   step: 0.0001      [0.00048541, 0, 0, 16.8535, -21.8262,
1.51675]
iter: 0   val:  715   step: 0.0001      [0.00048541, 0.000161803, 0, 16.8535,
-21.8262, 1.51675]
iter: 0   val:  715   step: 0.0001      [0.00048541, 0.0002, 0, 16.8535, -
21.8262, 1.51675]
iter: 0   val:  715   step: 0.0001      [0.00048541, 0.000223607, 0, 16.8535,
-21.8262, 1.51675]
iter: 0   val:  715   step: 0.0001      [0.00048541, 0.000223607, 0.0001,
16.8535, -21.8262, 1.51675]
iter: 0   val:  715   step: 0.0001      [0.00048541, 0.000223607,
6.18034e-05, 16.8535, -21.8262, 1.51675]
iter: 0   val:  715   step: 0.0001      [0.00048541, 0.000223607,
8.09017e-05, 16.8535, -21.8262, 1.51675]
iter: 0   val:  653   step: 0.0001      [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -21.8262, 1.51675]
iter: 0   val:  653   step: 0.0001      [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -21.8262, 1.51675]
iter: 0   val:  44   step: 0.0001       [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -10.2082, 1.51675]
iter: 0   val:  44   step: 0.0001       [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -9.05781, 1.51675]
iter: 0   val:  42   step: 0.0001       [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -9.633, 1.51675]
iter: 0   val:  42   step: 0.0001       [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -9.63361, 1.51675]
iter: 0   val:  32   step: 0.0001       [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -9.63361, -0.101279]
iter: 0   val:  29   step: 0.0001       [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -9.63361, 0.516755]
iter: 0   val:  29   step: 0.0001       [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -9.63361, 0.516755]
iter: 0   val:  29   step: 0.0001       [0.00048541, 0.000223607,
8.09017e-05, 18.4716, -9.63361, 0.516755]
iter: 0   val:  1976   step: 0.0001     [0.000423607, 0.000223607,
8.09017e-05, 18.4716, -9.63361, 0.516755]
iter: 0   val:  1976   step: 0.0001     [0.00038541, 0.000223607,
8.09017e-05, 18.4716, -9.63361, 0.516755]

My main question is: How can I cause the optimizer to stop when he reach to
the minimum?


3. The last question for now: Is there a way to modify the powell optimizer
to work properly with versors as you did to the gradient-decent optimizer in
the itkVersorRigid3DTransformOptimizer. If yes, how can I do it? and if not,
why?


Many thanks for your help

Moti

On 4/15/07, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>
>
> Hi Moti,
>
>
> I missed your last question:
>
> Yes,
> you will find an example of the use of the Powell optimizer for
> 3D image registration in the directory:
>
>     InsightApplications/
>      LandmarkInitializedMutualInformationRegistration
>
>
>    Regards,
>
>
>       Luis
>
>
> -------------------
> Moti Freiman wrote:
> > Hi Luis,
> > Thanks for your quick response.
> >
> > 1. I assumed that i have a bad setting of the parameters, but I've no
> > idea from where to start.
> > My images are T2 mri images which were taken in two times. Firstly i
> > used the mutual information multi resolution example provided with the
> > ITK to register them. I initialized the transform with the identity
> > transform. and the images registered well.
> > Then I started to modify the multi resolution example to working with my
> > similarity measure.
> > The first step was to use the Powell optimizer instead of the versor
> > optimizer , but staying with the 3d rigid versor transform, and
> > initialization to the identity transform. In the first evaluation of the
> > similarity measure i got the exception. The scaling parameters and
> > others were the same as appear in the multi resolution MI registration
> > example.
> > I also tried to change the similarity measure from MI to my similarity
> > measure, but after 4 evaluations, i got  the exception when it starts to
> > apply the rotation about the Z axiz.
> >
> > 2. Is the powell optimizer can work with the versor transform, or just
> > with euler3D transform ?
> > 3. Is there anywhere  example of 3D registration with the powell
> optimizer?
> >
> > Many thanks,
> > Moti
> >
> > On 4/15/07, *Luis Ibanez* < luis.ibanez at kitware.com
> > <mailto:luis.ibanez at kitware.com>> wrote:
> >
> >
> >     Hi Moti,
> >
> >
> >     Here are a couple of suggestions:
> >
> >
> >     1) You can use the OnePlusOne evolutionary optimizer.
> >         This optimizer does not require gradients in the
> >         cost function. Note that the versor rigid 3D transform
> >         will map its parameters to the Versor space, so that
> >         you stay in the unit sphere.
> >
> >
> >
> >
> >         but.. before you get rid of the Powell optimizer,
> >         note that you may be simply using a bad set of
> >         parameters for it:
> >
> >
> >
> >     2) The message that you are getting from the Powell optimizer
> >         can be related to:
> >
> >           A) Poor initialization of the transform.
> >
> >              How are you initializing your transform ?
> >              Have you verified that the initial transform
> >              give you a large overlap of the fixed and moving images ?
> >
> >
> >           B) Using steps that are too large
> >
> >              How many iterations does the optimizer performs before
> >              you get the exception ?
> >              What parameters are you passing to the optimizer
> >
> >
> >
> >           C) Lack of using a right combination of parameter scaling.
> >
> >              What values are you setting for the parameter scaling?
> >              This is very important, since it compensates for the
> >              difference in the dynamic range of the versor components
> >              versus the translation components.
> >              You may find useful to read the description of this
> >              issue in the ITK Software Guide:
> >
> >                  http://www.itk.org/ItkSoftwareGuide.pdf
> >
> >
> >
> >
> >         Regards,
> >
> >
> >             Luis
> >
> >
> >     ---------------------
> >     Moti Freiman wrote:
> >      > Hello,
> >      > I'm trying register two 3D volumes within the ITK framework using
> >     a new
> >      > similarity measure which has no analytical gradients.
> >      > Since the 3D versor optimizer in itk is based on a gradient
> decent
> >      > optimizer. i cannot use it with my similarity measure.
> >      > I tried to use the Powell optimizer with 3DRigidVersor transform
> >     but I
> >      > got the following message:
> >      > "All the points mapped to outside of the moving image"
> >      > It seems that powell is not optimized for the versor space.
> >      > 1. Is there any option to build a non-gradient based optimizer
> >     for the
> >      > versor space as it done for gradient decent optimizer?
> >      > 2. Any other suggestions to which elements i should use in my
> >      > registration process given that my similarity measure has no
> >     gradients?
> >      > Thanks,
> >      > Moti
> >      > --
> >      > __
> >      > Moti Freiman, Ph.D Student.
> >      > Medical Image Processing and Computer-Assisted Surgery
> Laboratory.
> >      > School of Computer Science and Engineering.
> >      > The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904,
> >     Israel
> >      > Phone: +(972)-2-658-5371 (laboratory)
> >      > WWW site: http://www.cs.huji.ac.il/~freiman
> >      > <http://www.cs.huji.ac.il/%7Efreiman
> >     <http://www.cs.huji.ac.il/%7Efreiman>>
> >      >
> >      > --
> >      > __
> >      > Moti Freiman, Ph.D Student.
> >      > Medical Image Processing and Computer-Assisted Surgery
> Laboratory.
> >      > School of Computer Science and Engineering.
> >      > The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904,
> >     Israel
> >      > Phone: +(972)-2-658-5371 (laboratory)
> >      > WWW site: http://www.cs.huji.ac.il/~freiman
> >      >
> >      >
> >      >
> >
> ------------------------------------------------------------------------
> >
> >      >
> >      > _______________________________________________
> >      > Insight-users mailing list
> >      > Insight-users at itk.org <mailto:Insight-users at itk.org>
> >      > http://www.itk.org/mailman/listinfo/insight-users
> >
> >
> >
> >
> > --
> > __
> > Moti Freiman, Ph.D Student.
> > Medical Image Processing and Computer-Assisted Surgery Laboratory.
> > School of Computer Science and Engineering.
> > The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904, Israel
> > Phone: +(972)-2-658-5371 (laboratory)
> > WWW site: http://www.cs.huji.ac.il/~freiman
>



-- 
__
Moti Freiman, Ph.D Student.
Medical Image Processing and Computer-Assisted Surgery Laboratory.
School of Computer Science and Engineering.
The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904, Israel
Phone: +(972)-2-658-5371 (laboratory)
WWW site: http://www.cs.huji.ac.il/~freiman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20070416/78cd51aa/attachment.html


More information about the Insight-users mailing list