Skip to main content

Hi guys,

Is it possible to detect a plane from a point cloud. Specifically, I have a point cloud of a box (cube), and I want to detect one of the faces (e.g the top face). My cubes tend to be supported on an almost horizontal plane, that is Z direction of the box, is very close to the Z axis.

The final challenge is to estimate the inclination of the top face, relative to the reference axis.

Do you have any idea how to move forward here?

 

Thank you very much!

Well, in terms of an actual FME-based implementation, I have no idea (other than implementing the whole thing in Python and sticking it in a Python Caller); however, in general, the solutions, mathematically, are mostly related to 3D Least Squares Surface Fitting. You have a cube of known geometry that you want to position in space so as to minimize the distance of points from the surface of the cube, i.e. minimizing the residuals, just like in 2D linear Least Squares (an oversimplification, I realize, but not too far from the truth). Your problem is of a type that is bread-and-butter in industry applications, like gaming graphics and industrial parts and equipment laser scanning, so there is a HUGE amount of literature on the subject. Here is a list of a few examples as a starting point (from a Google search on "3D analog of least squares fitting surfaces"):


HI Tcrossman,

Thank you for the feedback.

There several approaches to tis plane-fitting challenge based on point clouds.

They all seem to need some solid mathematical understanding of the problem.

 

Cheers,

j


Reply