Document

advertisement
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
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
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
Implicit surface methods
20
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
21
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
Implicit surface methods
23
Implicit surface methods
24
Implicit surface methods
25
Implicit surface methods
26
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
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
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)
32
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
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
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
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
36
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
37
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
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
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
The α-shape
• The α-shape is a general shape descriptor for a set of
points [ Edelsbrunner, Kirkpatrick, Seidel 1983]
41
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
42
The α-shape
• Every α-shape edge is also a Delaunay triangulation
edge (it has an empty circle through its endpoints)
α-neighbors
radius α-disk
α-extreme
point
43
α-shapes
44
α-shapes in 3D
45
α-shapes in 3D
46
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
47
The α-shape
p
p
q
largest
largest
q
This center realizes
the smallest circle
This center realizes
the smallest circle
48
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
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
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
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
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
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