A common technique for plane extraction is the region growing based approach, e.g., used by Hähnel et al. [8]. Starting from an initial mesh, neighbored planar triangles are merged iteratively. The drawback of this approach is the high computational demand.
Another well known algorithm for feature extraction from data sets is the RANSAC algorithm [1], used by Cantzler et al. [5]. RANSAC (Random Sample Consensus) is a simple algorithm for robust fitting of models in the presence of many data outliers. RANSAC first selects data items randomly and uses them to estimate the parameters of the plane. The next step computes the number of data points fitting the model based on a user given tolerance. RANSAC accepts the fit, if the computed number exceeds a certain limit. Otherwise the algorithm iterates with other points [1].
Liu et al. proposes another technique for plane extraction from range data. They use expectation maximization (EM) for generating a surface model [11]. Their algorithm adjusts the number of planes and estimates the location and orientation, by maximizing the expectation of a logarithmic likelihood function. Plane parameters are efficiently calculated by reducing the problem to a computation of eigenvalues by introducing Lagrange multipliers. This approach is not inherently able to determine the number of planes in the data set [8].
Our algorithm is a mixture of the RANSAC and the ICP algorithm,
and provides fast plane extraction for a point cloud. No prior
meshing algorithms need to be applied. A plane is defined by
three 3D points (
) or by one 3D
point and the surface normal (, with
,
). To detect a surface, the algorithm
randomly selects a point and estimates a plane through two
neighbored data points. Now the data points
are calculated that fulfill:
The extracted 3D planes are unbounded in size. Surfaces are finally extracted from the points by mapping them onto the planes. A quadtree based method generates the surfaces. Figure 4 shows an example with 7 extracted planes of a single 3D scan containing 58680 range data points.