_{1}

^{*}

Surface reconstruction is a problem in the field of computational geometry that is concerned with recreating a surface from scattered data points sampled from an unknown surface. To date, the primary application of surface reconstruction algorithms has been in computer graphics, where physical models are digitized in three dimensions with laser range scanners or mechanical digitizing probes (Bernardini et al., 1999 [1]). Surface reconstruction algorithms are used to convert the set of digitized points into a wire frame mesh model, which can be colored, textured, shaded, and placed into a 3D scene (in a movie or television commercial, for example). In this paper, we discuss some computational geometry preliminaries, and then move on to a summary of some different techniques used to address the surface reconstruction problem. The coming sections describe two algorithms: that of Hoppe, et al. (1992 [2]) and Amenta, et al. (1998 [3]). Finally, we present other applications of surface reconstruction and a brief comparison for some algorithms in this filed emphasizing on their advantages and disadvantages.

Computational geometry can be described as the field of study concerned with the design and implementation of algorithms used for the efficient solution of geometric problems (O’Rourke, 1998 [^{n} (the set of real numbers in n-dimensional space) are the convex hull, the Delaunay triangulation, and the Voronoi diagram.

The convex hull of a set of points S is the unique convex polytope (polygon in 2D, polyhedron in 3D) that contains S and also has points of S as its vertices (de Berg et al., 1997 [^{2}, in a corkboard; a string wrapped tightly around the outermost boundary of the pushpins is the two-dimensional convex hull of the set of points represented by the pushpins.

It is often desirable to connect a set of points S in R^{2} into a triangular network or mesh, which is called a triangulation of S. There are many possible triangulations for a given set of points; of special interest is the Delaunay triangulation. The 2D Delaunay triangulation has many useful properties:

1) It is a connected graph;

2) It is the dual of the Voronoi diagram;

3) No vertices are contained within the circumcircle (the unique circle containing a triangle’s three vertices) of any triangle in the mesh;

4) It is the configuration with the “fattest” possible set of triangles, i.e. with triangles most closely approaching an equilateral shape;

5) The boundary of the Delaunay triangulation is equal to the convex hull of the vertices of the mesh;

6) The Delaunay triangulation of a set of points is unique if, for each triangle in the mesh, no more than three vertices lie on the circumcircle of the triangle.

See

The Delaunay triangulation can be extended to higher dimensions, in which case the mesh is a network of simplices. In three dimensions, for example, the mesh is made up of tetrahedra (a tetrahedron is a 2-simplex). All of the above properties hold with the following generalizations to items 3, 4, and 6:

3’. no vertices are contained within the circumsphere (the unique sphere or hypersphere containing a simplex’s vertices) of any simplex in the mesh,

4’. it is the configuration with the “fattest” possible set of simplices, i.e. with simplices most closely approaching an equilateral shape,

6’. the Delaunay triangulation of a set of points is unique in R^{n} if, for each simplex in the mesh, no more than n vertices lie on the circumsphere of the simplex.

Given a set of points S in R^{n}, it is sometimes useful to subdivide space into regions in which all points in a given

