Presentation is loading. Please wait.

Presentation is loading. Please wait.

Surface reconstruction from point clouds Based on: Surface reconstruction, by Nina Amenta, Section 4.1 in: Point-Based Graphics Slides by Marc van Kreveld.

Similar presentations


Presentation on theme: "Surface reconstruction from point clouds Based on: Surface reconstruction, by Nina Amenta, Section 4.1 in: Point-Based Graphics Slides by Marc van Kreveld."— Presentation transcript:

1 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

2 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

3 Surface reconstruction Often begins with normal estimation at all points Basic method types: – Implicit surface methods – Voronoi/Delaunay methods – Surface evolution methods 3

4 Implicit surface methods 4

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 5

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 ! 6

7 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

8

9

10

11

12

13 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

14 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

15 Implicit surface methods Marching squares (for level-5 set) Four corners give 16 cases; two are ambiguous 15 all inside all outside

16 Implicit surface methods Locally, we cannot know how to resolve an ambiguous case 16

17 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 18

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) 19

20 Implicit surface methods 20

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) 21 f(.) = –2 f(.) = 5 let surface intersect the edge here

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 22

23 Implicit surface methods 23

24 Implicit surface methods 24

25 Implicit surface methods 25

26 Implicit surface methods 26

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 27

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) 28

29

30 root flip 1st flip 2nd flip 3rd flip 4th flip 5th

31

32 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) 32

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 33

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 normals at these points] Compute the minimum spanning tree of G using these weights 34

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 35

36 Implicit surface methods More advanced: Let f be composed of the sum of many “local” implicit functions f i, one for each p i These local implicit functions are blended into f The weight w i of f i at a point x depends on the distance between x and p i ; it decreases monotonically with the distance The weights must make an unbiased interpolator/ estimator of the local implicit functions 36

37 Implicit surface methods The functions f i could be chosen as in Hoppe et al.: the signed distance to the normal plane at p i The weights w i 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 f i (with weight w i > 0), then the surface can be recon- structed efficiently In Gaussian case, use cut-off 37 wiwi distance

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 38

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 39

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 40

41 The α-shape The α-shape is a general shape descriptor for a set of points [ Edelsbrunner, Kirkpatrick, Seidel 1983] 41

42 The α-shape is the straight-line graph with the α- extreme points as the vertices and the α-neighbors as the edges radius α-disk α-extreme point α-neighbors The α-shape 42

43 Every α-shape edge is also a Delaunay triangulation edge (it has an empty circle through its endpoints) radius α-disk α-extreme point α-neighbors The α-shape 43

44 α-shapes 44

45 α-shapes in 3D 45

46 α-shapes in 3D 46

47 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 47 p q Circles containing p and q have their centers on the bisector of p and q Empty circles containing p and q have their centers between the centers of the circumcircles of the two triangles incident to edge pq

48 The α-shape 48 p q p q This center realizes the smallest circle largest

49 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 49

50 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) 50

51 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 51

52 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 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 52

53 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 53

54 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 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 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? 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 54


Download ppt "Surface reconstruction from point clouds Based on: Surface reconstruction, by Nina Amenta, Section 4.1 in: Point-Based Graphics Slides by Marc van Kreveld."

Similar presentations


Ads by Google