Learning with Nets and Meshes

100
Learning with Nets and Meshes Don Sheehy

description

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.

Transcript of Learning with Nets and Meshes

Page 1: Learning with Nets and Meshes

Learning with Nets and Meshes

Don Sheehy

Page 2: Learning with Nets and Meshes

Thanks to my collaborators:

Benoit HudsonGary Miller

Todd PhillipsSteve Oudot

2

Page 3: Learning with Nets and Meshes

Point Clouds in low to medium dimensional ambient space.

Rule of thumb: d! or 2d2

is okay but nd is not.

3

Page 4: Learning with Nets and Meshes

There are many geometric inference problems that could benefit from meshing.

Discretize SpaceApproximate FunctionsAdapt to densityDescribe the space around the input.

4

Page 5: Learning with Nets and Meshes

Meshing 5Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

n = |P |

Page 6: Learning with Nets and Meshes

Meshing 5Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

n = |P |

Page 7: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

Page 8: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

Input: P ! Rd

Page 9: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Page 10: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Page 11: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Page 12: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Offsets

Page 13: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Offsets

Compute the Homology

Page 14: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Offsets

Compute the Homology

Page 15: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Offsets

Compute the Homology

Page 16: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Offsets

Compute the Homology

Page 17: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Offsets

Compute the Homology

Page 18: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Offsets

Compute the Homology

Page 19: Learning with Nets and Meshes

Points, offsets, homology, and persistence.

P! =!

p!P

ball(p,!)

Input: P ! Rd

Offsets

Compute the Homology

Persistent

Page 20: Learning with Nets and Meshes

Geometric Approximation

Topologically Equivalent

Page 21: Learning with Nets and Meshes

Geometric Approximation

Topologically Equivalent

Page 22: Learning with Nets and Meshes

Complexity: How big is the mesh?

8

Page 23: Learning with Nets and Meshes

Complexity: How big is the mesh?

8How many Steiner Points?

Page 24: Learning with Nets and Meshes

Complexity: How big is the mesh?

8How many Steiner Points?

|M | =

!!

1

lfsP (x)ddx

Page 25: Learning with Nets and Meshes

Complexity: How big is the mesh?

8How many Steiner Points?

|M| = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08].

|M | =

!!

1

lfsP (x)ddx

Page 26: Learning with Nets and Meshes

Complexity: How big is the mesh?

8How many Steiner Points?

|M| = O(n) as long as there are no big empty annuli with 2 or more points inside [MPS08].

How many simplices?

|M | =

!!

1

lfsP (x)ddx

Page 27: Learning with Nets and Meshes

Complexity: How big is the mesh?

8How many Steiner Points?

|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.Compare to for general Delaunay triangulations.Constants depend on aspect ratio.

|M |!d/2"

|M | =

!!

1

lfsP (x)ddx

Page 28: Learning with Nets and Meshes

Complexity: How hard is it to compute a mesh? 9

Page 29: Learning with Nets and Meshes

Complexity: How hard is it to compute a mesh? 9

O(n log n+ |M |)

Page 30: Learning with Nets and Meshes

Complexity: How hard is it to compute a mesh? 9

O(n log n+ |M |)

Point Location

Page 31: Learning with Nets and Meshes

Complexity: How hard is it to compute a mesh? 9

O(n log n+ |M |)

Point Location Output Sensitive

Page 32: Learning with Nets and Meshes

Complexity: How hard is it to compute a mesh? 9

O(n log n+ |M |)

This is optimal in the comparison model.

Point Location Output Sensitive

Page 33: Learning with Nets and Meshes

Complexity: How hard is it to compute a mesh? 9

O(n log n+ |M |)

O(n log n)

This is optimal in the comparison model.

Point Location Output Sensitive

Page 34: Learning with Nets and Meshes

Complexity: How hard is it to compute a mesh? 9

O(n log n+ |M |)

O(n log n)

This is optimal in the comparison model.

Point Location Output Sensitive

Compute a hierarchical quality mesh.

Page 35: Learning with Nets and Meshes

Complexity: How hard is it to compute a mesh? 9

O(n log n+ |M |)

O(n log n) O(|M |)

This is optimal in the comparison model.

Point Location Output Sensitive

Finishing post-process.Compute a hierarchical quality mesh.

+

Page 36: Learning with Nets and Meshes

The Delaunay Triangulation is the dual of the Voronoi Diagram.

10

Page 37: Learning with Nets and Meshes

The Delaunay Triangulation is the dual of the Voronoi Diagram.

10

Page 38: Learning with Nets and Meshes

The Delaunay Triangulation is the dual of the Voronoi Diagram.

10

Page 39: Learning with Nets and Meshes

The Delaunay Triangulation is the dual of the Voronoi Diagram.

10

D-ball

Page 40: Learning with Nets and Meshes

Quality Meshes 11

Page 41: Learning with Nets and Meshes

Quality Meshes 11

D-Balls are Constant Ply

Page 42: Learning with Nets and Meshes

Quality Meshes 11

D-Balls are Constant Ply

Total Complexity is linear in |M|

Page 43: Learning with Nets and Meshes

Quality Meshes 11

D-Balls are Constant Ply

Total Complexity is linear in |M|

No D-ball intersects more than O(1) others.

Page 44: Learning with Nets and Meshes

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.

Page 45: Learning with Nets and Meshes

We replace quality with hierarchical quality. 12

Page 46: Learning with Nets and Meshes

We replace quality with hierarchical quality. 12

Page 47: Learning with Nets and Meshes

We replace quality with hierarchical quality. 12

Page 48: Learning with Nets and Meshes

We replace quality with hierarchical quality. 12

Page 49: Learning with Nets and Meshes