Two-dimensional Delaunay Triangulation of a set S of points. Red: Delaunay triangulation edges. Green: Delaunay triangulation vertices (points in S). [http://www.cs.colorado.edu/~lizb/topology-defs.html]

region are closer to one point in S than to any other point in S. Such a subdivision is called the Voronoi diagram (sometimes referred to as the Voronoi tessellation) of S (de Berg, et al., 1997 [

It was previously mentioned that the Voronoi diagram is the dual of the Delaunay triangulation. Technically, this is the case (in two dimensions) only if no four (or more) points of S lie on a circle (de Berg, et al., 1997 [^{2}:

• For each edge D, there is a corresponding edge in V.

• Each edge of D is bisected by the line containing an edge of V.

• There is a triangular face of D for each vertex of V.

• The center of each circumcircle of a triangle D is a vertex of V.

As shown in

In this section we present a brief summary of several different approaches to solving the problem of surface reconstruction. Many techniques have been proposed and we do not attempt to be comprehensive in our review. Rather, we will focus on a handful of the more important algorithms put forth to date.

All of the surface reconstruction algorithms we looked at attempt to solve the surface reconstruction problem in R^{3}. All are methods consisting of a number of fundamental algorithms, many of which are well-known (for instance computation of the Delaunay triangulation, Voronoi diagrams, convex hull, minimum spanning tree, etc.). Most researchers try to solve the general surface reconstruction problem, which is to produce a surface that is a reconstruction or an approximation of the unknown surface, given a set of scattered (unorganized) points sampled on the unknown surface and no other information. Other approaches require additional input. For example Hoppe, et al.’s (1992 [

Two-dimensional Voronoi diagram of a set S of points. Blue: Voronoi edges. Red: Points in S. Green: Voronoi vertices. [http://www.cs.colorado.Edu/~lizb /topology-defs.html

Voronoi/Delaunay duality. [http://www.ead.eee.ufmg.br/~renato/geocomp/delaunay/92.html

In an early paper on the subject of surface reconstruction, Boissonnat (1984 [

The second algorithm suggested by Boissonnat in his 1984 [

“The only tetrahedra that can be eliminated are those with exactly one face, three edges and three points on P, or those with exactly two faces, five edges and four points on P.”

Where P is the boundary of the polyhedral shape obtained by removing tetrahedra from the Delaunay triangulation. After culling, P is output as a piecewise linear reconstruction of the unknown surface (i.e., a triangular mesh). Boissonnat calls the culling process “sculpturing”. The biggest drawback to the sculpturing approach is that it is possible that some sample points may still remain inside of P upon termination of the algorithm (Bernardini, et al., 1999 [

Hoppe, et al. (1992 [

The surface reconstruction method of Amenta, et al. (1998 [

The algorithm of Boissonnat and Cazals (2000 [

Hoppe, et al. (1992 [

Although the algorithm requires no information about the sample points other than their coordinates, it does require knowledge of the sampling process. Two sampling parameters are employed:

• Noise magnitude δ: the maximum sampling error; for example the accuracy of a laser scanner.

• Sampling density ρ: the radius of a sphere, such that any sphere with radius ρ and center o in the unknown surface M contains at least one sample point. Intuitively, ρ represents the radius of the maximum “hole” in the sampled dataset.

The first step of the algorithm is to estimate a tangent plane at each sample point. The tangent planes approximate the tangent to the unknown surface M at each of the sample points. A k-neighborhood is defined as the k closest points surrounding a sample point, where k is a user-specified parameter. Tangent planes are computed at by fitting a least-square plane through points in the k-neighborhood of each sample point. Tangent planes are represented by their center point o and by their normal vector n.

The next phase of the algorithm is to find a consistent orientation for the tangent planes. All tangent plane normal vectors must point away from the object. Therefore, it is necessary to flip tangent plane normal vectors that point in the wrong directions. The first step in orienting the tangent planes is to compute the Euclidean Minimum Spanning Tree (Euclidean MST or EMST) of the graph connecting the tangent plane centers (o_{i}). The

The original object. (Hoppe, et al., 1992 [2] )

The sampled points. ( Hoppe et al., 1992 [2] )

Euclidean MST is a minimum spanning tree of a connected graph with weights equal to the Euclidean lengths of its edges as shown in

Normal-flipping takes place during traversal of the Riemannian Graph. Therefore, the graph should be traversed along a set of paths that prefers edges between tangent planes that are most closely parallel. To accomplish this, Riemannian Graph edge weights are defined as

Euclidean MST (Hoppe, et al., 1992 [2] )

Riemannian graph ( Hoppe et al., 1992 [2] )

largest z coordinate. The root’s tangent plane normal is set to point in the direction of the +z axis (away from the object). Finally, the MST is traversed in depth first order. During traversal, each tangent plane normal is set to point in a direction that is consistent with its parent node’s tangent plane normal in the MST; see

For the next stage of Hoppe, et al.’s algorithm, it is necessary to find the signed distance d from a point p to the closest point on the unknown surface M. Since M is unknown, the solution the authors came up with to obtain d is to use the tangent plane with center closest to p as an approximation to the distance to the unknown surface M. The signed distance is positive if p is in front of the tangent plane, zero if p is on the tangent plane, and negative if p is behind the tangent plane. Let D be the distance between p and the closest tangent plane center. The signed

Riemannian graph MST ( Hoppe, et al., 1992 [2] )

Oriented tangent planes ( Hoppe et al., 1992 [2] )

distance d is considered to be undefined if D >= ρ + δ.

In pseudocode, the signed distance calculation looks like this:

find index of closest tangent plane center o_{i}

compute projection z of p onto tangent plane

if (D < ρ + δ)

d ← ± || p – z ||

else

d ← undefined

end if

Just as two-dimensional meteorological and topographic datasets can be contoured as 1D curves in R^{2}, three-dimensional datasets can be contoured as surfaces in R^{3} (^{3}. In the Hoppe, et al. method, a 3D grid of cubes is superimposed on the sampled dataset (

2D contours [Landmark Graphics Corporation]

3D contours [http://www.exaflop.org/docs/marchcubes/ind.html]

Cubes visited ( Hoppe, et al., 1992 [2] )

Marching cubes output (Hoppe et al., 1992 [2] )

The complexity of Hoppe et al.’s algorithm can be summed up as follows:

• EMST graph: O(n^{2}).

• K-neighborhood: O(n + klogn).

• Nearest tangent plane: O(n).

• Construct Riemannian graph: O(nk).

• MST of Riemannian graph: O(nlogn).

• MST traversal: O(n).

• Contouring: O(v), where v is the number of cubes visited.

The Crust algorithm of Amenta et al. (1998 [

The original object (Hoppe, et al., 1992 [2] )

The reconstructed object (Hoppe et al., 1992 [2] )

Delaunay triangulation of the sample data to contain the unknown surface. The medial axis is defined to be the locus of points that have more than one closest point on the curve (2D) or surface (3D) (see

Here is the two-dimensional crust algorithm (

1) Compute the Voronoi diagram of the sample points in two dimensions.

2) Construct the Delaunay Triangulation of the sample points plus the Voronoi vertices in two dimensions.

3) The 2D crust (reconstructed curve) is formed by extracting all edges that connect two sample points within the triangulation obtained in Step 2.

Medial axis in R^{2} (red curve) (Amenta, et al., 1998 [3] )

Medial axis in R^{3} (red surface) (Amenta, et al., 1998 [3] )

Illustration of the 2D Crust algorithm (Amenta et al., 1998 [3] ). In both diagrams, Voronoi vertices are shown in red and sample points are drawn in black. In the Voronoi diagram shown on the top, it is clear that the Voronoi vertices approximate the medial axis of the curve represented by the sample points. The 2D crust is shown in black in the Delaunay triangulation on the bottom

In two dimensions, the Voronoi vertices approximate the medial axis. Adding the Voronoi vertices tends to break edges connecting non-adjacent sample points. This will always be true for a sufficiently sampled dataset. The authors call the process of removing edges between non-adjacent sample points Voronoi filtering.

The 2D Crust algorithm can be extended to 3D with some modifications. The main difficulty in extending the algorithm is that in three dimensions, the Voronoi vertices don’t necessarily lie close to the medial axis. Fortunately, even though Voronoi vertices aren’t guaranteed to be close to the medial axis, many are. In the 3D Voronoi filtering step, instead of using all Voronoi vertices, the authors use the two Voronoi vertices that are furthest from each sample point s on opposite sides of the unknown surface. They call these vertices the poles of the sample point (see

The sample point poles are obtained as illustrated in

1) Find the Voronoi vertex that is furthest from the sample point s. This vertex is the positive pole, denoted p+.

2) Find the Voronoi vertex furthest from s such that the dot product of sp+ and sp− is negative. This ensures that the poles are on opposite sides of the surface.

The 3D Crust algorithm can be described as follows:

1) Compute the Voronoi diagram of the sample points in three dimensions.

2) Construct the Delaunay triangulation of the sample points plus the sample point poles (all p+ and p−) in three dimensions.

3) The 3D crust (reconstructed surface) is formed by extracting all triangles that connect three sample points within the triangulation obtained in Step 2.

An example of the 3D crust of a set of sample points extracted from a synthetic surface is shown in

There are two separate stages of post-processing: normal filtering and sharp edge filtering. Normal filtering

Sample point poles. In this diagram, the poles are marked as p+ and p−. (Amenta, et al., 1998 [3] )

Obtaining the Poles. The sample point is colored blue and is denoted as s. (Amenta, et al., 1998 [3] )

Crust of sample points de rived from a synthetic surface. Poles are shown in white. (Amenta, et al., 1998 [3] )

attempts to remove invalid triangles such as those depicted in

If it is known that the surface being reconstructed is smooth, then triangles forming sharp edges can be safely removed. Adjacent triangles that form an angle of less than 90 degrees are considered to be part of a sharp edge and are removed by the algorithm. If the surface is not known to be smooth, then sharp edge filtering can not be applied. The Crust surface reconstruction algorithm does not work well when the surface being reconstructed contains sharp edges. The authors experimented with different ways of choosing the poles and were able to improve reconstructions of surfaces with sharp edges.

Invalid triangles that normal filtering attempts to remove. See the detail area within the red dashed circle. (Modified from Amenta, et al., 1998 [3] )

Examples of the reconstructed surfaces built by the Amenta, et al. algorithm are shown in

Here is a summary of the complexity of the Amenta, et al. algorithm:

• 2D Delaunay Triangulation: O(nlgn).

• 3D Delaunay Triangulation: O(n^{2}) in the worst case; usually O(n) in practice (input-sensitive).

Selected results. (Amenta, et al., 1998 [3] )

• Voronoi Diagram: The Voronoi vertices are obtained from the Delaunay triangulation, so the running time is the same as for Delaunay triangulation.

• All other steps: O(n).

There are many applications for surface reconstruction; few were mentioned in the abstract and others could include:

• Surfaces generated from digital scans of real-world objects can be used as computer models in computer aided design (CAD) (Bernardini, et al., 1999 [

• Medical data can be segmented by hand-digitizing regions or structures of interest in medical datasets. The data may consist of slices through biological specimens (Hoppe, et al., 1992 [

• In the discipline of geophysics, 3D seismic datasets are often sliced and then hand-digitized along geological boundaries of interest. As with medical datasets, digitized points can be reconstructed into surfaces repre- senting real-world geological structures.

Although many surface reconstruction algorithms are available, this subject is still the focus of much current research. We discussed several different surface reconstruction algorithms in this paper, and we gave special attention to two important ones; the methods of Hoppe, et al. (1992 [

• Both algorithms consider the general case of unorganized sets of data points with no additional information.

• The algorithms take completely different approaches to solving the same problem.

• Both algorithms perform better when the sampling density is higher.

• In practice, both algorithms do a reasonably good job of reconstructing the unknown surface.

• The output surface is guaranteed to be continuous with no holes or stray triangles.

• The running time of the algorithm is not dependent on the order of the input points.

• Seems to be faster in practice.

• Approximates the sample points (advantageous with noisy datasets).

• Sharp edges are not handled properly—they tend to be rounded in the output surface.

• No provable guarantees of convergence or that the output surface will correctly approximate the input surface.

• You need to specify information about the sampling process (δ and ρ).

• Approximates the sample points (disadvantageous with low-noise datasets).

• Guaranteed to converge to a surface that correctly reconstructs (interpolates) the original unknown surface, provided that strict requirements of sampling density and smoothness are met.

• You don’t need to specify information about the sampling process.

• Interpolates the input points (advantageous with low-noise datasets).

• If the sample density requirement is not met, the output surface may contain holes and/or stray triangles.

• The algorithm has trouble with sharp edges.

• The running time of the algorithm is dependent on the order of the input points.

• Seems to be slower in practice.

• Interpolates the input points (disadvantageous with noisy datasets).

This research was supported by Yarmouk University, Jordan.