Dominique Attali (*) and André Lieutier (**)
Geometry driven collapses for simplifying Cech complexes ˇ
(*) Gipsa-lab (**) Dassault Systèmes
Geometry driven collapses for simplifying Cech complexes Dominique - - PowerPoint PPT Presentation
Geometry driven collapses for simplifying Cech complexes Dominique Attali ( * ) and Andr Lieutier ( ** ) ( * ) Gipsa-lab ( ** ) Dassault Systm es Shape in dD Guaranties on the result? R d in R d n points Simplicial complex Betti
(*) Gipsa-lab (**) Dassault Systèmes
2
/ / / / / / / / / / / / / Building Processing Reconstruction Simplicial complex Delaunay complex How to reconstruct without Delaunay? in Rd n points Shape Medial axis Betti numbers Volume . . . Signatures Guaranties on the result? Rd
3
weak Delaunay triangulation
[V. de Silva 2008]
tangential Delaunay complexes
[J. D. Boissonnat & A. Ghosh 2010]
tangent plane
Rips complexes
Landmarks
w
4
Rips(P, α) = {σ ⊂ P | Diameter(σ) ≤ 2α}
easy to compute compressed form of storage through the 1-skeleton
a
proximity graph connects every pair of points within
Gα Rips(P, α) = Flag Gα [Flag G = largest complex whose 1-skeleton is G]
α
2α b c
5
Reconstruction
Rips(P, α) P ⊂ Rd Shape A
Compressed form of storage through the 1-skeleton which is easy to compute
5
Reconstruction
Rips(P, α) P ⊂ Rd Shape A
Compressed form of storage through the 1-skeleton which is easy to compute
Sampling conditions [AL10][ALS12b]
5
Reconstruction
Rips(P, α) P ⊂ Rd Shape A
Simplification
Reduce the size Retrieve topology
Triangulation of A
Can be high-dimensional!
Compressed form of storage through the 1-skeleton which is easy to compute
Sampling conditions [AL10][ALS12b]
Physical system
6
Correct homotopy type
Point cloud in R1282 Rips complex
Correct intrinsic dimension
Polygonal curve
Is high-dimensional!
7 Contraction Collapse ab
Identifies vertices a and b to vertex c
a b c a b x y x y
∆
LkK(σ) = {τ | τ ∩ σ = ∅, τ ∪ σ ∈ K}
Preserves homotopy type if LkK (ab) = LkK (a) ∩ LkK (b) = ∩
Removes σmin and its cofaces ∆ Preserves homotopy type if ∆ has a unique maximal element σmax 6= σmin
σmin σmax 6= σmin
8
A ⊂ Rd is a compact set P ⊂ Rd is a finite point set α > 0
Rips(P, α)
sequence of collapses Conditions
S C, where C = {Cp | p ∈ P} finite collection of closed sets
9
Nerve Lemma.
If T
z∈σ Cz is either empty or contractible
Nerve C = {σ P | σ ⇥= ⇤ and \
p∈σ
Cp ⇥= ⇤}
10
α
p
α-offset of P P ⊕α = [
p∈P
B(p, α)
Nerve Lemma.
Cech(P, α) = Nerve{B(p, α) | p ∈ P}
11 α
p
α-offset of P P ⊕α = [
p∈P
B(p, α) Nerve Lemma.
Cech(P, α) = Nerve{B(p, α) | p ∈ P}
Rips(P, α)
⊃
12
P ⊕α Rips(P, α) Cech(P, α)
⊃
Nerve Lemma ≃
13
P ⊕α Shape A Rips(P, α) Cech(P, α)
Reach A = d(A, MedialAxis(A)) A
⊃
Nerve Lemma ≃
dH(A, P) ≤ ε < (3 − √ 8) Reach A α = (2 + √ 2)ε
[Niyogi Smale Weinberger 2004] (SC1)
MedialAxis(A) = {m ∈ Rd | m has at least two closest points in A }
14
P ⊕α Shape A Rips(P, α) Cech(P, α)
Reach A = d(A, MedialAxis(A)) A Nerve Lemma ≃
dH(A, P) ≤ ε < (3 − √ 8) Reach A α = (2 + √ 2)ε
[Niyogi Smale Weinberger 2004] collapses
dH(A, P) ≤ ε < 2 p 2 − √ 2 − √ 2 2 + √ 2 Reach(A)
α ≈ 7.22ε [ALS12b] (SC1) (SC2) MedialAxis(A) = {m ∈ Rd | m has at least two closest points in A }
15
P ⊕α Shape A Rips(P, α) Cech(P, α)
collapses ≃ Nerve Lemma [NSW04] (SC1)
(SC2) [ALS12b]
16
P ⊕α Shape A Rips(P, α) Cech(P, α) CechA(P, α)
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
≃ Nerve Lemma collapses
[NSW04] (SC1) (SC2) [ALS12b]
16
P ⊕α Shape A Rips(P, α) Cech(P, α) CechA(P, α)
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
≃ Nerve Lemma collapses
collapses (SC1) [NSW04] (SC1) (SC2) [ALS12b]
17
P ⊕α Shape A Rips(P, α) Cech(P, α) CechA(P, α)
collapses
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
≃ Nerve Lemma ≃
α < Reach A
Nerve Lemma A ⊂ P ⊕α
[NSW04] (SC1) (SC2) [ALS12b] (SC1) collapses
18 α < Reach A
Nerve Lemma
P ⊕α Shape A Rips(P, α) Cech(P, α) CechA(P, α)
collapses
α < Reach A
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
Nerve{A ∩ Hullα(Cv) | v ∈ V } ≃ ≃ Nerve Lemma α-robust covering of A Nerve of an A ⊂ P ⊕α
collapses [NSW04] (SC1) (SC2) [ALS12b] (SC1) collapses
19 α < Reach A
Nerve Lemma
P ⊕α Shape A Rips(P, α) Cech(P, α) CechA(P, α)
collapses
α < Reach A
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
Nerve{A ∩ Hullα(Cv) | v ∈ V } ≃ ≃ Nerve Lemma α-robust covering of A Nerve of an Shapes for which ∃ such triangulations ? A ⊂ P ⊕α
collapses (SC1) collapses [NSW04] (SC1) (SC2) [ALS12b]
20
A q p1 p2 Theorem 2 If dH(A, P) ≤ ε < (3 − √ 8) Reach(A) and α = (2 + √ 2)ε, then there exists a sequence of collapses from Cech(P, α) to CechA(P, α).
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
Cech(P, α) CechA(P, α)
K(t) = Nerve{At ∩ B(p, α) | p ∈ P}
Define collapses? K(+∞) K(0) = =
K(t) q
21
A q p1 p2 Theorem 2 If dH(A, P) ≤ ε < (3 − √ 8) Reach(A) and α = (2 + √ 2)ε, then there exists a sequence of collapses from Cech(P, α) to CechA(P, α).
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
Cech(P, α) CechA(P, α)
K(t) = Nerve{At ∩ B(p, α) | p ∈ P}
Define collapses? K(+∞) K(0) = =
At
K(t) q
22
A q p1 p2 Theorem 2 If dH(A, P) ≤ ε < (3 − √ 8) Reach(A) and α = (2 + √ 2)ε, then there exists a sequence of collapses from Cech(P, α) to CechA(P, α).
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
Cech(P, α) CechA(P, α)
K(t) = Nerve{At ∩ B(p, α) | p ∈ P}
Define collapses? K(+∞) K(0) = =
K(t) q
At
23
A q p1 p2 Theorem 2 If dH(A, P) ≤ ε < (3 − √ 8) Reach(A) and α = (2 + √ 2)ε, then there exists a sequence of collapses from Cech(P, α) to CechA(P, α).
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
Cech(P, α) CechA(P, α)
K(t) = Nerve{At ∩ B(p, α) | p ∈ P}
Define collapses? K(+∞) K(0) = =
At
K(t) q
24
A q p1 p2 Theorem 2 If dH(A, P) ≤ ε < (3 − √ 8) Reach(A) and α = (2 + √ 2)ε, then there exists a sequence of collapses from Cech(P, α) to CechA(P, α).
Nerve{B(p, α) | p ∈ P}
Cech(P, α) CechA(P, α)
K(t) = Nerve{At ∩ B(p, α) | p ∈ P}
Define collapses? K(+∞) =
Nerve{A ∩ B(p, α) | p ∈ P}
K(0) =
K(t) q
CechA(P, α)
Nerve{A ∩ B(p, α) | p ∈ P}
K(0) =
25
Define collapses?
K(t) = Nerve{Dp(t) | p ∈ P}
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
=
26
Then, generically K(t) undergoes collapses as t increases.
K(t) a b q Db(t) Dq(t) Da(t)
27
Db(t) Dq(t) Da(t) K(t) a b q
Then, generically K(t) undergoes collapses as t increases.
28
Db(t) Dq(t) Da(t) K(t) a b q
Then, generically K(t) undergoes collapses as t increases.
29
Db(t) Da(t) K(t) a b q
Then, generically K(t) undergoes collapses as t increases.
Dq(t)
30
Db(t) Da(t) K(t) a b q
Then, generically K(t) undergoes collapses as t increases.
Dq(t)
31
Db(t) Da(t) K(t) a b q
Then, generically K(t) undergoes collapses as t increases.
Dq(t)
32
∆(t) = set of simplices that disappear at time t Does the operation that removes ∆(t) from K(t) a collapse?
σmin ∆(t) σmax ̸= σmin
q ∈ q ̸∈
(1) Generically, ∆(t) has a unique minimal element σmin (6) σmin ̸= σmax = ⇒ removing ∆(t) is a collapse x
K(t) = Nerve{Dp(t) | p ∈ P}
(2) T
p∈σmin Dp(t) = {x}
(4) x ∈ ∂Dp(t), ∀p ∈ σmin (5) ∃q ∈ P such that x ∈ Dq(t)
Db(t) Dq(t) Da(t) K(t) a b q a b q K(t+) ∆(t) = {ab, abq}
(3) σmax = {p ∈ P | x ∈ Dp(t)}
33
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
contractible!
A
34
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
contractible!
A
B X A Reach(A) Medial Axis(A)
B X A Reach(A) Reach(X)
35
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
contractible!
A
X A Reach(A) Reach(X)
36
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
contractible!
A
37
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
contractible!
A
R e a c h ( X ) Rad(X)
c x H(t, x) = πX((1 − t)x + tc) X MedialAxis(X) y πX(y) πX(c)
37
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
contractible!
A
R e a c h ( X ) Rad(X)
c x H(t, x) = πX((1 − t)x + tc) X MedialAxis(X) y πX(y) πX(c) Rad(A ∩ \
z∈σ
B(z, α)) ≤ α < Reach(A) ≤ Reach(A ∩ \
z∈σ
B(z, α))
38
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
Shape A CechA(P, α)
≃ Nerve Lemma
α < Reach A
A ⊂ P ⊕α
= Nerve{A ∩ B(p, α) | p ∈ P} = [
p∈P
[A ∩ B(p, α)]
≃ ≃
Theorem 1 If α < Reach(A) and A ⇢ P ⊕α, then CechA(P, α) ' A.
contractible!
39
A ∩ Hullα(X) contractible if α < Reach(A) not necessarily contractible! X ⊂ A with Rad(X) < α
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
39
A ∩ Hullα(X) contractible if α < Reach(A) not necessarily contractible!
C = {Cv | v ∈ V } C0 = {A ∩ Hullα(Cv) | v ∈ V }
if α < Reach(A)
Nrv C0 A C α-robust covering of A if Nrv C = Nrv C0
X ⊂ A with Rad(X) < α
Technical Lemma. A ∩ \
z∈compact subset σ
B(z, α) is either empty or contractible if α < Reach(A)
40
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
41
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1) Dp(t) = A ∩ \
Cv⊂B(z,α)
B(tz + (1 − t)p, α)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
A ∩ B(p, α)
42
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1) Dp(t) = A ∩ \
Cv⊂B(z,α)
B(tz + (1 − t)p, α)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
43
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1) Dp(t) = A ∩ \
Cv⊂B(z,α)
B(tz + (1 − t)p, α)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
44
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1) Dp(t) = A ∩ \
Cv⊂B(z,α)
B(tz + (1 − t)p, α)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
45
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1) Dp(t) = A ∩ \
Cv⊂B(z,α)
B(tz + (1 − t)p, α)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
A ∩ Hullα(Cv)
46
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
47
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
48
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
49
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
50
CechA(P, α) Define collapses? α-robust covering of A Nerve of an
Theorem 3 Let C = {Cv | v ∈ V } an α-robust covering of A with V ⊂ P. Suppose there exists f : V → P injective such that Cv ⊂ B(f(v), α)). If α < Reach(A), then there is a sequence of collapses from CechA(P, α) to Nrv C.
Nerve{A ∩ B(p, α) | p ∈ P} Nerve{A ∩ Hullα(Cv) | v ∈ V }
= = K(0) K(1)
K(t) = Nerve{Dp(t) | p ∈ P} C = {Cv | v ∈ V }
51
Then, generically K(t) undergoes collapses as t increases.
K(t) a b q Db(t) Dq(t) Da(t)
52 α < Reach A
Nerve Lemma
P ⊕α Shape A Rips(P, α) Cech(P, α) CechA(P, α)
collapses
α < Reach A
Nerve{B(p, α) | p ∈ P} Nerve{A ∩ B(p, α) | p ∈ P}
Nerve{A ∩ Hullα(Cv) | v ∈ V } ≃ ≃ Nerve Lemma α-robust covering of A Nerve of an Shapes for which ∃ such triangulations ? A ⊂ P ⊕α
collapses (SC1) collapses
dH(A, P) ≤ ε < (3 − √ 8) Reach A α = (2 + √ 2)ε
[Niyogi Smale Weinberger 2004]
dH(A, P) ≤ ε < 2 p 2 − √ 2 − √ 2 2 + √ 2 Reach(A)
α ≈ 7.22ε [ALS12b] (SC1) (SC2)
53
α
R2
Rips(P, α)
sequence of collapses α-robust covering of A Nerve of an
A triangulation of A is α-nice if nerve of an α-robust covering of A T = triangulation of R2 with equilateral triangles C = {B(v, α) | v ∈ Vertices(T)} \ B(v, α) ⊂ StT (v) Then, T = Nerve(C) C : α-robust T : α-nice
Conditions (SC2)
54
Rm The flat torus T2 ⊂ R4
Rips(P, α)
sequence of collapses Conditions α-robust covering of A Nerve of an
Can we find other spaces that are “nicely triangulable”? Can we turn all this into a practical algorithm? A space is“nicely triangulable” if it has an α-nice triangulation for all α
55