540 likes | 748 Views
Surface reconstruction from point clouds. Based on: Surface reconstruction, by Nina Amenta , Section 4.1 in: Point-Based Graphics Slides by Marc van Kreveld for DDM. Surface reconstruction. Converting a point cloud in a more explicit representation, like a triangle mesh
E N D
Surface reconstruction from point clouds Based on: Surface reconstruction, by Nina Amenta, Section 4.1 in: Point-Based Graphics Slides by Marc van Kreveld for DDM
Surface reconstruction • Converting a point cloud in a more explicit representation, like a triangle mesh • Needs a dense enough point set • especially in areas with much detail • especially in areas with high curvature • Sometimes outliers must be dealt with • Many different approaches
Surface reconstruction • Often begins with normal estimation at all points • Basic method types: • Implicit surface methods • Voronoi/Delaunay methods • Surface evolution methods
Implicit surface methods • Voxel-based method of Hoppe et al. (1992) • Estimate normal at each point p of the set P • Make all normals point outwards • Define f(x) to be the distance to the tangent plane of p, where p is the point of P closest to x • Use marching cubes to extract the zero-set of f
Implicit surface methods • Voxel-based method of Hoppe et al. (1992) • Estimate normal at each point p of the set P • Make all normals point outwards • Define f(x) to be the distance to the tangent plane of p, where p is the point of P closest to x • Use marching cubes to extract the zero-set of f within the 3D Voronoi cell of p, the surface is the tangent plane at p !
Implicit surface methods • Voxel-based method of Hoppe et al. (1992) • Estimate normal at each point p of the set P • Make all normals point outwards • Define f(x) to be the distance to the tangent plane of p, where p is the point of P closest to x • Use marching cubes to extract the zero-set of f within the 3D Voronoi cell of p, the surface is the tangent plane at p ! f is a discontinuous function !
Implicit surface methods • Exact computation of the zero-set of f involves computing the 3D Voronoi diagram of P and intersecting each cell with the local tangent plane • Hoppe et al. use marching cubes which can take care of many of the (smaller) gaps between pieces of surface
Implicit surface methods • Marching cubes algorithm (Lorensen and Cline, 1987) • method to determine the level-0 set of an implicit function • uses a grid of cubes and evaluates the function only at the corners • from the eight corners of each cube and their status inside/outside (function is negative/positive), a piece of surface is made inside the cube
Implicit surface methods • Marching squares (for level-5 set) • Four corners give 16 cases; twoare ambiguous all inside all outside
Implicit surface methods • Locally, we cannot know how to resolve an ambiguous case
Implicit surface methods • Marching cubes is the 3D equivalent idea • Eight corners of the square give 256 cases, many of which are symmetric or inverted 15 cases remain
Implicit surface methods • Two cubes that share an ambiguous facet must use compatible solutions: imagine case 3 (2 red and 6 blue vertices) and its inverted form (6 red and 2 blue vertices) share an ambiguous facet
Implicit surface methods • A solution was given by Nielson and Hammann (1991), called asymptotic decider • It includes different ways to treat certain inverted forms (so they are not inverted but new cases)
Implicit surface methods • Instead of choosing the surface to go through the middle of an edge with an inside and an outside endpoint, it is better to use interpolation (linear) f(.) = –2 let surface intersect the edge here f(.) = 5
Implicit surface methods • Back to Hoppe et al.’s voxel-based method and how marching cubes (squares) applies • Estimate normal at each point p of the set P • Make all normals point outwards • Define f(x) to be the distance to the tangent plane of p, where p is the point of P closest to x • Use marching cubes to extract the zero-set of f
Implicit surface methods • Hoppe et al.’s method resolves the gaps resulting from discontinuities in the implicit function • It can give holes in the reconstruction
Implicit surface methods • Hoppe et al.’s method, missing step: outward normal orientation: • make a Euclidean minimum spanning tree EMST on all points • find the topmost point in the EMST and make it the root of the tree • orient the root so that its normal is upwards (dot product with vertical upward direction is positive) • pre-order traverse the spanning tree and assign the normal of a node by letting it be consistent with its parent (their dot product should be positive)
root flip 1st flip 2nd flip 4th flip 5th flip 3rd
Implicit surface methods • Hoppe et al.’s method, missing step: outward normal orientation: • make a Euclidean minimum spanning tree on all points • Take all n choose 2 pairs of points and sort them by distance • Start with n points as sets with only one element • Loop over the point pairs by increasing distance: accept a pair as an edge in the EMST if the points are in different sets, then unite their sets (stop when there is only one set) • we can take only the pairs of points whose Voronoi cells are neighbors (typically fewer than quadratically many)
Implicit surface methods • Hoppe et al.’s method: outward normal orientation: • Problem: the method may make mistakes when sampling is low near areas with high curvature
Implicit surface methods • Hoppe et al.’s method: outward normal orientation: • Problem: the method may make mistakes when sampling is low near areas with high curvature • Solution: • First make a graph G where every point is connected to its k nearest neighbors (k is a small constant to be chosen) • Give every edge a weight depending on to what extent the normals are parallel (including inverted): 1 – [the absolute value of the dot product of the normals at these points] • Compute the minimum spanning tree of G using these weights
Implicit surface methods • All of this works in 3D too • Note that in 3D the desired spanning tree will not have such a simple path structure as you would expect in 2D
Implicit surface methods • More advanced: Let f be composed of the sum of many “local” implicit functions fi, one for each pi • These local implicit functions are blended into f • The weight wi of fiat a point x depends on the distance between x and pi; it decreases monotonically with the distance • The weights must make an unbiased interpolator/ estimator of the local implicit functions
Implicit surface methods • The functions fi could be chosen as in Hoppe et al.: the signed distance to the normal plane at pi • The weights wi can also be chosen to be a linear fall-off function, or a Gaussian fall-off function • If for any point x, f(x) isinfluenced by only few fi(with weight wi > 0), thenthe surface can be recon-structed efficiently • In Gaussian case, use cut-off wi distance
Voronoi and Delaunay methods • The Voronoi diagram and Delaunay triangulation of a set of points sampled on a surface have a lot of structure that can be used for reconstruction
Reconstructing with Delaunay • Possibilities: • Let the object be the union of Delaunay triangles (2D) or tetrahedra (3D) that are deemed to be inside the shape • Decide of edges (2D) or triangles (3D) that they are part of the boundary of the shape α-shape
Reconstructing with Voronoi • Possibilities: • Use the Voronoi diagram to estimate normals as the diameters of the Voronoi cells • Extract the medial axis from the Voronoi diagram of the points; it resembles the medial axis of the reconstruction
The α-shape • The α-shape is a general shape descriptor for a set of points [ Edelsbrunner, Kirkpatrick, Seidel 1983]
The α-shape • The α-shape is the straight-line graph with the α-extreme points as the vertices and the α-neighbors as the edges α-neighbors radius α-disk α-extreme point
The α-shape • Every α-shape edge is also a Delaunay triangulation edge (it has an empty circle through its endpoints) α-neighbors radius α-disk α-extreme point
The α-shape • We can compute the 2D α-shape from the Delaunay triangulation by testing every edge: determine the radius of the smallest and largest empty circle through its endpoints Circles containing p and q have their centers on the bisector of p and q p Empty circles containing p and q have their centers between the centers of the circumcircles of the two triangles incident to edge pq q
The α-shape p largest q p This center realizes the smallest circle This center realizes the smallest circle q largest
The α-shape • The 2D α-shape can be computed from a given Delaunay triangulation on n points in just O(n) time (assuming the Delaunay triangulation is stored in a suitable triangle mesh representation!) • From the points: O(n log n) time is possible
The α-shape in 3D • In 3D everything is analogous: • Triangles of the α-shape are defined by empty balls of radius α • These triangles occur in the Delaunay tetrahedrilization • For any triangle in the Delaunay tetrahedrilization, the centers of balls throughits vertices lie on a line andwe can decide in O(1) timewhether a triangle occursin the α-shape by inspectingthe two incident tetrahedra(their circumspheres)