Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# Learning with Nets and Meshes

257
views

Published on

In this talk, I argue that mesh generation is good tool to preprocess point clouds for geometric inference and discuss how to compute such meshes.

In this talk, I argue that mesh generation is good tool to preprocess point clouds for geometric inference and discuss how to compute such meshes.

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total Views
257
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
3
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Transcript

• 1. Learning with Nets and Meshes Don Sheehy
• 2. 2Thanks to my collaborators: Benoit Hudson Gary Miller Todd Phillips Steve Oudot
• 3. Point Clouds in low to medium dimensional 3ambient space. d2 Rule of thumb: d! or 2 is okay but nd is not.
• 4. There are many geometric inference problems 4that could benefit from meshing. Discretize Space Approximate Functions Adapt to density Describe the space around the input.
• 5. Meshing 5 Input: P ⊂ Rd n = |P | Output: M ⊃ P with a “nice” Voronoi diagram
• 6. Meshing 5 Input: P ⊂ Rd n = |P | Output: M ⊃ P with a “nice” Voronoi diagram
• 7. Points, offsets, homology, and persistence.
• 8. Points, offsets, homology, and persistence. Input: P ⊂ Rd
• 9. Points, offsets, homology, and persistence. Input: P ⊂ Rd α P = ball(p, α) p∈P
• 10. Points, offsets, homology, and persistence. Input: P ⊂ Rd α P = ball(p, α) p∈P
• 11. Points, offsets, homology, and persistence. Input: P ⊂ Rd α P = ball(p, α) p∈P
• 12. Points, offsets, homology, and persistence. Offsets Input: P ⊂ Rd α P = ball(p, α) p∈P
• 13. Points, offsets, homology, and persistence. Offsets Input: P ⊂ Rd α P = ball(p, α) p∈P Compute the Homology
• 14. Points, offsets, homology, and persistence. Offsets Input: P ⊂ Rd α P = ball(p, α) p∈P Compute the Homology
• 15. Points, offsets, homology, and persistence. Offsets Input: P ⊂ Rd α P = ball(p, α) p∈P Compute the Homology
• 16. Points, offsets, homology, and persistence. Offsets Input: P ⊂ Rd α P = ball(p, α) p∈P Compute the Homology
• 17. Points, offsets, homology, and persistence. Offsets Input: P ⊂ Rd α P = ball(p, α) p∈P Compute the Homology
• 18. Points, offsets, homology, and persistence. Offsets Input: P ⊂ Rd α P = ball(p, α) p∈P Compute the Homology
• 19. Points, offsets, homology, and persistence. Offsets Input: P ⊂ Rd α P = ball(p, α) p∈P Persistent Compute the Homology
• 20. Geometric TopologicallyApproximation Equivalent
• 21. Geometric TopologicallyApproximation Equivalent
• 22. Complexity: How big is the mesh? 8
• 23. Complexity: How big is the mesh? 8 How many Steiner Points?
• 24. Complexity: How big is the mesh? 8 How many Steiner Points? 1 |M | = dx Ω lfsP (x)d
• 25. Complexity: How big is the mesh? 8 How many Steiner Points? 1 |M | = dx Ω lfsP (x)d |M| = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08].
• 26. Complexity: How big is the mesh? 8 How many Steiner Points? 1 |M | = dx Ω lfsP (x)d |M| = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08]. How many simplices?
• 27. Complexity: How big is the mesh? 8 How many Steiner Points? 1 |M | = dx Ω lfsP (x)d |M| = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08]. How many simplices? Only O(|M|) simplices. d/2 Compare to |M | for general Delaunay triangulations. Constants depend on aspect ratio.
• 28. Complexity: How hard is it to compute a mesh? 9
• 29. Complexity: How hard is it to compute a mesh? 9 O(n log n + |M |)
• 30. Complexity: How hard is it to compute a mesh? 9 O(n log n + |M |) Point Location
• 31. Complexity: How hard is it to compute a mesh? 9 O(n log n + |M |) Point Location Output Sensitive
• 32. Complexity: How hard is it to compute a mesh? 9 O(n log n + |M |) Point Location Output Sensitive This is optimal in the comparison model.
• 33. Complexity: How hard is it to compute a mesh? 9 O(n log n + |M |) Point Location Output Sensitive This is optimal in the comparison model. O(n log n)
• 34. Complexity: How hard is it to compute a mesh? 9 O(n log n + |M |) Point Location Output Sensitive This is optimal in the comparison model. O(n log n)Compute a hierarchical quality mesh.
• 35. Complexity: How hard is it to compute a mesh? 9 O(n log n + |M |) Point Location Output Sensitive This is optimal in the comparison model. O(n log n) + O(|M |)Compute a hierarchical quality mesh. Finishing post-process.
• 36. The Delaunay Triangulation is the dual 10of the Voronoi Diagram.
• 37. The Delaunay Triangulation is the dual 10of the Voronoi Diagram.
• 38. The Delaunay Triangulation is the dual 10of the Voronoi Diagram.
• 39. The Delaunay Triangulation is the dual 10of the Voronoi Diagram. D-ball
• 40. Quality Meshes 11
• 41. Quality Meshes 11 D-Balls are Constant Ply
• 42. Quality Meshes 11 D-Balls are Constant Ply Total Complexity is linear in |M|
• 43. Quality Meshes 11 D-Balls are Constant Ply Total Complexity is linear in |M| No D-ball intersects more than O(1) others.
• 44. Quality Meshes 11 D-Balls are Constant Ply Total Complexity is linear in |M| No D-ball intersects more than O(1) others. Refine poor-quality cells by adding a Steiner point at its farthest vertex.
• 45. We replace quality with hierarchical quality. 12
• 46. We replace quality with hierarchical quality. 12
• 47. We replace quality with hierarchical quality. 12
• 48. We replace quality with hierarchical quality. 12
• 49. We replace quality with hierarchical quality. 12 Inside the cage: Old definition of quality.
• 50. We replace quality with hierarchical quality. 12 Inside the cage: Old definition of quality. Outside: Treat the whole cage as a single object.
• 51. We replace quality with hierarchical quality. 12 Inside the cage: Old definition of quality. Outside: Treat the whole cage as a single object. All the same properties as quality meshes: ply, degree, etc.
• 52. The sparse meshing model: 13
• 53. The sparse meshing model: 13 1 Build a Voronoi diagram incrementally.
• 54. The sparse meshing model: 13 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions.
• 55. The sparse meshing model: 13 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions. 3 Recover quality after each input point.
• 56. The sparse meshing model: 13 1 Build a Voronoi diagram incrementally. 2 Interleave input and Steiner point insertions. 3 Recover quality after each input point. This is how we avoid the worst-case Voronoi bounds.
• 57. Point Location and Geometric D&C 14 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
• 58. Point Location and Geometric D&C 14 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
• 59. Point Location and Geometric D&C 14 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
• 60. Point Location and Geometric D&C 14 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
• 61. Point Location and Geometric D&C 14 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates.
• 62. Point Location and Geometric D&C 14 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates. Lemma (HMP06). A point is touched at most a constant number of times before the radius of the largest D-ball containing it goes down by a factor of 2.
• 63. Point Location and Geometric D&C 14 Idea: Store the uninserted points in the D-balls. When the balls change, make local updates. Lemma (HMP06). A point is touched at most a constant number of times before the radius of the largest D-ball containing it goes down by a factor of 2. Geometric Divide and Conquer: O(n log ∆)
• 64. With hierarchical meshes, we can add inputs 15in any order!
• 65. With hierarchical meshes, we can add inputs 15in any order!
• 66. With hierarchical meshes, we can add inputs 15in any order!
• 67. With hierarchical meshes, we can add inputs 15in any order! Goal: Combinatorial Divide and Conquer
• 68. With hierarchical meshes, we can add inputs 15in any order! Goal: Combinatorial Divide and Conquer Old: Progress was decreasing the radius by a factor of 2.
• 69. With hierarchical meshes, we can add inputs 15in any order! Goal: Combinatorial Divide and Conquer Old: Progress was decreasing the radius by a factor of 2. New: Decrease number of points in a ball by a factor of 2.
• 70. Range Nets 16 “Nets catch everything that’s big.”
• 71. Range Nets 16 “Nets catch everything that’s big.” Deﬁnition. A range space is a pair (X, R), where X is a set (the vertices) and R is a collection of subsets (the ranges).
• 72. Range Nets 16 “Nets catch everything that’s big.” Deﬁnition. A range space is a pair (X, R), where X is a set (the vertices) and R is a collection of subsets (the ranges). For us X = P and R is the set of open balls.
• 73. Range Nets 16 “Nets catch everything that’s big.” Deﬁnition. A range space is a pair (X, R), where X is a set (the vertices) and R is a collection of subsets (the ranges). For us X = P and R is the set of open balls. Deﬁnition. Given a range space (X, R), a set N ⊂ X is a range space ε-net if for all ranges r ∈ R that contain at least ε|X| vertices, r contains a vertex from N .
• 74. Range Nets 16 “Nets catch everything that’s big.” Deﬁnition. A range space is a pair (X, R), where X is a set (the vertices) and R is a collection of subsets (the ranges). For us X = P and R is the set of open balls. Deﬁnition. Given a range space (X, R), a set N ⊂ X is a range space ε-net if for all ranges r ∈ R that contain at least ε|X| vertices, r contains a vertex from N . Theorem: [Chazelle & Matousek 96] For ε, d fixed constants, ε-nets of size O(1) can be computed in O(n) deterministic time.
• 75. Ordering the inputs 17 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
• 76. Ordering the inputs 17 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
• 77. Ordering the inputs 17 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
• 78. Ordering the inputs 17 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
• 79. Ordering the inputs 17 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat.
• 80. Ordering the inputs 17 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat. Lemma. Let M be a set of vertices. If an open ball B contains no points of M , then B is contained in the union of d D-balls of M .
• 81. Ordering the inputs 17 For each D-Ball, select a 1/2d-net of the points it contains. Take the union of these nets and call it a round. Insert these. Repeat. log(n) Rounds Lemma. Let M be a set of vertices. If an open ball B contains no points of M , then B is contained in the union of d D-balls of M .
• 82. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round.
• 83. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. x
• 84. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. x
• 85. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y x
• 86. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y x
• 87. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls x
• 88. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls x
• 89. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x
• 90. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x x
• 91. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x x
• 92. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x x
• 93. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x Only O(1) points are added x to any D-ball in a round.
• 94. Amortized Cost of a Round is O(n) 18 Watch an uninserted point x. Claim: x only gets touched O(1) times per round. y y touches x => y is “close” to x close = 2 hops among D-balls Only O(1) D-balls are within 2 hops. x Only O(1) points are added x to any D-ball in a round. O(n) total work per round.
• 95. Some Takeaways 19
• 96. Some Takeaways 19 Voronoi refinement meshes give structure to points, especially with respect to the ambient space.
• 97. Some Takeaways 19 Voronoi refinement meshes give structure to points, especially with respect to the ambient space. For d not too big, meshing is fast (O(n log n)).
• 98. Some Takeaways 19 Voronoi refinement meshes give structure to points, especially with respect to the ambient space. For d not too big, meshing is fast (O(n log n)). There are many possible new applications, waiting to be discovered (i.e. any time you would have used a Voronoi diagram).
• 99. Thanks.