[Insight-users] Optimzers and metrics for point set to point
set registration
Luis Ibanez
luis.ibanez at kitware.com
Mon Aug 14 07:47:55 EDT 2006
Hi Harry
1) The reason why the PointSetToPointSetMetric uses the MultipleValued
cost function is that in this way you are able to use the Levenberg
Marquardt optimizer, that results in faster convergence. You are
right, that this choice also precludes the use of other optimizers.
You may want to enjoy here the pleasures of Open Source and modify
your local copy of the PointSetToPointSetMetric in order to use
SingleValued cost functions.
You can also create a second PointSetToPointSetMetric base class
that uses SingleValued cost functions instead of MultipleValued ones.
Then create your own PointSetToPointSetMetrics deriving from this new
base class.
At that point you will be able to use most of the others ITK
optimizers, including the VersorRigid3DTransformOptimizer.
2) Please read the ITK Software Guide:
http://www.itk.org/ItkSoftwareGuide.pdf
In particular the the "Image Registration" Chapter. Please pay
particular attention to the section on Transforms, and the section
on Optimizers.
You will find that the *only* reason why the Versor and Quaternion
based transform have their own specific optimizers is that Versors,
and Quaternions do not form Vector spaces. The rules for applying
Gradient descent like operations are therefore different.
In particular, Versor are not combined by adding component but by
composition.
The components of the AffineTransform and the SimilarityTransform,
on the other hand, form a Vector space and therefore you can use
any of the typical optimizers, that are not specific to a Transform.
Regards,
Luis
--------------------
Harry Hoellig wrote:
> Hi everyone,
>
> I've got two questions and it would be great if someone could help...
>
> 1.) I want to perform a point set to point set registration with the
> VersorRigid3DTransform but the associated optimizer
> VersorRigid3DTransformOptimizer uses a SingleValuedCostFunction as
> metric while PointSetToPointSetMetric is a MultipleValuedCostFunction.
> Among the SingleValuedCostFunctions there seems to be no metric which I
> could use for a point set to point set registration. So, is there a way
> to solve this problem in ITK or do I have to implement an own metric to
> convert the PointSetToPointSetMetric into a SingleValuedCostFunction?
>
> 2.) I also want to perform the registration with a similarity and an
> affine transformation but I can't find any optimizers to use with these
> transformations. I tried the LevenbergMarquardtOptimizer but it seems to
> destroy the transformation matrix. So, which optimizers can I use?
>
> Thanks in advance
> Harry
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
>
More information about the Insight-users
mailing list