Your SlideShare is downloading. ×
Learning with Nets and Meshes
Upcoming SlideShare
Loading in...5
×

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.
Text the download link to your phone
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.

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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.” Definition. 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.” Definition. 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.” Definition. 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. Definition. 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.” Definition. 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. Definition. 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.

×