[Insight-users] ICP variants
Miller, James V (Research)
millerjv at crd.ge.com
Wed Nov 3 09:00:34 EST 2004
Instead of "leaving out" point pairings larger than a certain distance
(threshold), you could set the distance for these pairings at the
distance threshold. In other words, the distance calculated by the
metric for a given point pairing is the smaller of the actual distance
between the points and the "threshold".
d(p1, p2) = ||p1 - p2|| if ||p1 - p2|| < T
T otherwise
In this manner, every outlier has the same "contribution" to the metric
regardless of the magnitude of the outlier. This keeps an outlier
from being a pivot point. This approach "numerically" marginalizes
the outliers, removing their influence from the matching criteria.
Say you have 50 points that you are trying to match, with 10 of
the points capable of matching below the threshold. As the
transformation is changed, you can improve or degrade the matching
of the 10 "inliers" and you will probably degrade the matching
of the 40 "outliers". With a thresholded metric, the contribution
from the 40 outliers to the metric is constant and the contributions
from the 10 inliers is what will drive the optimization.
>From an ITK standpoint, the number of distances used in the metric
is a constant. So not changes to the registration framework are needed.
You can use "softer" thresholds as well,
d(p1, p2) = w(||p1 - p2||)
where w() is a smooth function that "levels off" as the distances
get large. I think the Tukey bi-weight is a common choice.
Jim
-----Original Message-----
From: Ferdinando Rodriguez y Baena
[mailto:ferdinando.rodriguez at imperial.ac.uk]
Sent: Wednesday, November 03, 2004 7:23 AM
To: insight-users at itk.org
Subject: Re: [Insight-users] ICP variants
Dear Sam,
I have spent some considerable time trying to modify and adapt the simple
ICP mechanism provided by ITK to my purposes (3D pointset to surface
registration), but without success. The Levenberg-Marquardt optimiser
provided is not the most suitable for this purpose, and there is no easy way
to modify it without getting into complex programming.
What you are trying to do is fairly straightforward if you implement your
own version of the method, using ITK's basic structures for convenience
(itkPointSet, itkMesh, etc.). I can give you a few pointers on how this can
be done if you wish.
Good luck.
Ferdinando
Let me know
----- Original Message -----
From: "Sam Theisens" <Theisens.Sam at gmx.de>
To: <insight-users at itk.org>
Sent: Tuesday, November 02, 2004 9:08 PM
Subject: [Insight-users] ICP variants
> Hi everyone,
>
> Since the standard ICP implementation is not suitable for registering
> partially overlapping surfaces, I want to make some adjustments according
> to
> Turk, G. and Levoy, M. In particular, I want to leave out point pairings
> from the cost function, for which the distances are bigger than a certain
> threshold, or where one of the points lies on the boundary of the surface.
>
> This means that the number of point distances that make up the metric will
> vary with each iteration. The optimizer needs a multiple
> valued cost function as input.
>
> The problem I am facing is that I cannot change the size of the cost
> function's array at each iteration. Does anybody have an idea on how to
> solve this? Or has anybody got any experience with making ICP variants in
> ITK?
> Thanks in advance!
>
> Sam Theisens
>
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
_______________________________________________
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