Point Clouds Comparison

Feel free to ask any question here
Post Reply
gmart
Posts: 8
Joined: Tue Mar 13, 2012 10:23 am

Point Clouds Comparison

Post by gmart »

Hello all,

I have to compare several point clouds that represent approximately the same planar surface.
I have tested 2 functions in order to decide which method is the best for me:
- Compute cloud/cloud distance, between compared point cloud A and reference point cloud B, with a Least Square Plane local model;
- Compute cloud/mesh distance, between A and a plane derived from B with the Tools > Other > Plane orientation function;

I get different results I can't explain thanks to the software documentation.

Is it possible to have more informations about these functions?

I am working with CloudCompare V2.3 (02/14/2012)
daniel
Site Admin
Posts: 7405
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Point Clouds Comparison

Post by daniel »

The main difference here is scale.

In the cloud-to-cloud distance with local modeling, small LS planes are computed locally around each point (in a very small neighborhood, which size is controlled by a hidden parameter). Therefore, they are much more prone to local noise and their orientations may vary a lot. By the way, this 'local modeling' approach is only meant to cope with cloud sampling issues and can't be considered as a true "model". Also, it gives statistically better results (considering the whole distance histogram) but it can locally produce 'singularities'.

The other method seems to be the right one for you. It's much more robust to local noise. You simply compute the distance from each point to the plane. There's no hidden parameter.
Daniel, CloudCompare admin
gmart
Posts: 8
Joined: Tue Mar 13, 2012 10:23 am

Re: Point Clouds Comparison

Post by gmart »

Daniel, thanks for this response.

The second method seems indeed to be the best for me.
However, it seems that when a part of the compared point cloud is out of the horizontal area of the reference plane, it leads to hight distances, which must be wrong due to the similarity of the surface described by the point clouds.
Are the extents of each object important in this function?
daniel
Site Admin
Posts: 7405
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Point Clouds Comparison

Post by daniel »

Indeed, the extent of the plane must be larger than the cloud's one.

In this comparison mode, CloudCompare only considers the triangles that compose the "plane" (the plane here is a triangular mesh, as any other CloudCompare meh). Then it computes the distance from every point to the nearest triangle. This distance is defined as in http://www.geometrictools.com/Documenta ... angle3.pdf. If the orthogonal projection on the point falls inside the triangle, we take the distance between the point and its projection, otherwise we take either the distance to the projection on the nearest edge or directly to the nearest summit (depending on the cases).

CloudCompare doesn't handle (yet) primitives other than points or triangles. It would be nice to be able to handle other primitives such as planes, spheres or cylinders (however it will require each time heavy specific developments).

Daniel
Daniel, CloudCompare admin
gmart
Posts: 8
Joined: Tue Mar 13, 2012 10:23 am

Re: Point Clouds Comparison

Post by gmart »

Thank you for all these informations, the different problems are now clearer for me.

To confirm my comprehension and to summarize the solution for my example:
To compare two point clouds of the same planar surface, the best method is to compute cloud-to-mesh distances between:
- the compared point cloud, and
- the plane derived from the reference point cloud through the Plane orientation function.
The extent of the reference point cloud must be larger than the compared point cloud (in order to project all compared points inside the triangular mesh of the plane).

Is it that?
daniel
Site Admin
Posts: 7405
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Point Clouds Comparison

Post by daniel »

I won't go so far as to say that it's "the best method" for your problem: I don't know your problem ;)

It all depends on what you really want to determine:
[*] if you want to evaluate a bending or any similar global deformation, then yes
[*] if you want to evaluate a global translation and/or rotation, then why not (but you could do this better by only considering plane primitives)
[*] eventually, if you want to evaluate local deformations, then no

Moreover, the plane orientation was not meant for this purpose, but I guess it should do the trick. The mesh it produces is just a visual hint. To compute the plane mesh extents, CloudCompare simply considers the bounding box of the cloud in the XY, XZ or YZ plane (depending on the plane normal). Therefore it won't necessarily be the ideal extent & boundaries for your problem. You can either rotate all the clouds prior to comparing them in order to align them with the principal axes, or you can manually segment out all the non overlapping areas (but you'll loose information). Eventually, you can also update the 'plane orientation' code to generate a larger plane.
Daniel, CloudCompare admin
gmart
Posts: 8
Joined: Tue Mar 13, 2012 10:23 am

Re: Point Clouds Comparison

Post by gmart »

Indeed, I have not enough explained this problem:
I want to compare one point cloud (the reference) to another which is acquired later. These two point clouds characterize therefore approximately the same surface that is theoretically planar (not necessarily horizontal).
I want to determine the global deformation of the surface between the two instants, and in priority the translation between the reference and the compared point cloud in a direction which is normal to the plane of the reference.

The cloud-to-mesh distance gives the normal distance between the points and the mesh, so it seams to be what I want. Using a larger reference cloud enables to overcome the extents limitations.

Does CloudCompare give another method than the cloud-to-mesh distance to do that?
You suggest to consider only planes in this example, is it using twice the Plane orientation and comparing simply the equations?
daniel
Site Admin
Posts: 7405
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Point Clouds Comparison

Post by daniel »

Indeed, if you are only interested in rotation and/or translation, it will be faster (and much robust to noise) to directly use the planes equations.

Otherwise, if there's non-rigid transformation at stake, the cloud-plane distances will be more valuable.

Of course, you can do both (at least to assess that there is no non-rigid deformation ;).
Daniel, CloudCompare admin
gmart
Posts: 8
Joined: Tue Mar 13, 2012 10:23 am

Re: Point Clouds Comparison

Post by gmart »

Thank you for your responses ;)
Post Reply