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 1 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 2 Surface reconstruction • Often begins with normal estimation at all points • Basic method types: – Implicit surface methods – Voronoi/Delaunay methods – Surface evolution methods 3 Implicit surface methods 4 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 5 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 ! 6 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 ! 7 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 13 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 14 Implicit surface methods • Marching squares (for level-5 set) • Four corners give 16 cases; two are ambiguous all inside all outside 15 Implicit surface methods • Locally, we cannot know how to resolve an ambiguous case 16 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 17 18 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 19 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) 20 Implicit surface methods 21 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 22 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 23 Implicit surface methods 24 Implicit surface methods 25 Implicit surface methods 26 Implicit surface methods 27 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 28 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) 29 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) 33 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 34 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 normalized normals at these points] • Compute the minimum spanning tree of G using these weights [ normalized = scaled to have unit length ] 35 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 36 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 fi at 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 37 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) is influenced by only few fi wi (with weight wi > 0), then the surface can be reconstructed efficiently distance • In Gaussian case, use cut-off 38 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 39 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 40 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 41 The α-shape • The α-shape is a general shape descriptor for a set of points [ Edelsbrunner, Kirkpatrick, Seidel 1983] 42 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 43 The α-shape • Every α-shape edge is also a Delaunay triangulation edge (it has an empty circle through its endpoints) α-neighbors radius α-disk α-extreme point 44 The α-shape • The choice of α is important – bigger α: avoids holes and separate components in shape, but also less detail – smaller α: more detail but risk of holes and separate components • How to determine the right α? • Can we make α adaptive: smaller where point density is higher and larger where point density is lower? 45 α-shapes 46 α-shapes in 3D 47 α-shapes in 3D 48 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 q Empty circles containing p and q have their centers between the centers of the circumcircles of the two triangles incident to edge pq 49 The α-shape p p q largest largest q This center realizes the smallest circle This center realizes the smallest circle 50 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 51 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 through its vertices lie on a line and we can decide in O(1) time whether a triangle occurs in the α-shape by inspecting the two incident tetrahedra (their circumspheres) 52 Another Voronoi/Delaunay method • Delaunay filtering; co-cone algorithm (Amenta et al.) – Estimate normals at points using the Voronoi diagram diameters – Choose all triangles of the Delaunay tetrahedrilization whose normal is close to the normals of its three vertices • Works for sufficiently smooth and densely sampled manifolds • Extensions can handle sharp features and manifolds with boundaries • Other extensions deal with noise 53 Surface evolution methods • Start with a small triangle mesh inside the point cloud (e.g. an octahedron) • Move its vertices by forces: – inflation in the outward normal direction – spring forces between adjacent mesh vertices • When triangles get large, they get subdivided • When a vertex gets close to a point, it is snapped and no longer moved 54 Summary, concluding remarks • Reconstruction from point samples can be done by three basic approaches: implicit surface, Delaunay/ Voronoi, and evolution surface • It is important to deal with noise (depending on the data source) • Delaunay methods compute a large tetrahedrilization and then throw most of it away again • Memory efficiency is sometimes more relevant than computation time 55 Questions 1. Does the voxel-based method work when the input has sharp corners? Consider a square with five points on each edge and draw what the 2D voxel-based method would produce. 2. For 2D Delaunay based reconstruction, even a simple approach like: “for each point, choose the shortest two incident edges” seems to work (slide 39). When does this idea work poorly? Can you resolve this by a simple extension, so that it works for sufficiently densely sampled smooth curves that have no narrow parts? 3. Normal estimation can be done using the diameter (direction) of a Voronoi cell. Show that a curve with a number of points nearly on a horizontal straight line can have normals that oscillate between upward and downward 56