parameters of the best fitted primitive are returned.
Our approach deals with original models without any
pre-processing but the assumption is made that the
model contains only one primitive which can be in the
first category but without a prior segmentation pro-
cess. Since several methods have been proposed to
determine the type of primitives, (Toony et al., 2014;
Osada et al., 2002; Kazhdan et al., 2003; Zhu et al.,
2012), in this paper, we assume that the type of each
primitive is known and focus on an accurate estima-
tion of primitive parameters.
The methods in the first category require a seg-
mentation step and a non-linear fitting approach with
reliable initial seeds. One of the methods in this cat-
egory, presented in (Lukács et al., 1998), uses a seg-
mentation approach based on initial seeds and region
growing. The segmentation and fitting stop based on
the fitting error. This method works for spheres, cylin-
ders, cones, and tori. The method is sensitive to the
choice of the initial seed and is also very time con-
suming.
Another approach in this category is presented in
(Benko et al., 2002). The authors assume that the in-
put point cloud is already segmented into primitives
and the type of primitive is already known. They sup-
pose that there is a set of parametrized objects for
which the parameters need to be estimated. They con-
sider some “primary objects” such as surfaces, curves,
etc. and some “auxiliary objects” that describe the
constraints between primary objects. A fitting process
is used in order to find the parameters of the primary
and auxiliary objects.
In the paper presented in (Fayolle and Pasko,
2013), which belongs the first category, the authors
use a set of primitives from a user-specified list of
primitives. They then fit these primitives and extract
the points that correspond to the best fitted primitive
and the parameters are obtained from the best fit. The
list of primitives includes spheres, cylinders, planes,
tori, cones, and super-ellipsoids.
The approaches in the second category extract the
primitives directly from the input point cloud using
RANSAC-based methods for instance (Li et al., 2011;
Schnabel et al., 2007; Bolles and Fischler, 1981; Fis-
chler and Bolles, 1981). In (Schnabel et al., 2007), an
automatic method is presented based on random sam-
pling which detects planes, spheres, cylinders, cones,
and tori. This RANSAC-based method is time con-
suming like all random based methods and it also de-
pends on the selected points. The method presented in
(Olson, 2001) is splitting and pruning the parametric
space in order to implement a faster algorithm. Some
other methods use the Gaussian sphere for extracting
primitives (Chaperon et al., 2001; Rabbani and Van
Den Heuvel, 2005; Liu et al., 2013).
The methods presented in (Borrmann et al., 2011;
Kotthäuser and Mertsching, 2012) are extracting
planes only but other methods are proposed to extract
cylinders (Bolles and Fischler, 1981; Lozano-Perez
et al., 1987; Chaperon et al., 2001; Rabbani and Van
Den Heuvel, 2005; Liu et al., 2013).
A hierarchical fitting approach which deals di-
rectly with input data is introduced in (Attene et al.,
2006) and (Attene and Patanè, 2010). The method
presented in (Attene et al., 2006) produces a bi-
nary tree of primitives, extracting planes, spheres,
and cylinders. Another approach (Attene and Patanè,
2010) exploits more accurate hierarchical clustering
in order to extract more primitives such as planes,
spheres, cylinders, cones, and tori. Since we compare
our results with these approaches, they are described
in detail in the following section.
2.1 A Review of Two Hierarchical
Fitting Approaches
2.1.1 Method Proposed in (Attene et al., 2006)
The basic idea of the method presented in (Attene
et al., 2006) is to merge neighboring triangles into
representative clusters. The idea is to build a dual
graph from the input mesh model. At the beginning
of the algorithm, each node of the graph represents a
cluster. The authors assign a weight to each edge of
the graph. They then build a priority queue based on
the edges’ weights and they merge the edges with the
minimum weights in the priority queue. After each
merging operation, edge weights and clusters are up-
dated. The algorithm stops based on some criteria.
Fitting is applied to each cluster and the primitive
which has the minimum evaluation error is selected.
Planes, spheres, and cylinders are considered. To
extract planes, the authors use a classical method
based on PCA (Principal Component Analysis) (Gar-
land et al., 2001; Cohen-Steiner et al., 2004). First the
covariance matrix of each cluster is computed. The
normal of the plane is the eigenvector corresponding
to the smallest eigenvalue of the covariance matrix.
The fitting error is calculated afterwards.
In order to find the parameters of the spheres (ra-
dius and location of the center), several different radii
and centers are tested and those that minimize the dis-
tance between the points and the fitted sphere are se-
lected. These parameters can be found by solving a
Gauss-Newton minimization problem (Scales, 1985)
but, as mentioned in the paper (Attene et al., 2006),
this is a time consuming process so an algebraic dis-
tance approach (Pratt, 1987) has rather been used to
GRAPP2015-InternationalConferenceonComputerGraphicsTheoryandApplications
82