[Insight-users] ICP error calculation
Luis Ibanez
luis.ibanez at kitware.com
Sun Feb 3 21:29:09 EST 2008
Hi Kami,
If you set the metric to use Squared Values
and then add the values of the multivalue metric,
you will get the sum of squared values.
Take the square root of this sum and you will have RMS.
Regards,
Luis
-------------------------
kambiz rakhshan wrote:
> Hello again luis,
>
> Thank you very much for your quick response.Just one more question
> remain and it is:
> How we can calculate the RMS error of our point set registration or our
> optimizer?off course we can use the command bellow:
>
> std::cout << "Value = " << optimizer->GetCachedValue() << std::endl;
> but it brings out multivalue.Is it possible to bring the RMS error or
> some sort of error as one single value?For example is it possible to sum
> the square distance between fixed point set and transformed moving point
> set(applying the last transformation to the moving point set)?if so,how
> we can do it?
>
> Thanks in advance.
> Sincerely,
> Kami
>
> */Luis Ibanez <luis.ibanez at kitware.com>/* wrote:
>
>
> 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 /* 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.
> >
> >
>
>
> ------------------------------------------------------------------------
> 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