[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