[Fwd: Re: [Insight-users] point cloud registration]
José Santamaría López
jsantam at ugr.es
Fri Jul 29 14:25:33 EDT 2005
Hi Dennis,
There are a great amount of papers
that address the registration problem
for points clouds-points clouds or
points clouds-triangle mesh (or surface)
registration. Only make a googling search
by "3d range image registration" or simply
take the Bels and Mckay's proposal (1992).
With respect to your questions:
1.- For points clouds-triangle mesh registration,
the only thing you need is to compute the distance
from a particular point-matching. It can be done
as suggested Luis by using a distance map or
computing the distance from a given point of the
cloud to the surface (I don't know if ITK can
perform it)
2.- For points clouds-points clouds registration,
you can compute the closest point task by means
a Distance map or with a spacial index structure
as the kd-tree.
The main thing that you should take into account
when working with ICP methods is that there are
some drawbacks which it fall in local minima or
achieves bad results:
1.- One of both images (point clouds, surfaces,
etc.) must be a subset of the other.
2.- It can not operate with non normally
distributed observations, as occurs in your
points clouds-points clouds instance.
Regards.
Jose.
Luis Ibanez
>
> Hi Dennis,
>
> I would suggest you to use only the points
> from the triangular mesh, unless the triangles
> are very large compared to the density of points
> in the other set.
>
> If the density of points in the other set is
> higher then you may want to apply subdivision
> on the triangular mesh in order to bring both
> meshes to similar densities.
>
> In practice, it all depends on the shape of
> the triangular mesh and the point cloud.
> If they have fairly characteristic shapes,
> you may be able to register them using ICP
> despite the difference in point density.
>
>
> If you really really really want to use the
> mesh information, you can first rasterize
> the mesh (assuming that it is a closed surface),
> and compute the signed distance to the binary
> mask that results from the rasterization.
> Then you use that Distance map and the point
> cloud as the two datasets to be registered.
>
>
> Regards,
>
>
> Luis
>
>
>
> ---------------------
> Dennis Wenzel wrote:
>> Hello Luis,
>>
>> But to answer the first two questions...
>>
>> Can I use ITK to register a triangle mesh and an arbitrary set of
>> points?
>>
>> Will the ICP algorithm work for two points sets of the same surface in
>> which there is no implied correspondence between points in the two sets?
>>
>> Thanks...
>>
>> Dennis
>>
>> ----- Original Message ----- From: "Luis Ibanez"
>> <luis.ibanez at kitware.com>
>> To: <wenzeld at att.net>
>> Cc: <insight-users at itk.org>
>> Sent: Wednesday, July 27, 2005 9:43 AM
>> Subject: Re: [Insight-users] point cloud registration
>>
>>
>>>
>>> Hi Wenzeld,
>>>
>>> You may want to read the description of this
>>> problem in the ITK Software Guide
>>>
>>> http://www.itk.org/ItkSoftwareGuide.pdf
>>>
>>>
>>> That describes the ICP examples in Examples/Patented.
>>>
>>> ICP is the method that you may want to use in this case.
>>>
>>>
>>> You are right in your observation that the examples in
>>> this directory do not use any of the classes in the main
>>> Patented directory. The reason is that thanks to the
>>> modularity of the ITK Registration Framework, you can
>>> "build" ICP by putting together ITK components.
>>>
>>>
>>> In practice,
>>> the recipe for "ICP" includes the
>>> following ingredients:
>>>
>>> 1) Sum of Squared Distances Metric
>>> 2) An optimizer (usually Levenberg-Marquardt)
>>> 3) A search for nearest points
>>>
>>> Option (3) can be solved implicity with the help of
>>> a distance map, as illustrated in the examples of
>>> the ITK Software Guide.
>>>
>>> The "issue" with the ICP examples is that they are using
>>> fairly common algorithmic compontes as the ones listed
>>> above. Individually, they are not patented (as far as we
>>> know), but when you put them together in the particular
>>> combination described in the examples then you have an
>>> equivalent to ICP.
>>>
>>> This is just another instance of how shamefully the
>>> intellectual property system obstructs the advancement
>>> of science and technology in the foolish quest for
>>> individual profit, most of the time at the expense of
>>> ideas that are... not that bright.
>>>
>>> The US patent office awards patents for "human genes",
>>> as well as for the "peanut-butter and jelly sandwich".
>>>
>>> You will find an intersting discussion on intellectual
>>> property in the book:
>>>
>>> "The Future of Ideas" by Lawrence Lessig
>>> http://www.amazon.com/exec/obidos/tg/detail/-/0375726446/qid=1122475215/sr=8-1/ref=pd_bbs_sbs_1/104-7198053-7029550?v=glance&s=books&n=507846
>>>
>>>
>>>
>>> BTW, The patent for ICP is held by General Motors.
>>>
>>>
>>>
>>> Regards,
>>>
>>>
>>> Luis
>>>
>>>
>>> ------------------------
>>> wenzeld at att.net wrote:
>>>
>>>> I am a little familiar with ITK. I am curious about if, and how, the
>>>> following can be done using ITK. (I can read the documentation to
>>>> understand the details; I just need to know if it is possible and
>>>> generally which class(es) to use.)
>>>>
>>>> 1. I have a triangle mesh surface (not closed) and a 3D point cloud
>>>> of points. The cloud of points is acquired by a human using an
>>>> arbitrary traversal across the surface using a Microscribe
>>>> digitizer. How can the 3D point cloud be registered to the triangle
>>>> mesh surface? I only need to register using rotations, translations,
>>>> and scale.
>>>>
>>>> 2. In another scenario, I have two 3D point clouds (and no triangle
>>>> mesh surface) which I need to register to each other. These point
>>>> clouds are acquired at separate points in time (e.g., days apart) and
>>>> perhaps even by seperate humans using the digitizer which means their
>>>> scanning patterns may be different. So, there is no correspondence
>>>> between points, at least in the order in which they were digitized.
>>>> Is the ICP (iterative closest point) algorithm appropriate for this
>>>> pointset-to-pointset registration? If not, does one of the point
>>>> sets have to be converted into a triangle mesh (if so, how is that
>>>> done)?
>>>>
>>>> 3. If the ICP algorithm is to be used in response to issue number 2
>>>> above, then how is the fact that the ICP example in the
>>>> "examples/patented" folder need to be addressed? I did not see that
>>>> any of the classes in the "code/patented" folder were being used by
>>>> this example. So, what issues, if any, are there in using this
>>>> algorithm?
>>>>
>>>> Thanks...
>>>>
>>>> Dennis Wenzel
>>>> _______________________________________________
>>>> 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