We replace quality with hierarchical quality. 12

Inside the cage: Old definition of quality.

Page 50: Learning with Nets and Meshes

We replace quality with hierarchical quality. 12

Inside the cage: Old definition of quality.Outside: Treat the whole cage as a single object.

Page 51: Learning with Nets and Meshes

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.

Page 52: Learning with Nets and Meshes

The sparse meshing model: 13

Page 53: Learning with Nets and Meshes

The sparse meshing model: 13

1 Build a Voronoi diagram incrementally.

Page 54: Learning with Nets and Meshes

The sparse meshing model: 13

1 Build a Voronoi diagram incrementally.

2 Interleave input and Steiner point insertions.

Page 55: Learning with Nets and Meshes

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.

Page 56: Learning with Nets and Meshes

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.

Page 57: Learning with Nets and Meshes

Point Location and Geometric D&C 14

Idea: Store the uninserted points in the D-balls.When the balls change, make local updates.

Page 58: Learning with Nets and Meshes

Point Location and Geometric D&C 14

Idea: Store the uninserted points in the D-balls.When the balls change, make local updates.

Page 59: Learning with Nets and Meshes

Point Location and Geometric D&C 14

Idea: Store the uninserted points in the D-balls.When the balls change, make local updates.

Page 60: Learning with Nets and Meshes

Point Location and Geometric D&C 14

Idea: Store the uninserted points in the D-balls.When the balls change, make local updates.

Page 61: Learning with Nets and Meshes

Point Location and Geometric D&C 14

Idea: Store the uninserted points in the D-balls.When the balls change, make local updates.

Page 62: Learning with Nets and Meshes

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 mosta constant number of times before the radius ofthe largest D-ball containing it goes down by afactor of 2.

Page 63: Learning with Nets and Meshes

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 mosta constant number of times before the radius ofthe largest D-ball containing it goes down by afactor of 2.

Geometric Divide and Conquer: O(n log!)

Page 64: Learning with Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

15

Page 65: Learning with Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

15

Page 66: Learning with Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

15

Page 67: Learning with Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

15

Goal: Combinatorial Divide and Conquer

Page 68: Learning with Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

15

Goal: Combinatorial Divide and Conquer

Old: Progress was decreasing the radius by a factor of 2.

Page 69: Learning with Nets and Meshes

With hierarchical meshes, we can add inputs in any order!

15

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.

Page 70: Learning with Nets and Meshes

Range Nets 16“Nets catch everything that’s big.”

Page 71: Learning with Nets and Meshes

Range Nets 16

Definition. A range space is a pair (X,R),where X is a set (the vertices) and R is acollection of subsets (the ranges).

“Nets catch everything that’s big.”

Page 72: Learning with Nets and Meshes

Range Nets 16

Definition. A range space is a pair (X,R),where X is a set (the vertices) and R is acollection of subsets (the ranges).

For us X = P and R is the set of open balls.

“Nets catch everything that’s big.”

Page 73: Learning with Nets and Meshes

Range Nets 16

Definition. A range space is a pair (X,R),where X is a set (the vertices) and R is acollection of subsets (the ranges).

Definition. Given a range space (X,R),a set N ! X is a range space !-net iffor all ranges r " R that contain at least!|X| vertices, r contains a vertex from N .

For us X = P and R is the set of open balls.

“Nets catch everything that’s big.”

Page 74: Learning with Nets and Meshes

Range Nets 16

Definition. A range space is a pair (X,R),where X is a set (the vertices) and R is acollection of subsets (the ranges).

Definition. Given a range space (X,R),a set N ! X is a range space !-net iffor all ranges r " R that contain at least!|X| vertices, r contains a vertex from N .

For us X = P and R is the set of open balls.

“Nets catch everything that’s big.”

Theorem: [Chazelle & Matousek 96] For ε, d fixed constants, ε-nets of size O(1) can be computed in O(n) deterministic time.

Page 75: Learning with Nets and Meshes

Ordering the inputs 17For 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.

Page 76: Learning with Nets and Meshes

Ordering the inputs 17For 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.

Page 77: Learning with Nets and Meshes

Ordering the inputs 17For 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.

Page 78: Learning with Nets and Meshes

Ordering the inputs 17For 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.

Page 79: Learning with Nets and Meshes

Ordering the inputs 17For 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.

Page 80: Learning with Nets and Meshes

Ordering the inputs 17For 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 Bcontains no points of M , then B is contained in theunion of d D-balls of M .

Page 81: Learning with Nets and Meshes

Ordering the inputs 17For 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 Bcontains no points of M , then B is contained in theunion of d D-balls of M .

log(n) Rounds

Page 82: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

Page 83: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

Page 84: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

Page 85: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

y

Page 86: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

x

y

Page 87: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

x

y

Page 88: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

x

y

Page 89: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

Page 90: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

x

Page 91: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

x

Page 92: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

x

Page 93: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

Only O(1) points are added to any D-ball in a round.

x

Page 94: Learning with Nets and Meshes

Amortized Cost of a Round is O(n) 18Watch an uninserted point x.Claim: x only gets touched O(1) times per round.

y touches x => y is “close” to xclose = 2 hops among D-balls

Only O(1) D-balls are within 2 hops.x

y

Only O(1) points are added to any D-ball in a round.

O(n) total work per round.

x

Page 95: Learning with Nets and Meshes

Some Takeaways 19

Page 96: Learning with Nets and Meshes

Some Takeaways 19

Voronoi refinement meshes give structure to points, especially with respect to the ambient space.

Page 97: Learning with Nets and Meshes

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

Page 98: Learning with Nets and Meshes

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

Page 99: Learning with Nets and Meshes

Thanks.

Page 100: Learning with Nets and Meshes