Department of Computer Science and Engineering Computing handles and tunnels in 3D models Tamal K. Dey Joint work: Kuiyu Li, Jian Sun, D. Cohen-Steiner.

Slides:



Advertisements
Similar presentations
Goal: a graph representation of the topology of a gray scale image. The graph represents the hierarchy of the lower and upper level sets of the gray level.
Advertisements

Computing Persistent Homology
Lecture 15. Graph Algorithms
Alpha Shapes. Used for Shape Modelling Creates shapes out of point sets Gives a hierarchy of shapes. Has been used for detecting pockets in proteins.
Great Theoretical Ideas in Computer Science
Great Theoretical Ideas in Computer Science for Some.
Lecture 24 MAS 714 Hartmut Klauck
Longest Common Subsequence
Map Overlay Algorithm. Birch forest Wolves Map 1: Vegetation Map 2: Animals.
GRAPP, Lisbon, February 2009 University of Ioannina Skeleton-based Rigid Skinning for Character Animation Andreas Vasilakis and Ioannis Fudos Department.
Surface Reconstruction From Unorganized Point Sets
 Distance Problems: › Post Office Problem › Nearest Neighbors and Closest Pair › Largest Empty and Smallest Enclosing Circle  Sub graphs of Delaunay.
Great Theoretical Ideas in Computer Science for Some.
1 Discrete Structures & Algorithms Graphs and Trees: III EECE 320.
CompSci 102 Discrete Math for Computer Science April 19, 2012 Prof. Rodger Lecture adapted from Bruce Maggs/Lecture developed at Carnegie Mellon, primarily.
Proximity graphs: reconstruction of curves and surfaces
Convex Hulls in Two Dimensions Definitions Basic algorithms Gift Wrapping (algorithm of Jarvis ) Graham scan Divide and conquer Convex Hull for line intersections.
Knots and Links - Introduction and Complexity Results Krishnaram Kenthapadi 11/27/2002.
Computing Medial Axis and Curve Skeleton from Voronoi Diagrams Tamal K. Dey Department of Computer Science and Engineering The Ohio State University Joint.
1/50 Department of Computer Science and Engineering Localized Delaunay Refinement for Sampling and Meshing Tamal K. Dey Joshua A. Levine Andrew G. Slatton.
Robust Repair of Polygonal Models Tao Ju Rice University.
Steps in DP: Step 1 Think what decision is the “last piece in the puzzle” –Where to place the outermost parentheses in a matrix chain multiplication (A.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
3. Delaunay triangulation
High-Quality Simplification with Generalized Pair Contractions Pavel Borodin,* Stefan Gumhold, # Michael Guthe,* Reinhard Klein* *University of Bonn, Germany.
1 Discrete Structures & Algorithms Graphs and Trees: II EECE 320.
Chapter 23 Minimum Spanning Trees
Cutting a surface into a Disk Jie Gao Nov. 27, 2002.
3 -1 Chapter 3 The Greedy Method 3 -2 The greedy method Suppose that a problem can be solved by a sequence of decisions. The greedy method has that each.
Computational Geometry Seminar Lecture 1
An Out-of-core Algorithm for Isosurface Topology Simplification Zoë Wood Hughes Hoppe Mathieu Desbrun Peter Schröder.
1 Separator Theorems for Planar Graphs Presented by Shira Zucker.
Consistent Parameterizations Arul Asirvatham Committee Members Emil Praun Hugues Hoppe Peter Shirley.
Tamal K. Dey The Ohio State University Computing Shapes and Their Features from Point Samples.
Curve Curve: The image of a continous map from [0,1] to R 2. Polygonal curve: A curve composed of finitely many line segments. Polygonal u,v-curve: A polygonal.
Matthew Bowling Euler’s Theorem Mathfest Spring ‘15.
Data Structures Using C++ 2E
Theory of Computing Lecture 10 MAS 714 Hartmut Klauck.
Computing Optimal Graphs on Surfaces Jeff Erickson University of Illinois at Urbana-Champaign Jeff Erickson University of Illinois at Urbana-Champaign.
© The McGraw-Hill Companies, Inc., Chapter 3 The Greedy Method.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Dobrina Boltcheva, Mariette Yvinec, Jean-Daniel Boissonnat INRIA – Sophia Antipolis, France 1. Initialization Use the.
UNC Chapel Hill Lin/Foskey/Manocha Minimum Spanning Trees Problem: Connect a set of nodes by a network of minimal total length Some applications: –Communication.
A 3D Model Alignment and Retrieval System Ding-Yun Chen and Ming Ouhyoung.
Minimum Spanning Trees and Kruskal’s Algorithm CLRS 23.
A Clustering Algorithm based on Graph Connectivity Balakrishna Thiagarajan Computer Science and Engineering State University of New York at Buffalo.
Approximate Convex Decomposition of Polygons Reporter: Hong guang Zhou Math Dept. ZJU May 17th, 2007 Jyh-Ming Lien Nancy M. Amato Computational Geometry:
Lectures on Greedy Algorithms and Dynamic Programming
1/43 Department of Computer Science and Engineering Delaunay Mesh Generation Tamal K. Dey The Ohio State University.
15-853Page :Algorithms in the Real World Planar Separators I & II – Definitions – Separators of Trees – Planar Separator Theorem.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
Greedy Optimal Homotopy and Homology Generators Jeff Erickson and Kim Whittlesey University of Illinois, Urbana-Champaign To appear at SODA 2005
Great Theoretical Ideas in Computer Science for Some.
Department of Computer Science and Engineering On Computing handles and tunnels for surfaces Tamal K. DeyKuiyu LiJian Sun.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
Network Partition –Finding modules of the network. Graph Clustering –Partition graphs according to the connectivity. –Nodes within a cluster is highly.
COMPSCI 102 Introduction to Discrete Mathematics.
Data Structures and Algorithm Analysis Graph Algorithms Lecturer: Jing Liu Homepage:
Delaunay Triangulations and Control-Volume Meshing Michael Murphy.
3.1 Clustering Finding a good clustering of the points is a fundamental issue in computing a representative simplicial complex. Mapper does not place any.
Advanced Algorithms Analysis and Design
Minimum Spanning Trees
Great Theoretical Ideas in Computer Science
COMP 6/4030 ALGORITHMS Prim’s Theorem 10/26/2000.
Minimum Spanning Tree Algorithms
Text Book: Introduction to algorithms By C L R S
Discrete Mathematics for Computer Science
Chapter 5: Morse functions and function-induced persistence
Minimum Spanning Trees
Presentation transcript:

Department of Computer Science and Engineering Computing handles and tunnels in 3D models Tamal K. Dey Joint work: Kuiyu Li, Jian Sun, D. Cohen-Steiner

2/52 Department of Computer Science and Engineering Projects in Jyamiti group Surface reconstrucion (Cocone) Delaunay meshing (DelPSC) Shape feature processing (Segmatch, Cskel)

3/52 Department of Computer Science and Engineering Handle loops/Tunnel loops

4/52 Department of Computer Science and Engineering Handle loops/Tunnel loops

5/52 Department of Computer Science and Engineering Topological Simplification

6/52 Department of Computer Science and Engineering Use of Handles and Tunnels Topological simplification / feature recognition / parameterization El-Sana and Varshney[1997] use α-hulls to search for tunnels. Guskov and Wood[2001] propose a surface growing strategy to remove small handles. Nooruddin and Turk[2003] use morphological operations to remove small handles. Wood, Hoppe, Desbrun, and Schroder[2004] use Reeb graph to remove handles. Shattuck and Leahy[2001] use Reeb graph to compute handles. From WUSTL Model/surface editing (Zhou, Ju, and Hu[2007] use medial axis to detect loops) and work by Grimm et al.

7/52 Department of Computer Science and Engineering Nontrivial loops can neither be handle nor tunnel. Handle and tunnel loops have to be non- separating. Nontrivial loops as first attempt?

8/52 Department of Computer Science and Engineering Loops on a surface Compute polygon schemas [Vegter-Yap90][Dey-Schipper95] Linear time algorithm Compute optimal systems of loops [VL05][EW06] Verdiere and Lazarus gave an algorithm for computing a system of loops which is shortest among the homotopy class of a given one. Erickson and Whittlesey gave a greedy algorithm to compute the shortest system of loops among all systems of loops. Compute optimal cut graph [EH04] Computing a shortest cut graph is NP-hard. Related work for loops on surface

9/52 Department of Computer Science and Engineering A better idea Intuitively, a loop on a connected, closed, surface M in R 3 is: handle if it spans a disk (surface) in the bounded space bordered by M. tunnel if it spans a disk (surface) in the unbounded space bordered by M.

10/52 Department of Computer Science and Engineering Cycle, Boundary and Homology p-chain: c=  a i  i,  i is p-simplex. (e 2 +e 3 +e 4 ) is a 1-chain. If c'=  a i '  i, then c+c'=  (a i +a i ')  i. c + c = 0 for Z 2 coefficients. Boundary operator  p  =  [v 0,v 1,…,v p ] =  i=0 p [v 0,…,~v i,…,v p ] e.g.:  t = (e 2 +e 3 +e 4 ) e.g.:  e 0 +  e 1 +  e 4 = (v 0 +v 2 )+(v 0 +v 1 )+(v 1 +v 2 ) = 0

