Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Finding Small Holes:A brief foray into computational topology
Jeff EricksonUniversity of Illinois, Urbana-Champaign
http://www.cs.uiuc.edu/~jeffe/
http://www.cs.uiuc.edu/~jeffe/http://www.cs.uiuc.edu/~jeffe/
Finding Small Holes:A brief foray into computational topology
Jeff EricksonUniversity of Illinois, Urbana-Champaign
http://www.cs.uiuc.edu/~jeffe/
very
^
http://www.cs.uiuc.edu/~jeffe/http://www.cs.uiuc.edu/~jeffe/
Thanks
Collaborators:Bojan Mohar
Éric Colin de VerdièreErin ChambersFrancis LazarusKim WhittleseyMartin KutzMatt deVosPratik WorahRob Ghrist
Sariel Har-PeledSergio CabelloVin de Silva
National Science Foundation (CCR-0093348 and DMS-0528086)
2
Topology
≅
A topologist is a device for turning donuts into theorems.
3
Computational topology
A computational topologist is a device for turning donuts into algorithms.
4
Contractible cycles
‣ A cycle is a closed curve.
‣ A cycle in topological space X is contractible if and only if it can be continuously deformed within X to a single point.
5
Contractible cycles
‣ A cycle is a closed curve.
‣ A cycle in topological space X is contractible if and only if it can be continuously deformed within X to a single point.
contractible
5
Contractible cycles
‣ A cycle is a closed curve.
‣ A cycle in topological space X is contractible if and only if it can be continuously deformed within X to a single point.
non-contractiblenon-contractible
non-contractible
contractible
5
‣ A cycle in topological space X is a continuous function γ :S1→X.
‣ Two cycles γ and γ' are homotopic if there is a continuous function h:[0,1]×S1→X such that h(0,θ) = γ(θ) and h(1,θ) = γ'(θ) for all θ.
‣ A contractible cycle is homotopic to a constant cycle.
More formally...
6
Given a topological metric space, find its shortest non-contractible cycle.
7
Surface reconstruction
8
Surface reconstruction
point cloud
scanobject
8
Surface reconstruction
point cloud
scanobject
reconstructsurface
8
Topological noise
An Out-of-core Algorithm for Isosurface Topology
Simplification
Zoë Wood
Caltech
Hugues Hoppe
Microsoft Research
Mathieu Desbrun
U. of So. Cal.
Peter Schröder
Caltech
Many high-resolution surfaces are created through isosurface extraction from volumetric repre-sentations, obtained by 3D photography, CT, or MRI. Noise inherent in the acquisition processcan lead to geometrical and topological errors. Reducing geometrical errors during reconstructionis well studied. However, isosurfaces often contain many topological errors in the form of tinyhandles. These nearly invisible artifacts hinder subsequent operations like mesh simplification,remeshing, and parametrization. In this paper we present an efficient method for removing han-dles in an isosurface. Our algorithm makes an axis-aligned sweep through the volume to locatehandles, compute their sizes, and selectively remove them. The algorithm is designed for out-of-core execution. It finds the handles by incrementally constructing and analyzing a surface Reebgraph. The size of a handle is measured by a short surface loop that breaks it. Handles areremoved robustly by modifying the volume rather than attempting “mesh surgery.” Finally, thevolumetric modifications are spatially localized to preserve geometrical detail. We demonstratetopology simplification on several complex models, and show its benefit for subsequent surfaceprocessing.
Categories and Subject Descriptors: I.3.0 [Computer Graphics]:
General Terms: Algorithms, Performance
Additional Key Words and Phrases: topological artifacts, genus reduction, surface reconstruction,marching cubes.
1. INTRODUCTION
Highly accurate geometric models of physical objects are often acquired through discrete
scanning techniques. For example, models are commonly obtained using laser range scan-
ners, computed tomography (CT) or magnetic resonance imaging (MRI). Laser range scan-
ners achieve full coverage of complex objects by acquiring and merging multiple scans.
Many surface reconstruction algorithms perform the merging of scanned data using a vol-
umetric grid representation, in which the model is represented as the zero-contour of its
sampled distance function, i.e., as an isosurface [Curless and Levoy 1996; Hilton et al.
1996; Hoppe et al. 1992; Levoy and others 2000]. Similarly, CT or MRI produce data
volumes from which isosurfaces are extracted [Lorensen and Cline 1987].
Fig. 1. Sequence of progressively closer views revealing an extraneous handle in the Buddha mesh.
ACM Transactions on Graphics, Vol. V, No. N, Month 20YY, Pages 1–??.
[Wood, Hoppe, Desbrun, Schröder ’04]
Measurement errors in the scanned data introduce extra handles/tunnels to the reconstructed surface.
9
Topological noise
[Wood, Hoppe, Desbrun, Schröder ’04]
‣ These extra tunnels make compression difficult — remove them!
genus 104 genus 10450K vertices
genus 650K vertices
10
Other applications
11
Other applications
‣ Fixed-parameter algorithms for generalizations of planar graphs‣ representativity [Robertson, Seymour 87]; edge-width [Thomassen 90; Mohar, Thomassen 99]‣ PTAS for TSP in graphs of genus g [Demaine, Hajiaghayi, Mohar ’07]‣ Determine in O(n) time if a graph has crossing number ≤k. [Kawarabayashi, Reed ’07]
11
Other applications
‣ Fixed-parameter algorithms for generalizations of planar graphs‣ representativity [Robertson, Seymour 87]; edge-width [Thomassen 90; Mohar, Thomassen 99]‣ PTAS for TSP in graphs of genus g [Demaine, Hajiaghayi, Mohar ’07]‣ Determine in O(n) time if a graph has crossing number ≤k. [Kawarabayashi, Reed ’07]
‣ First step of other topological graph algorithms‣ Approximate the minimum-length graph cutting a surface into a disk. [E, Har-Peled ’04]‣ Find the minimum-length homotopy/homology basis for a surface. [E, Whittlesey ’05]‣ Find the shortest cycle in a given homotopy class. [Colin de Verdière, E ’06]
11
Other applications
‣ Fixed-parameter algorithms for generalizations of planar graphs‣ representativity [Robertson, Seymour 87]; edge-width [Thomassen 90; Mohar, Thomassen 99]‣ PTAS for TSP in graphs of genus g [Demaine, Hajiaghayi, Mohar ’07]‣ Determine in O(n) time if a graph has crossing number ≤k. [Kawarabayashi, Reed ’07]
‣ First step of other topological graph algorithms‣ Approximate the minimum-length graph cutting a surface into a disk. [E, Har-Peled ’04]‣ Find the minimum-length homotopy/homology basis for a surface. [E, Whittlesey ’05]‣ Find the shortest cycle in a given homotopy class. [Colin de Verdière, E ’06]
‣ Related to broader problems in topological analysis‣ Coverage analysis of ad-hoc/sensor networks‣ Identify (un)important topological features in high-dimensional data sets
11
Spaces of interest (in this talk)
‣ Combinatorial surfaces
‣ Piecewise-linear surfaces
‣ Arbitrary simplicial complexes
‣ Planar Vietoris-Rips complexes
12
Combinatorial surfaces
13
‣ An edge-weighted graph embedded on a 2-manifold (possibly with boundary) so that every face is a disk.
‣ We only care about cycles in the embedded graph.‣ The length of a cycle is the sum of the weights of its edges.
Combinatorial surfaces
14[Robertson, Seymour ’88; Thomassen ’90; Mohar, Thomassen ’99; Colin de Verdière et al. ’03+]
The 3-path property
‣ Any three paths with the same endpoints define three cycles.If any two are contractible, then all three are contractible. [Thomassen ’90]
15
The 3-path property
‣ The shortest non-contractible cycle consists of two shortest paths between any pair of antipodal points. [Thomassen ’90]
‣ Otherwise, the actual shortest path would create a shorter non-contractible cycle.
16
‣ For each vertex x:Expand a wavefront from x via Dijkstra’s algorithm
Algorithm
17[E Har-Peled 05]
‣ For each vertex x:Expand a wavefront from x via Dijkstra’s algorithm
Algorithm
17[E Har-Peled 05]
‣ For each vertex x:Expand a wavefront from x via Dijkstra’s algorithm
Algorithm
17[E Har-Peled 05]
‣ For each vertex x:Expand a wavefront from x via Dijkstra’s algorithm
Algorithm
17[E Har-Peled 05]
Algorithm
‣ Whenever the wavefront meets itself, we have a candidate cycle γ
18[E Har-Peled 05]
Algorithm
‣ Whenever the wavefront meets itself, we have a candidate cycle γ
18[E Har-Peled 05]
Algorithm
‣ Whenever the wavefront meets itself, we have a candidate cycle γ
18
‣ If γ is non-contractible, it is the shortest non-contractible cycle through vertex x.
[E Har-Peled 05]
Algorithm
‣ Whenever the wavefront meets itself, we have a candidate cycle γ
18
‣ If γ is non-contractible, it is the shortest non-contractible cycle through vertex x.
[E Har-Peled 05]
‣ To test if a cycle is contractible, perform simultaneous brepth-first searches on both sides
Algorithm
19[E Har-Peled 05]
‣ To test if a cycle is contractible, perform simultaneous brepth-first searches on both sides
Algorithm
19[E Har-Peled 05]
Algorithm
‣ If the two searches meet, the candidate cycle is non-separating and therefore non-contractible.
20[E Har-Peled 05]
Algorithm
‣ Otherwise, compute the Euler characteristic χ := F-E+V of either component. The cycle is contractible if and only if χ=1 or χ=2g-3.
21[E Har-Peled 05]
Algorithm
‣ Otherwise, compute the Euler characteristic χ := F-E+V of either component. The cycle is contractible if and only if χ=1 or χ=2g-3.
21[E Har-Peled 05]
Algorithm
‣ Otherwise, compute the Euler characteristic χ := F-E+V of either component. The cycle is contractible if and only if χ=1 or χ=2g-3.
21[E Har-Peled 05]
‣ If the cycle is contractible, discard the disk and continue Dijkstra.‣ If not, we’ve found the shortest non-contractible cycle through x.
‣ For each vertex: O(n log n) time for Dijkstra’s algorithm, plus O(n) time for all contractibility searches.
‣ Total running time: O(n2 log n). [E Har-Peled 05]
Analysis
Open Problem: Is there a faster algorithm?
22
Faster small-genus algorithms
23
‣ gO(g) n3/2 [Cabello, Mohar 05]‣ Multiple-pairs shortest paths in planar graphs
Faster small-genus algorithms
‣ gO(g) n4/3 log n [Cabello 06]‣ Graph separators
23
‣ gO(g) n3/2 [Cabello, Mohar 05]‣ Multiple-pairs shortest paths in planar graphs
Faster small-genus algorithms
‣ gO(g) n4/3 log n [Cabello 06]‣ Graph separators
‣ gO(g) n log n [Kutz 06]‣ Crossing patterns with greedy system of loops [E Whittlesey 06]
23
‣ gO(g) n3/2 [Cabello, Mohar 05]‣ Multiple-pairs shortest paths in planar graphs
Faster small-genus algorithms
‣ gO(g) n4/3 log n [Cabello 06]‣ Graph separators
‣ gO(g) n log n [Kutz 06]‣ Crossing patterns with greedy system of loops [E Whittlesey 06]
‣ O(g3 n log n) [Cabello, Chambers 07]‣ One-cross lemma + Kinetic shortest path trees
23
‣ gO(g) n3/2 [Cabello, Mohar 05]‣ Multiple-pairs shortest paths in planar graphs
Faster small-genus algorithms
‣ gO(g) n4/3 log n [Cabello 06]‣ Graph separators
‣ gO(g) n log n [Kutz 06]‣ Crossing patterns with greedy system of loops [E Whittlesey 06]
‣ O(g3 n log n) [Cabello, Chambers 07]‣ One-cross lemma + Kinetic shortest path trees
23
‣ gO(g) n3/2 [Cabello, Mohar 05]‣ Multiple-pairs shortest paths in planar graphs
One-cross lemma
‣ Let γ(x) be the shortest non-contractible cycle through any vertex x, and let γ* = argminx|γ(x)| be the shortest non-contractible cycle.
‣ If γ* ≠ γ(x), then γ* and γ(x) cross at most once.
24[Cabello, Chambers 07]
Algorithm
‣ Cut the surface along γ(x); find all shortest paths between corresponding vertices on copies of γ(x); recurse in the cut surface.
25[Cabello, Chambers 07]
‣ Each cycle cut reduces the genus by 1 ⇒ exactly g cycle cuts
Kinetic shortest paths
‣ To find all those shortest paths, maintain a kinetic shortest-path tree as the source point moves continuously around one copy of γ(x).
26[Cabello, Chambers, E 07]
‣O(gn) events, O(g log n) time each ⇒ O(g2 n log n) time per cycle cut
Kinetic shortest paths
‣ To find all those shortest paths, maintain a kinetic shortest-path tree as the source point moves continuously around one copy of γ(x).
26[Cabello, Chambers, E 07]
‣O(gn) events, O(g log n) time each ⇒ O(g2 n log n) time per cycle cut, E
Piecewise-linear surfaces
27
Definition
‣ A piecewise-linear surface is a set of Euclidean triangles, with some pairs of equal-length edges identified (glued together).[Dehn, Heegaard 1907; Radó 1937]
28
Definition
‣ A piecewise-linear surface is a set of Euclidean triangles, with some pairs of equal-length edges identified (glued together).[Dehn, Heegaard 1907; Radó 1937]
28
‣ Now we consider cycles anywhere on the surface.
‣ The metric is Euclidean everywhere except at the vertices.
PL metric
29
Everything still works?
‣ Contractible cycles still satisfy the 3-path condition.
‣ Thus, the shortest non-contractible cycle still contains shortest paths between any pair of antipodal points.
‣ Thus, the same expanding-wavefront method will find the shortest non-contractible cycle through any point.
‣ The shortest non-contractible cycle still passes through a vertex.
30
Shortest paths in PL surfaces
We just need an algorithm to compute shortest paths on PL surfaces. (Dijkstra’s algorithm won’t work here.)
‣ “Continuous Dijkstra”‣ O(n2 log n) [Mitchell, Mount, Papadimitriou ’87]‣ O(n2) [Chen, Han ’90]
‣ Thus, we can find the shortest noncontractible cycle in O(n3) time.
‣ Numerous approximation algorithms, faster special cases, practical heuristics, and false starts
31
[Surazhsky et al. 05]
Unfortunately...
‣ Those running times assume that any shortest path crosses any edge of the triangulation at most once—true for polyhedra in any Euclidean space, but not for arbitrary PL surfaces.
32
Unfortunately...
‣ Those running times assume that any shortest path crosses any edge of the triangulation at most once—true for polyhedra in any Euclidean space, but not for arbitrary PL surfaces.
32
Unbounded time
‣ Let α = maximum aspect ratio of any facet.
‣ Any shortest path crosses any edge O(α) times (and this is tight).
‣ We can find the shortest noncontractible cycle in O(poly(n, α)) time.
‣ If edge lengths or local coordinates are integers, α can be exponential in the input size. In the real RAM model, α is unbounded.
33
‣ We can implicitly represent a cycle’s crossing sequence by recording the number of times the cycle crosses each edge: O(n log α) bits. [Kneser ’30; Schaefer, Sedgwick, Štefankovic ’03]
Normal coordinates
34
35
4
‣ We can implicitly represent a cycle’s crossing sequence by recording the number of times the cycle crosses each edge: O(n log α) bits. [Kneser ’30; Schaefer, Sedgwick, Štefankovic ’03]
Normal coordinates
34
35
4
‣ We can implicitly represent a cycle’s crossing sequence by recording the number of times the cycle crosses each edge: O(n log α) bits. [Kneser ’30; Schaefer, Sedgwick, Štefankovic ’03]
Normal coordinates
34
35
4
‣ Similar implicit representations for paths, trees, shortest path maps, …
‣ We can implicitly represent a cycle’s crossing sequence by recording the number of times the cycle crosses each edge: O(n log α) bits. [Kneser ’30; Schaefer, Sedgwick, Štefankovic ’03]
Normal coordinates
34
35
4
‣ Similar implicit representations for paths, trees, shortest path maps, …‣ Can implicit shortest paths be computed in time O(poly(n, log α))?
Simplicial complexes
35
Simplicial complex
A set X of simplices (segments, triangles, tetrahedra, etc.) such that:(1) If Δ is in X, then every face of Δ is in X.(2) Any two simplices in X intersect in a common face.
36
Simplicial complex
A set X of simplices (segments, triangles, tetrahedra, etc.) such that:(1) If Δ is in X, then every face of Δ is in X.(2) Any two simplices in X intersect in a common face.
36
‣ k-skeleton: simplices in X with dimension k or less.‣We only consider cycles in the 1-skeleton.‣ Cycle contractibility depends only on the 2-skeleton.
Dead end
Unfortunately, contractibility of arbitrary cycles in arbitrary simplicial complexes is undecidable! [Markov ’64]
37
Vietoris-Rips complexes
38
‣ Vertices: A set P of points in the plane‣ Simplices: All subsets of P with diameter at most 1.
Vietoris-Rips complex R(P)
39
[Vietoris ’27; Rips ’8x; Gromov ’87]
1
‣ Vertices: A set P of points in the plane‣ Simplices: All subsets of P with diameter at most 1.
Vietoris-Rips complex R(P)
39
[Vietoris ’27; Rips ’8x; Gromov ’87]
1
‣ Vertices: A set P of points in the plane‣ Simplices: All subsets of P with diameter at most 1.
Vietoris-Rips complex R(P)
39
[Vietoris ’27; Rips ’8x; Gromov ’87]
1
‣ The image of the natural projection map ↓:R(P)→R2.‣ A (degenerate) simple polygon with holes.
Rips shadow S(P)
40
‣ The image of the natural projection map ↓:R(P)→R2.‣ A (degenerate) simple polygon with holes.
Rips shadow S(P)
40
The induced map ↓*:π1(R(P))→π1(S(P)) is an isomorphism.
Shadow Theorem
41[Chambers, de Silva, E, Ghrist 07]
Thus, to test contractibility, we only need to consider how the cycle winds around the holes in the shadow.
A cycle γ is contractible in R(P) if and only if the projected cycle ↓(γ) is contractible in S(P).
Shadow Theorem
41[Chambers, de Silva, E, Ghrist 07]
Thus, to test contractibility, we only need to consider how the cycle winds around the holes in the shadow.
Testing contractibility
‣ Choose a sentinel point in each hole (including the outer face) and build a spanning tree.
‣ A cycle is contractible iff its reduced crossing word is empty.
42
[Hershberger, Snoeyink 94; Efrat, Kobourov, Lubiw 06;
Bespamyatnikh ’04; Cabello, Liu, Mantler, Snoeyink ’04]
Testing contractibility
‣ Choose a sentinel point in each hole (including the outer face) and build a spanning tree.
‣ A cycle is contractible iff its reduced crossing word is empty.
42
[Hershberger, Snoeyink 94; Efrat, Kobourov, Lubiw 06;
Bespamyatnikh ’04; Cabello, Liu, Mantler, Snoeyink ’04]
Testing contractibility
‣ Choose a sentinel point in each hole (including the outer face) and build a spanning tree.
‣ A cycle is contractible iff its reduced crossing word is empty.
42
[Hershberger, Snoeyink 94; Efrat, Kobourov, Lubiw 06;
Bespamyatnikh ’04; Cabello, Liu, Mantler, Snoeyink ’04]
Testing contractibility
‣ Choose a sentinel point in each hole (including the outer face) and build a spanning tree.
‣ A cycle is contractible iff its reduced crossing word is empty.
42
[Hershberger, Snoeyink 94; Efrat, Kobourov, Lubiw 06;
Bespamyatnikh ’04; Cabello, Liu, Mantler, Snoeyink ’04]
Testing contractibility
‣ Choose a sentinel point in each hole (including the outer face) and build a spanning tree.
‣ A cycle is contractible iff its reduced crossing word is empty.
42
B
A C
D E
[Hershberger, Snoeyink 94; Efrat, Kobourov, Lubiw 06;
Bespamyatnikh ’04; Cabello, Liu, Mantler, Snoeyink ’04]
Testing contractibility
‣ Choose a sentinel point in each hole (including the outer face) and build a spanning tree.
‣ A cycle is contractible iff its reduced crossing word is empty.
42
B
A C
D E
[Hershberger, Snoeyink 94; Efrat, Kobourov, Lubiw 06;
Bespamyatnikh ’04; Cabello, Liu, Mantler, Snoeyink ’04]
Testing contractibility
‣ Choose a sentinel point in each hole (including the outer face) and build a spanning tree.
‣ A cycle is contractible iff its reduced crossing word is empty.
42
B
A C
D EAABCDD
[Hershberger, Snoeyink 94; Efrat, Kobourov, Lubiw 06;
Bespamyatnikh ’04; Cabello, Liu, Mantler, Snoeyink ’04]
Testing contractibility
‣ Choose a sentinel point in each hole (including the outer face) and build a spanning tree.
‣ A cycle is contractible iff its reduced crossing word is empty.
42
B
A C
D EAABCDD
[Hershberger, Snoeyink 94; Efrat, Kobourov, Lubiw 06;
Bespamyatnikh ’04; Cabello, Liu, Mantler, Snoeyink ’04]
Technical Lemmas
43[Chambers, E, Worah 07]
Technical Lemmas
‣ Lemma: S(P) has complexity O(n).
43[Chambers, E, Worah 07]
Technical Lemmas
‣ Lemma: S(P) has complexity O(n).
‣ Lemma: S(P) is the union of O(n) Rips triangles.‣ We can compute those Rips triangles in O(n2 log n) time.‣ Computing their union (the shadow) takes O(n2) time.
43[Chambers, E, Worah 07]
Technical Lemmas
44[Chambers, E, Worah 07]
Technical Lemmas
‣ Lemma: Any hole in S(P) has diameter at least 0.05.‣ In O(n) time, we can compute a sentinel tree such that any segment of length ≤1 crosses only O(1) edges.
44[Chambers, E, Worah 07]
Technical Lemmas
‣ Lemma: Any hole in S(P) has diameter at least 0.05.‣ In O(n) time, we can compute a sentinel tree such that any segment of length ≤1 crosses only O(1) edges.
‣ We can now test contractibility in O(1) time per edge.
44[Chambers, E, Worah 07]
Main algorithm
45[Chambers, E, Worah 07]
Main algorithm
‣ For each vertex s:‣ Build the shortest-path tree Ts rooted at s.‣ Build the corresponding trie of reduced crossing words, and preprocess it for O(1)-time LCA queries. [Bender, Farach-Colton 00]
‣ For any edge uv, we can now check in O(1) time whether the unique cycle in Ts∪ {uv} is contractible.
45[Chambers, E, Worah 07]
Main algorithm
‣ For each vertex s:‣ Build the shortest-path tree Ts rooted at s.‣ Build the corresponding trie of reduced crossing words, and preprocess it for O(1)-time LCA queries. [Bender, Farach-Colton 00]
‣ For any edge uv, we can now check in O(1) time whether the unique cycle in Ts∪ {uv} is contractible.
‣ 3-path condition ⇒ For some vertex s and edge uv, the shortest non-contractible cycle is the unique cycle in Ts∪ {uv}.
45[Chambers, E, Worah 07]
Main algorithm
‣ For each vertex s:‣ Build the shortest-path tree Ts rooted at s.‣ Build the corresponding trie of reduced crossing words, and preprocess it for O(1)-time LCA queries. [Bender, Farach-Colton 00]
‣ For any edge uv, we can now check in O(1) time whether the unique cycle in Ts∪ {uv} is contractible.
‣ 3-path condition ⇒ For some vertex s and edge uv, the shortest non-contractible cycle is the unique cycle in Ts∪ {uv}.
‣ Total time: O(n2 log n + mn)
45[Chambers, E, Worah 07]
Summary
46
Summary
Combinatorial surfaces:‣ O(n2 log n) or O(g2 n log n)‣ Open: Faster? Lower bounds?
46
Summary
Combinatorial surfaces:‣ O(n2 log n) or O(g2 n log n)‣ Open: Faster? Lower bounds?
Piecewise-linear surfaces:‣ O(n3) if embedded or every triangle is fat, no time bound otherwise‣ Open: Polynomial time if edge-lengths are integers?
46
Summary
Combinatorial surfaces:‣ O(n2 log n) or O(g2 n log n)‣ Open: Faster? Lower bounds?
Piecewise-linear surfaces:‣ O(n3) if embedded or every triangle is fat, no time bound otherwise‣ Open: Polynomial time if edge-lengths are integers?
Vietoris-Rips complexes:‣ O(n2 log n + mn) for points in the plane‣ Open: Faster? Higher dimensions? Applications?
46
Thanks for listening!
47