Learning with Nets and Meshes

  • 237 views
Uploaded 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.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
237
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
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.