11/52 Department of Computer Science and Engineering Cycle, Boundary and Homology p-cycle: if  p c = 0. p-boundary: if there’s (p+1)-chain d, s.t. c=  p d. p-cycle group Z p = kernel (  p ). p-boundary group B p = image (  p+1 ). H p = Z p / B p Each element of H p represents an equivalent class. c 1 and c 2 are in the same class if c 1 + c 2 is in B p. Trivial elements in H p bounds (p+1)-chain

12/52 Department of Computer Science and Engineering Simplicial Homology Group The k-th homology group H k (K) is the quotient group: Z k /B k. It records the information of non- bounding (not filled) k-cycles. H 1 (K) contains non-bounding 1-cycles.

13/52 Department of Computer Science and Engineering Homomorphisms f: X → Y ⇨ f * : H k (X) → H k (Y) X ⊆ Y ⇨ i * : H k (X) → H k (Y)

14/52 Department of Computer Science and Engineering Mayer-Vietoris sequence H k (X ∪ Y) ϕ 1  H k-1 (X ∩ Y) ϕ 2  H k-1 (X) ⊕ H k-1 (Y) ϕ 3  H k-1 (X ∪ Y) Ker( ϕ i ) = Im( ϕ i-1 ) Homomorphisms

15/52 Department of Computer Science and Engineering Notations/Definitions Notations: M : a connected closed surface in R 3. I : the bounded set enclosed by M including M. O : the unbounded set i * : H 1 ( M )  H 1 ( O ) and i * : H 1 ( M )  H 1 ( I ) tunnel loop: trivial in H 1 ( O ) and non- trivial in H 1 ( I ). handle loop: trivial in H 1 ( I ) and non- trivial in H 1 ( O ).

