Presentation on theme: "Surface reconstruction from point clouds"— Presentation transcript:
1Surface reconstruction from point clouds Based on: Surface reconstruction, by Nina Amenta, Section 4.1 in: Point-Based GraphicsSlides by Marc van Kreveldfor DDM
2Surface reconstruction Converting a point cloud in a more explicit representation, like a triangle meshNeeds a dense enough point setespecially in areas with much detailespecially in areas with high curvatureSometimes outliers must be dealt withMany different approaches
3Surface reconstruction Often begins with normal estimation at all pointsBasic method types:Implicit surface methodsVoronoi/Delaunay methodsSurface evolution methods
5Implicit surface methods Voxel-based method of Hoppe et al. (1992)Estimate normal at each point p of the set PMake all normals point outwardsDefine f(x) to be the distance to the tangent plane of p, where p is the point of P closest to xUse marching cubes to extract the zero-set of f
6Implicit surface methods Voxel-based method of Hoppe et al. (1992)Estimate normal at each point p of the set PMake all normals point outwardsDefine f(x) to be the distance to the tangent plane of p, where p is the point of P closest to xUse marching cubes to extract the zero-set of f within the 3D Voronoi cell of p, the surface is the tangent plane at p !
7Implicit surface methods Voxel-based method of Hoppe et al. (1992)Estimate normal at each point p of the set PMake all normals point outwardsDefine f(x) to be the distance to the tangent plane of p, where p is the point of P closest to xUse 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 !
13Implicit 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 planeHoppe et al. use marching cubes which can take care of many of the (smaller) gaps between pieces of surface
14Implicit surface methods Marching cubes algorithm (Lorensen and Cline, 1987)method to determine the level-0 set of an implicit functionuses a grid of cubes and evaluates the function only at the cornersfrom the eight corners of each cube and their status inside/outside (function is negative/positive), a piece of surface is made inside the cube
15Implicit surface methods Marching squares (for level-5 set)Four corners give 16 cases; two are ambiguousallinsidealloutside
16Implicit surface methods Locally, we cannot know how to resolve an ambiguous case
17Implicit surface methods Marching cubes is the 3D equivalent ideaEight corners of the square give 256 cases, many of which are symmetric or inverted 15 cases remain
18Implicit 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
19Implicit surface methods A solution was given by Nielson and Hammann (1991), called asymptotic deciderIt includes different ways to treat certain inverted forms (so they are not inverted but new cases)
21Implicit 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(.) = –2let surface intersect the edge heref(.) = 5
22Implicit surface methods Back to Hoppe et al.’s voxel-based method and how marching cubes (squares) appliesEstimate normal at each point p of the set PMake all normals point outwardsDefine f(x) to be the distance to the tangent plane of p, where p is the point of P closest to xUse marching cubes to extract the zero-set of f
26Implicit surface methods The position of the last little red segment is determined by the evaluation in the two corners of its square. The one corner of the left square edge lies in a different Voronoi cell than the other corner of that edge. So the distance is measure to a different normal plane. The interpolation still works well.
27Implicit surface methods Hoppe et al.’s method resolves the gaps resulting from discontinuities in the implicit functionIt can give holes in the reconstruction
28Implicit surface methods Hoppe et al.’s method, missing step: outward normal orientation:make a Euclidean minimum spanning tree EMST on all pointsfind the topmost point in the EMST and make it the root of the treeorient 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)The Euclidean minimum spanning tree can be found using Kruskal’s or Prim’s algorithm.
32Implicit surface methods Hoppe et al.’s method, missing step: outward normal orientation:make a Euclidean minimum spanning tree on all pointsTake all n choose 2 pairs of points and sort them by distanceStart with n points as sets with only one elementLoop 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)The Euclidean minimum spanning tree can be found using Kruskal’s or Prim’s algorithm.
33Implicit surface methods Hoppe et al.’s method: outward normal orientation:Problem: the method may make mistakes when sampling is low near areas with high curvatureThe Euclidean minimum spanning tree can be found using Kruskal’s or Prim’s algorithm.
34Implicit surface methods Hoppe et al.’s method: outward normal orientation:Problem: the method may make mistakes when sampling is low near areas with high curvatureSolution: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 weightsThe Euclidean minimum spanning tree can be found using Kruskal’s or Prim’s algorithm.
35Implicit surface methods All of this works in 3D tooNote that in 3D the desired spanning tree will not have such a simple path structure as you would expect in 2DThe Euclidean minimum spanning tree can be found using Kruskal’s or Prim’s algorithm.
36Implicit surface methods More advanced: Let f be composed of the sum of many “local” implicit functions fi, one for each piThese local implicit functions are blended into fThe weight wi of fi at a point x depends on the distance between x and pi; it decreases monotonically with the distanceThe weights must make an unbiased interpolator/ estimator of the local implicit functions
37Implicit surface methods The functions fi could be chosen as in Hoppe et al.: the signed distance to the normal plane at piThe weights wi can also be chosen to be a linear fall-off function, or a Gaussian fall-off functionIf for any point x, f(x) is influenced by only few fi (with weight wi > 0), then the surface can be recon- structed efficientlyIn Gaussian case, use cut-offwiThe Gaussian fall-off function never reaches zero. The cut-off used for the Gaussian means that when the weight obtained by a Gaussian gets low (below some threshold), then it is set to zero and the corresponding point/local implicit function does not influence f anymore.distance
38Voronoi 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
39Reconstructing with Delaunay Possibilities:Let the object be the union of Delaunay triangles (2D) or tetrahedra (3D) that are deemed to be inside the shapeDecide of edges (2D) or triangles (3D) that they are part of the boundary of the shape α-shapeIf we have a boundary sample only (and not points in the interior of the shape as well), the first option is hard. It is then better to determine the whole boundary and then decide what the inside is.
40Reconstructing with Voronoi Possibilities:Use the Voronoi diagram to estimate normals as the diameters of the Voronoi cellsExtract the medial axis from the Voronoi diagram of the points; it resembles the medial axis of the reconstruction
41The α-shapeThe α-shape is a general shape descriptor for a set of points [ Edelsbrunner, Kirkpatrick, Seidel 1983]
42The α-shapeThe α-shape is the straight-line graph with the α-extreme points as the vertices and the α-neighbors as the edgesα-neighborsradius α-diskα-extreme point
43The α-shapeEvery α-shape edge is also a Delaunay triangulation edge (it has an empty circle through its endpoints)α-neighborsradius α-diskα-extreme point
47The α-shapeWe 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 endpointsCircles containing p and q have their centers on the bisector of p and qpEmpty circles containing p and q have their centers between the centers of the circumcircles of the two triangles incident to edge pqq
48The α-shape p largest q p This center realizes the smallest circle
49The α-shapeThe 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
50The α-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 tetrahedrilizationFor 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)The efficiency of computing the 3D alpha shape is worse than for 2D alpha shapes, because the 3D Delaunay tetrahedrilization can have quadratic complexity
51Another Voronoi/Delaunay method Delaunay filtering; co-cone algorithm (Amenta et al.)Estimate normals at points using the Voronoi diagram diametersChoose all triangles of the Delaunay tetrahedrilization whose normal is close to the normals of its three verticesWorks for sufficiently smooth and densely sampled manifoldsExtensions can handle sharp features and manifolds with boundariesOther extensions deal with noise
52Surface evolution methods Start with a small triangle mesh inside the point cloud (e.g. an octahedron)Move its vertices by forces:inflation in the normal directionspring forces between adjacent mesh verticesWhen triangles get large, they get subdividedWhen a vertex gets close to a point, it is snapped and no longer moved
53Summary, concluding remarks Reconstruction from point samples can be done by three basic approaches: implicit surface, Delaunay/ Voronoi, and evolution surfaceIt is important to deal with noise (depending on the data source)Delaunay methods compute a large tetrahedrilization and then throw most of it away againMemory efficiency is sometimes more relevant than computation time
54QuestionsDoes the voxel-based method work when the input has sharp corners? Consider a square with five points on each edge and draw what the voxel-based method would produce.For 2D Delaunay based reconstruction, even a simple approach like: “for each point, choose the shortest two incident edges” seems to work (slide 31, right figure). 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?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