[vtkusers] ICP algorithm giving eigenfunctions errors
Sean Snyders
ssnyders at wetafx.co.nz
Mon Jun 15 14:57:22 EDT 2009
Hi David,
Well, the data is from the example:
http://www.vtk.org/Wiki/Iterative_Closest_Points_(ICP)_Transform
<http://www.vtk.org/Wiki/Iterative_Closest_Points_%28ICP%29_Transform>
given in the wiki.
It is 3 points where the source is shifted 0.1 in the y direction:
source[0] = (1.0, 0.1, 0.0)
source[1] = (0.1, 1.1, 0.0)
source[2] = (0.0, 0.1, 1.0)
and target:
target[0] = (1.0, 0.0, 0.0)
target[1] = (0.1, 1.0, 0.0)
target[2] = (0.0, 0.0, 1.0)
and for each of the iterations of the ICP it gives the error.
ciao,
Sean.
David Doria wrote:
>
> On Mon, Jun 15, 2009 at 3:08 AM, Sean Snyders <ssnyders at wetafx.co.nz
> <mailto:ssnyders at wetafx.co.nz>> wrote:
>
> Hi,
>
> I use the example from:
> http://www.vtk.org/Wiki/Iterative_Closest_Points_(ICP)_Transform
> <http://www.vtk.org/Wiki/Iterative_Closest_Points_%28ICP%29_Transform>
>
> and do a direct translation thereof in python (see code listed below).
> When I run the code, I get this warning:
> --------------
> Generic Warning: In ........./Common/vtkMath.cxx, line 758
> vtkMath::Jacobi: Error extracting eigenfunctions
> ------------
>
> and my output transformed points are then:
> ------------------
> xformed source point[0]=[nan, nan, nan]
> xformed source point[1]=[nan, nan, nan]
> xformed source point[2]=[nan, nan, nan]
> -----------------
>
> Should this example not work? I have not tested this with the c++
> implementation, but surely it should work.
>
> Thanks!
> Sean.
>
>
> Sean,
>
> It is completely dependent on the data sets that you use. I've seen
> that error when it cannot find a good enough transformation. Take one
> of your data sets (call it A), perturb it slightly (call this one A'),
> and run the example on A and A'. If that doesn't work then please post
> your data sets so we can take a look.
>
> As this points out, I think we should really develop a better ICP
> algorithm in VTK. There are several algorithms that use the covariance
> of the transformation parameters to tell you if the transformation has
> converged to a reasonable position, i.e. if it "worked". They usually
> also use robust estimators (M-estimators) to determine the point
> pairing before the transformation is estimated. Does anyone already
> have a good ICP implementation that they could add to VTK?
>
> Thanks,
>
> David
> ------------------------------------------------------------------------
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
More information about the vtkusers
mailing list