16/52 Department of Computer Science and Engineering Handle and tunnel loops – definitions [Dey-Li-Sun 07] Let M be a connected, closed, surface in R 3. M separates R 3 into inside I and outside O. Both I and O have M as boundary. Handle: A loop on M whose homology class is trivial in H 1 ( I ) and non-trivial in H 1 ( O ). Tunnel: A loop on M whose homology class is trivial in H 1 ( O ) and non-trivial in H 1 ( I ).

17/52 Department of Computer Science and Engineering Consider a thickened trefoil handle loop (green) tunnel loop (red) Nasty knots

18/52 Department of Computer Science and Engineering Handle and tunnel loops – existence Theorem ( Dey, Li, Sun[2007] ) For any connected closed surface M of genus g in R 3, there exist g handle loops {h i } i=1…g forming a basis for H 1 ( O ) and g tunnel loops {t i } i=1...g forming a basis for H 1 ( I ). Furthermore, {h i } i=1...g and {t i } i=1...g form a basis for H 1 ( M ).

19/52 Department of Computer Science and Engineering First algorithm for GR models [Dey-Li-Sun 07] Graph retractability assumption : A surface is graph retractable if both I and O deformation retract to a graph, denoted I and O, respectively.

20/52 Department of Computer Science and Engineering I and O are disjoint core graphs, each with g loops : {K j I } j=1 g and {K j O } j=1 g and {K j } j=1 2g all together. How to compute I and O ? Inner and outer cores

