auto-completion of contours - kurlinkurlin.org/projects/auto-completion-closed-contours... ·...
TRANSCRIPT
![Page 1: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/1.jpg)
Auto-completion of contoursbased on topological persistence
Vitaliy Kurlin, http://kurlin.orgMicrosoft Research Cambridge
and Durham University, UK
![Page 2: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/2.jpg)
Maps and hand-drawn sketches
Problem: complete all closed contours or paintall regions that they enclose (a segmentation).
Motivations (and pictures) are from E. Saund.Finding perceptually closed paths. T-PAMI’03.
![Page 3: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/3.jpg)
Computer Graphics applicationThere can be no single ideal solution, but anyuser quickly drawing a sketch on a tablet mightbe happy with our fast automatic ‘best guess’:
make contours close so that I can paint regions
(a scale is easy to find, but we can’t ask for it).
![Page 4: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/4.jpg)
Input of auto-completion
Input: a dotted 2D image of n sparse pointswithout any user-defined parameters, no scale.
Often a sequence of points is given, we solvethe problem for any unstructured cloud C ⊂ R2.
![Page 5: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/5.jpg)
Output of auto-completion
Required output: most ‘persistent’ contours.
![Page 6: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/6.jpg)
Life story of a cloud: scale α = 0
![Page 7: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/7.jpg)
Life story of a cloud: scale α ≈ 1.1
![Page 8: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/8.jpg)
Life story of a cloud: scale α = 1.5
![Page 9: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/9.jpg)
Life story of a cloud: scale α = 2
![Page 10: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/10.jpg)
Life story of a cloud: scale α ≈ 2.6
![Page 11: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/11.jpg)
From a cloud to some shapeDef : the α-offset of a cloud C ⊂ R2 is the unionof closed balls Cα = ∪p∈CB(p;α) of a radius α.
Filtration C = C0 ⊂ · · · ⊂ Cα ⊂ · · · ⊂ C+∞ = R2
![Page 12: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/12.jpg)
Homology group H1 of offsets
Homology group H1 counts independent cycles:
C1.5 has 1 cycle, C2 has 2 cycles, C2.6 has 0.
![Page 13: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/13.jpg)
Persistent homologygives a summary of homology at all scales inany filtration S(α1) ⊂ S(α2) ⊂ · · · ⊂ S(αm) viaH1(S(α1))→ H1(S(α2))→ · · · → H1(S(αm)).
If a feature is born at α = b and dies at α = d , itslife is recorded by a bar (life span) from b to d .
![Page 14: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/14.jpg)
Barcode & persistence diagramCarlsson, Topology and Data, Bull. AMS 2009.
Thm: all evolution of homology is described bya complete discrete invariant (the bar code).
Persistence diagram has points (birth, death).
Barcode has bars [birth, death] ⊂ R.
![Page 15: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/15.jpg)
0D persistence diagram PD
PD{S(α)} ⊂ {0 ≤ x ≤ y} ⊂ R2 is formed by{x = y} and (birth, death) with multiplicities.
![Page 16: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/16.jpg)
1D persistence of α-offsets Cα
Pairs with high persistence are ‘true’ contours.Pairs near the diagonal reflect ‘noisy’ contours.
![Page 17: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/17.jpg)
Bottleneck distance on diagrams
Let P be {(a,a) ∈ R2} ∪ {a multi-set of points}.Def : dB(P,Q) = infψ supa∈P |a− ψ(a)| over all1-1 maps ψ : P → Q is the bottleneck distance.
![Page 18: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/18.jpg)
Stability of persistenceTh (C-S, E, H ’07): sublevel sets of f ,g : Rd → Rhave diagrams with dB(PDf ,PDg) ≤ ||f − g||∞.
ε-perturbation of f ‘deforms’ PDf by at most ε.
![Page 19: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/19.jpg)
More general stabilityfor ‘tame’ modules in the forthcoming bookStructure and stability of persistence modulesby F. Chazal, V. de Silva, M. Glisse, S. Y. Oudot.
![Page 20: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/20.jpg)
A noisy ε-sample C of a graphDef: a point cloud C is called a noisy ε-sampleof a graph G ⊂ R2 if C ⊂ Gε and also G ⊂ Cε.
The graph G in the middle has H1 of rank 36.
![Page 21: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/21.jpg)
Using stability of persistence
We can find the widest diagonal gap separating36 points from the rest of persistence diagram.
![Page 22: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/22.jpg)
Delaunay triangulation DT(C)
Def: for C = {p1, . . . ,pn} ⊂ R2, the Voronoi cellis V (pi) = {q ∈ R2 : d(q,pi) ≤ d(q,pj), j 6= i}.
Def: a Delaunay triangulation DT(C) is dual tothe Voronoi cells and is found in time O(n log n).
![Page 23: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/23.jpg)
α-complexes C(α) on a cloud CDef: the α-complex C(α) ⊂ DT(C) has edges oflength ≤ 2α and triangles of circumradius ≤ α.
C(0) ⊂ · · · ⊂ C(α) ⊂ · · · ⊂ C(+∞) = DT(C).
![Page 24: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/24.jpg)
From α-offsets to α-complexesTh (Edelsbrunner ‘95): any Cα deforms to C(α).
![Page 25: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/25.jpg)
Graphs C∗(α) dual to α-complexes
Cycles of C(α) ⊂ R2 correspond to connectedcomponents of the graph C∗(α) dual to C(α).
If α is decreasing, then C(α) is shrinking fromDT(C), the dual graph C∗(α) is growing.
![Page 26: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/26.jpg)
A union-find structure on C∗(α)A cycle of C(α) is broken at an edge e↔2 components of C∗(α) merge at the edge e.
O(nα(n)) time for a union-find structure, whereα(n) is the slow inverse Ackermann function.
![Page 27: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/27.jpg)
From DT(C) to PD{Cα} and gaps
![Page 28: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/28.jpg)
An initial segmentation of CAcute Delaunay triangle is a ‘center of gravity’.
We attach all adjacent non-acute triangles to getan initial segmentation on the right hand side.
![Page 29: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/29.jpg)
Harder than counting cyclesInitial regions↔ points of PD. To get 36 regionswith highest persistence, we ‘merge’ all lowpersistent points with higher persistent points.
![Page 30: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/30.jpg)
Merging initial regionsWe maintain adjacency relations when a regionmerges another one with a higher persistence.
Finally get 36 regions expected from PD{Cα}.
![Page 31: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/31.jpg)
Simple vs non-simple graphs
Def: G ⊂ R2 is simple if the boundary L of anybounded region in R2 −G has a radius ρ(L)such that Lα is circular for α < ρ(L) and Lα ∼ ·for α ≥ ρ(L), so the hole in Lα dies at α = ρ(L).
![Page 32: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/32.jpg)
Diagrams of simple graphs
The diagram PD{Gα} of any simple graph hasonly (birth, death) = (0, ρ) in the vertical axis.
For any ε-sample C of G, a diagonal gap inPD{Cα} can become thinner by at most 4ε.
![Page 33: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/33.jpg)
Noisy input→ correct outputTh (VK’14): let G ⊂ R2 be a simple graph with0 < ρ1 ≤ · · · ≤ ρm and ρ1 > 7ε+max{ρi+1− ρi}.For any ε-sample C of G, the algorithm finds mexpected contours, they are in the 2ε-offset G2ε.
![Page 34: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/34.jpg)
Idea: the widest gap survivesρ1 > 7ε+ max{ρi+1 − ρi} says that the diagonalgap {0 < y − x < ρ1} is widest under noise.
Also ε ≥ max{birth} above the widest gap inPD{Cα}, hence all edges in a persistent contourL ⊂ G have half-lengths ≤ ε, so L ⊂ Cε ⊂ G2ε.
![Page 35: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/35.jpg)
Results for non-simple graphs
The algorithm works for samples of non-simplegraphs, may output a hierarchy of colored maps.
![Page 36: Auto-completion of contours - Kurlinkurlin.org/projects/auto-completion-closed-contours... · 2014-12-04 · Auto-completion of contours based on topological persistence ... Pairs](https://reader033.vdocuments.mx/reader033/viewer/2022041916/5e6a01a1dc82ad59132e3855/html5/thumbnails/36.jpg)
Summary and further work• input: 2D point cloud, no extra parameters
• output: most persistent closed contours
• time: O(n log n) for any n points in 2D
• 2ε-approximation is guaranteed for a noisyε-sample of a good unknown graph G ⊂ R2
• any edge detector: image→ point cloud,auto-completion: cloud→ object contours
• extend to graphs with non-simple contours
• collaboration is welcome! kurlin.org/blog