[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