21/52 Department of Computer Science and Engineering Linking number J and K are two disjoint loops in R 3. In a regular projection, there are two ways in which J crosses under K. The linking number, lk(K, J), is the sum of these signed crossings.

22/52 Department of Computer Science and Engineering Linking number Theorem A loop  on M is a handle iff lk( , K i I )  0 for at least one inner core and lk( , K i O )=0 for all outer cores. A loop  on M is a tunnel iff lk( , K i O )  0 for at least one outer core and lk( , K i I )=0 for all inner cores.

23/52 Department of Computer Science and Engineering Minimally linked basis A loop is minimally linked if it links once only with one core loop. Theorem : There exist 2g minimally linked loops, denoted {J j } j=1 2g, such that lk(K i, J j )=  ij. Half of them linked with K i I ’s, denoted {J j I } j=1 g, are handle loops. Other half linked with K i O ’s, denoted {J j O } j=1 g, are tunnel loops. {[J j I ]} j=1 g form a basis for H 1 ( I ) and {[J j O ]} j=1 g form a basis for H 1 ( O ). Hence {[J j ]} j=1 2g form a basis for H 1 ( M ).

24/52 Department of Computer Science and Engineering Topological algorithm Assume I and O are given. Step1: Compute {K i } i=1 2g using the spanning tree of I and O. Step2: Compute a system of 2g loops on M, denoted {  j } j=1 2g. (say by Dey-Schipper or Vegter-Yap linear time algorithms) Step3: Compute lk(K i,  j ) for all i and j. Let A be the 2gx2g matrix {lk(K i,  j )}. A is the transform matrix from a minimally linked basis {[J j ]} j=1 2g to basis {[  j ]} j=1 2g. A -1 = {a ji } exists and has integer entries. [J j ] =  i=1 2g a ji [  i ]. Step4: Obtain J j by concatenating  i ’s according to the above expression.

25/52 Department of Computer Science and Engineering An implementation to compute system of handle and tunnel loops with small size Compute I and O Basic idea: Collapse the inside (outside) Voronoi diagram to obtain I ( O ). The curve-skeleton [Dey-Sun06] captures the geometry better. Each skeleton edge (e) gets associated with an additional value called geodesic size (g(e)) indicating the local size of M. Establish graph structure on the curve skeleton. The geodesic size for a graph edge, g(E) = min{g(e): e is a skeleton edge in E}. Issue: not always work for any graph retractable surface, e.g., a thickening of a house with two room.

26/52 Department of Computer Science and Engineering Core graphs by curve-skeletons [DS05]

27/52 Department of Computer Science and Engineering An implementation to compute system of handle and tunnel loops with small size Compute core loops {K j } j=1 2g Compute the maximal spanning tree for I and O using geodesic sizes as weight. Add the remaining edges, E i ’s, to form K i ’s. Compute minimally linked {J j } j=1 2g Basic idea: compute J i ’s at different location indicated by E i ’s. Let e be the skeleton edge with the smallest geodesic size in E i. Let p be one of the vertices of the dual Delaunay triangle of e. Compute an optimal system of loops by geodesic exploration and apply topological algorithm. In our experiments, one of the loop in the system of loops itself satisfies the condition to be J i ’s.

28/52 Department of Computer Science and Engineering Results

29/52 Department of Computer Science and Engineering A Persistence based algorithm [Dey-Li-Sun-Cohen-Steiner 08] A fast algorithm based on persistent homology introduced by Edelsbrunner, Letscher, Zomorodian[2002]. The algorithm does not require any extra structure such as medial axis, curve skeleton, or Reeb graphs. It works on a larger class of models. Both surface mesh and isosurface with volume grids can be input.

30/52 Department of Computer Science and Engineering Filtration in persistent homology Filtration of a simplicial complex K is a nested sequence of complexes: 0 = K -1 < K 0 < K 1 < …< K n = K Assume K i - K i-1 =  i Persistence homology studies how the homology groups change over the filtration. In our algorithm, we use the pairing concept in the persistent homology.

