[Insight-users] ICP error calculation
Luis Ibanez
luis.ibanez at kitware.com
Wed Jan 30 20:17:39 EST 2008
Hi Alireza
You may want to read about the Iterative Closest Point algorithm.
http://en.wikipedia.org/wiki/Iterative_Closest_Point
Follow the documents in the "External Links".
The method is as follows:
You have two sets of Points: FixedSet and MovingSet.
0) The Transform parameters are initialized
(This part is your responsibility).
For N iterations:
1) For every given point of the MovingSet,
the metric finds the closest point in the
FixedSet. That point is assigned at its
correspondant in this iteration.
2) With all the correspondances established
in step (1), the Metric computes the distances
between all the pais of points (fixed,moving).
[itkEuclideanDistancePointMetric.txx: lines 85-136]
3) The metric value (multi-value) is passed to the
optimizer.
4) The optimizer decides what changes to apply to the
Transform parameters.
Go for Next iteration.
The optimizer stops when the maximum number of iterations
(that you provide) is reached, or when the gradient of the
metric goes below a certain value (that you provide), or
when the metric itself (the sum of distances) goes below
a certain value (that you provide).
If you want to get familiar with this method you should
start by playing with the examples, and run them with
the following parameters:
IterativeClosestPoint2.exe
IterativeClosestPointFixedPoints2.txt
IterativeClosestPointMovingPoints2.txt
The two .txt files can be found in
Insight/Examples/Data
Regards,
Luis
---------------------
kambiz rakhshan wrote:
> Hello Luis,
>
> Can any body let me know how exactly Iterativeclosestpoint2 works with
> out knowing the correspondence points? I Understood that the iteration
> starts by the predefined initiated transform,and it will continue until
> it reaches the convergence criterion!!!but how?
> I mean how the optimizer works without knowing the correspondence
> points?How the error is calculated?
> I have some problem with the concept of this point set
> registration!!!!!!!!!!!
> Any help is appreciated.
>
> Thank in advance,
> Alireza
>
>
> */Luis Ibanez <luis.ibanez at kitware.com>/* wrote:
>
>
> Hi Kambiz,
>
> You can see the errors by adding a Command/Observer, as it is shown
> in the Example:
>
>
> Insight/Examples/Patented/IterativeClosestPoint1.cxx
>
> This will show you the error values at every iteration.
>
> If you really want to see only the final value, then you could
> simply call
>
>
> std::cout << "Value = " << optimizer->GetCachedValue() << std::endl;
>
> at the end of the program.
>
>
> Note that in order to interpret this value correctly, you have
> to pay attention to the settings of the Metric. In particular
> whether you asked the Metric to compute the Distance or the
> squared Distance.
>
>
> Regards,
>
>
> Luis]
>
>
>
>
> ----------------------
> kambiz rakhshan wrote:
> > Hi all,
> > I have implement the iterative closesct point2 algorithm on my
> pointsets
> > with out knowing the correspondance.Know I want to know how can I
> > calculate the error?I have used the same optimizar and transform and
> > matric.Can anybody let me know how can I see the error?I mean is
> there
> > any command that I need to add to the code to bring out the error?
> > Thanks in advance,
> > Kambiz
> >
> >
> ------------------------------------------------------------------------
> > Be a better friend, newshound, and know-it-all with Yahoo!
> Mobile. Try
> > it now.
> >
> > >
> >
> >
> >
> ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users at itk.org
> > http://www.itk.org/mailman/listinfo/insight-users
>
>
> ------------------------------------------------------------------------
> Looking for last minute shopping deals? Find them fast with Yahoo!
> Search.
> <http://us.rd.yahoo.com/evt=51734/*http://tools.search.yahoo.com/newsearch/category.php?category=shopping>
>
More information about the Insight-users
mailing list