[Insight-users] [Fwd: Question Regarding ICP]

Wes Turner wes.turner at kitware.com
Fri Oct 12 12:33:06 EDT 2007


Rushin,

I think you have it backward.  My belief is that the fixed points are probed
for points close to the moving points.  (From the documentation: "A vector
of minimum closest point distance is created for each point in the moving
point-set".)  This makes the registration fragile to outliers in the moving
data set.  Have you tried the experiment in the other direction?  I.e. Add
points to the fixed data set and retry the registration.  If this is robust,
then your understanding is incorrect and you will need to adjust your data
to guard against outliers.

The other  problem that could be occurring is that while the added point is
far from the correct position, the starting position of the moving data puts
the additional point close to the fixed data.  To test this, start the
moving data from the correct position ( i.e. where the correct solution
would be the identity matrix) and retry the registration.

- Wes

On 10/11/07, Zack Galbreath < zack.galbreath at kitware.com> wrote:
>
>
>
> Hi,
>
> I am trying  to use ICP to register two datasets with different number
> of points. When the number of points in the two datasets is the same it
> works well and the returned transformation parameters are correct. When
> I add another point to the moving dataset (the added point is very far
> from the other points), the transformation parameters will change and
> are not correct anymore. My understanding of ICP is that it should find
> the closest points to the fixed points and calculate the transformation
> parameters and apply it to the moving image and again find the closest
> points in the transformed  moving dataset and find the transformation
> parameters and iterate to find the final accumulated transformation
> parameters. So it should be able to register two datasets with different
> number of points. Hence adding a point to the moving set (when it is
> very far from the other points) should not change the result. My
> question is that, in ITK, is ICP NOT able to register two datasets with
> different number of points or there is a problem in my program. I am
> testing it with IterativeClosestPoint2.cxx and made a few changes to
> make it 2D rather than 3D as followed:
>
> #include "itkEuler2DTransform.h "         rather than        #include
> "itkEuler3DTransform.h"
> const unsigned int Dimension = 2;         rather than        const
> unsigned int Dimension = 3;
>
> typedef itk::Euler2DTransform< double > TransformType;         rather
> than          typedef itk::Euler3DTransform< double > TransformType;
>
> scales[0] = 1.0 / rotationScale;
> scales[1] = 1.0 / translationScale;
> scales[2] = 1.0 / translationScale;        rather than
>
> scales[0] = 1.0 / rotationScale;
> scales[1] = 1.0 / rotationScale;
> scales[2] = 1.0 / rotationScale;
> scales[3] = 1.0 / translationScale;
> scales[4] = 1.0 / translationScale;
> scales[5] = 1.0 / translationScale;
>
> The rest of the code is exactly the same as the example in
> IterativeClosestPoint2.cxx.
> As a simple example, the inputs to the program are:
> fixed dataset:
> 139 116
> 142 203
> 240 195
>
> and moving dataset is:
> 251 85
> 254 172
> 352 164
>
> In this case the transformation parameters are    rotation: 0
> Translation: -112  31    which are correct
> But when I add a point to the moving dataset for example (1, 1) or any
> other point which is very far from the existing ones, the result will
> change, while it should not.
> I appreciate if someone could help me.
>
> Best,
> Rushin
>
>
>
>
>
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
>


-- 
Wesley D. Turner, Ph.D.
Kitware, Inc.
R&D Engineer
28 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-371-3971 x120
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20071012/e5a73c9a/attachment.htm


More information about the Insight-users mailing list