31/52 Department of Computer Science and Engineering Positive and Negative simplices Once a p-simplex  is added to K i-1, it is Positive if it creates a non-boundary p-cycle. Negative if it kills an existing (p-1)-cycle. A negative p-simplex  is always paired with a unique positive (p-1)-simplex  ' where  kills a (p-1)-cycle created by  '.

32/52 Department of Computer Science and Engineering Positive and negative simplices

33/52 Department of Computer Science and Engineering Pairing algorithm – pair (  ) 1 ) c=  p  2) d is youngest positive (p-1)-simplex in c 3) while (d is paired and c  Φ) do Let c' be the cycle killed by the simplex paired with d c=c'+c d is the youngest positive (p-1)-simplex in c end while 4) if c is not empty, then  is negative p-simplex and paired with d else  is positive p-simplex.

34/52 Department of Computer Science and Engineering Pairing Algorithm – pair (  i ) Pairing algorithm

35/52 Department of Computer Science and Engineering Computing handle and tunnel loops Topological algorithm Two refinements for improving loop quality. Assume M, I, and O denote the simplicial complexes of surface, inside, and outside respectively; g is the genus of M.

36/52 Department of Computer Science and Engineering Topological algorithm 3 Steps: 1) Simplices of M are added to the filtration, generating 2g unpaired positive edges; 2) Simplices of I are added, g previously unpaired edges get paired, each pair corresponds to a handle loop; 3) Simplices of O are added, the rest of g unpaired edges get paired, each pair corresponds to a tunnel loop.

37/52 Department of Computer Science and Engineering Topological algorithm cont.

38/52 Department of Computer Science and Engineering Refinement 1 For a negative triangle , a series of homologous loops are obtained. Let L 1, L 2,…, L k be those that lie on M, sorted by the time when they are found. Set the handle (or tunnel) loop L (  ) for  as L 1.

39/52 Department of Computer Science and Engineering Refinement 2 A handle (or tunnel) loop is found when a cross section of M get filled. Cross sections of small size will get filled first if we add triangles in I and O to the filtration in increasing order of their geodesic sizes.

40/52 Department of Computer Science and Engineering Computing geodesics – for refinement 2 Geodesic size of an edge E =(A 1, A 2 ): geodesic distance between points A 1 ' and A 2 ' on M, where A i '=A i if A i is on M ; otherwise, A i ' is the closet point on M for A i Geodesic size size of a triangle t: max {g(e)|e is in t}

41/52 Department of Computer Science and Engineering Entire algorithm 1) Compute geodesic size for edges and triangles in I and O ; 2) For each simplex  on M, pair(  ); 3) E = unpaired positive edges on M ; 4) In the order of increasing geodesic size, pair(  ) for each triangle  in I ; 5) if (  is negative and its paired positive edge is in E), then output a handle: h i = L (  ); 6) Do similarly as 4) and 5) to get tunnels.

42/52 Department of Computer Science and Engineering Entire algorithm

43/52 Department of Computer Science and Engineering Gearbox (genus 78)

44/52 Department of Computer Science and Engineering Isosurface Fuel (genus 8)

45/52 Department of Computer Science and Engineering Isosurface (Engine, genus 20)

46/52 Department of Computer Science and Engineering Aneurysm

47/52 Department of Computer Science and Engineering Knotty cup and noise

48/52 Department of Computer Science and Engineering Experiments We implemented our algorithm in C++. All experiments were done on a Dell PC with 2.8GHz Intel Pentium D CPU and 1GB RAM.

49/52 Department of Computer Science and Engineering Feature Detection Compute handle (tunnel) features based on handle (tunnel) loops. Sweep the handle (tunnel) loop until the length become too long.

50/52 Department of Computer Science and Engineering Topological simplification

51/52 Department of Computer Science and Engineering Simplification (Buddha)

52/52 Department of Computer Science and Engineering A simple, topologically correct algorithm for handles and tunnels. Mathematical proof of geometric qualities of the loops? What about surfaces with boundaries? Handletunnel software available from Conclusions and future work

53/52 Department of Computer Science and Engineering Pegasus (genus 5)

54/52 Department of Computer Science and Engineering 2-torus (genus 2)