54
Searching for Structure in Geometry Processing Misha Kazhdan

Searching for Structure in Geometry Processing

Embed Size (px)

DESCRIPTION

Searching for Structure in Geometry Processing. Misha Kazhdan. What do we want to compute? (What established theory can we apply?) How do we compute it effectively? (How do we implement efficiently/robustly?). Geometry Processing in Detail. Symmetry Detection Discrete Continuous - PowerPoint PPT Presentation

Citation preview

Page 1: Searching for Structure in Geometry Processing

Searching for Structure in Geometry Processing

Misha Kazhdan

Page 2: Searching for Structure in Geometry Processing

What do we want to compute?(What established theory can we apply?)

How do we compute it effectively?(How do we implement efficiently/robustly?)

Page 3: Searching for Structure in Geometry Processing

Geometry Processing in Detail

• Symmetry Detection– Discrete– Continuous

• Solid Reconstruction– Computing the indicator function– Iso-surface extraction– Surface extension

Page 4: Searching for Structure in Geometry Processing

Discrete Symmetry Detection

Identify the rotational (and reflective) symmetries of a set of a shape

Reflective 4-Fold Axial

Page 5: Searching for Structure in Geometry Processing

What is a shape?

A shape is a finite set of points .

Page 6: Searching for Structure in Geometry Processing

What do we want to compute?

Given , find and such that a rotation by angle about maps to itself.

1. Averaging commutes with affine maps: is the center of mass.2. The rotation is a bijection: .

Page 7: Searching for Structure in Geometry Processing

Naïve Implementation

FindRotationalSymmetries( )1. Fix 2. For each 3. Sym[] = true 4. For each 5. If( ): Sym[] = false

𝑂 ¿

𝑂 ¿

Naïve run-time complexity is .

𝑂 ¿

Page 8: Searching for Structure in Geometry Processing

Add structure to the problem:Sort/order points by angle: – Testing if is in is sub-linear time.– Rotations preserve circular order.

Rotational symmetries act by circular shift.

How can we compute it effectively?

𝑝0

𝑝1

𝑝3

𝑝2

𝑝4

𝑝5[Wolter et al., 1985] [Attalah, 1985]

Page 9: Searching for Structure in Geometry Processing

FindRotationalSymmetries( )1. SortPolarCoordinatesByAngle( )2. 3. FastSubstring( , )

Efficient Implementation

𝑂 ¿𝑂 ¿𝑂 ¿

20∘

40∘

60∘

60∘

60∘

20∘20∘

40∘

40∘(𝟏 ,20∘)

(𝟏 ,80∘)

(𝟐 ,100∘)

(𝟏 ,140∘)

(𝟏 ,200∘)

(𝟐 ,220∘)(𝟏 ,260∘)

(𝟏 ,320∘)(𝟐 ,340∘)

Complexity is .

[Wolter et al., 1985] [Attalah, 1985]

Page 10: Searching for Structure in Geometry Processing

Given strings and , find all matches of in .

FindSubstring( , )1. For :2. For :3. If( ) break4. If( ) output

[Knuth, Morris, and Pratt, 1977]

𝑂 ¿

Naïve run-time complexity is .

𝑂 ¿

Page 11: Searching for Structure in Geometry Processing

Example:

– A shift of by 1 position could only match if the first and last 4 letters of are the same.

– A shift of by 2 positions could only match if the first and last 3 letters of are the same.

– A shift of by less than positions could only match if a suffix of is also a prefix of .

[Knuth, Morris, and Pratt, 1977]

𝐵=𝑎𝑏𝑎𝑏𝑎𝑐𝐴=𝑎𝑏𝑎𝑏𝑎𝑏𝑎𝑐

~𝐵

𝐵=𝑎𝑏𝑎𝑏𝑎𝑐𝐵=𝑎𝑏𝑎𝑏𝑎𝑐

Pre-compute the prefix/suffix structure of :*

*a.k.a. the “partial matching table”.

Page 12: Searching for Structure in Geometry Processing

What do we want to compute?

Given , find and such that a rotation by angle about maps to itself.

Only tells us about perfect matches.

Doesn’t work for noisy data.

Page 13: Searching for Structure in Geometry Processing

Continuous Symmetry Detection

Measure the extent of rotational(and reflective) symmetries of a shape

1 2 3 4 5 6 -fold

sym

[Zabrodsky et al., 1995]

Page 14: Searching for Structure in Geometry Processing

What is a shape?

A shape is a function from the circle/diskinto the real values.*

Examples:– Circular extent function– Arc-length curvature– Distance function– Etc.

∗ The representation needs to commute with the action of rotation.

𝜃

[Zahn et al., 1972] [Horn, 1984] [Ankerst et al., 1999] [Vranic and Saupe, 2001] …This imbues “shape” with the structure of an inner-product space:

Page 15: Searching for Structure in Geometry Processing

What is symmetry?

If is a symmetry of a shape, then is also a symmetry of the shape, for all .

Symmetries are associated with groups.

Page 16: Searching for Structure in Geometry Processing

What do we want to compute?

Given (or ) and given a symmetry group , compute the distance from to the nearest -symmetric function.

1. Linear structure: -symmetric functions are a linear subspace.

2. Group + inner-product structure: Projection is averaging

Page 17: Searching for Structure in Geometry Processing

What do we want to compute?

Given (or ) and given a symmetry group , compute the distance from to the nearest -symmetric function.

Page 18: Searching for Structure in Geometry Processing

Naïve Implementation

FindRotationalSymmetries( )1. = Function( )2. For each 3. For each 4.

𝑂 (𝑁 )𝑂 (𝑘 )

𝑂 (𝑁 )/𝑂 (𝑁2 )

Naïve run-time complexity is:• Circle: • Disk:

Page 19: Searching for Structure in Geometry Processing

Computational Structure:1. Memoization– is evaluated times but the set of values only has

complexity . Pre-compute the values for every angle and

perform constant-time look up at run-time.

How can we compute it effectively?

Page 20: Searching for Structure in Geometry Processing

Computational Structure:2. Fast Correlation– The distance can be expressed as:

with the auto-correlation of . Correlation in the spatial domain is multiplication in

the frequency domain – . The change of basis to/from frequency space can be

done with an FFT – [Gauss, 1805][Cooley and Tukey, 1965]

How can we compute it effectively?

Page 21: Searching for Structure in Geometry Processing

Efficient Implementation

FindRotationalSymmetries( )1. = Function( )2. = AutoCorrelation( )3. For each 4. For each 5.

𝑂 (𝑁 )𝑂 (𝑘 )

𝑂 (1 )

Run-time complexity is:•Circle: •Disk:

𝑂 (𝑁 log𝑁 ) /𝑂¿

Page 22: Searching for Structure in Geometry Processing

Geometry Processing in Detail

• Symmetry Detection– Discrete– Continuous

• Solid Reconstruction– Computing the indicator function– Iso-surface extraction– Surface extension

Page 23: Searching for Structure in Geometry Processing

Solid Reconstruction

Fit a solid to a set of sample points

Page 24: Searching for Structure in Geometry Processing

[Input] What is a shape?

A shape is a finite subset , corresponding to positions, normals, and area.Shape is an object over which you integrate 2-forms (i.e. a 2-current).

Page 25: Searching for Structure in Geometry Processing

[Output] What is a shape?

A shape is a function telling us whether apoint is inside or outside the solid:

Page 26: Searching for Structure in Geometry Processing

What do we want to compute?

Compute the (smoothed) indicator function:1. Compute the gradients2. Integrate the gradients

𝑃={(𝑝 ,�⃗� ,𝜎 ) } 𝛻 𝜒 𝜒

[Kazhdan, 2005][Kazhdan et al., 2006]

Page 27: Searching for Structure in Geometry Processing

Compute the Gradients

Since the indicator function is discontinuous, we seek the gradient of the smoothed function:

for some smoothing filter .

Page 28: Searching for Structure in Geometry Processing

Compute the Gradients

Convolution and differentiation commute:

Page 29: Searching for Structure in Geometry Processing

Compute the Gradients

The convolution at point is the integral of the signal times the shifted filter:

with .

Page 30: Searching for Structure in Geometry Processing

Compute the Gradients

The convolution at point is the integral of the signal times the shifted filter, which is the solid integral of the shifted filter:

with .

Page 31: Searching for Structure in Geometry Processing

Compute the Gradients

The partial is the divergence of a vector field:

Page 32: Searching for Structure in Geometry Processing

Compute the Gradients

The partial is the divergence of a vector field, so by Stokes’ Theorem:

Page 33: Searching for Structure in Geometry Processing

Compute the Gradients

Discretizing the integral, we get an estimate for the gradient at as a sum over the input points:

𝑃={(𝑝 ,�⃗� ,𝜎 ) } 𝛻 𝜒

Page 34: Searching for Structure in Geometry Processing

Integrate the Gradients

Given a target gradient field , the best fit scalar function is the solution to the Poisson Equation:

∗ May be subject to appropriate boundary conditions.

𝛻 𝜒 𝜒

Page 35: Searching for Structure in Geometry Processing

Naïve Implementation

ReconstructSolid( )1. ComputeNormalsAndArea*( ) 2. For :3. 4. : 5. 6. SolvePoisson( )

𝑂 (𝑁 3 )

𝑂 ¿

≥𝑂 (𝑁3 )

If we discretize over an grid and :• Storage Complexity: • Computational Complexity:

𝑂 (𝑁 3 )Note:Since this holds for any (smooth) filter, we can choose to be compactly supported so only samples close to contribute.

*[Rosenblatt, 1956] [Parzen, 1962] [Hoppe, 1994] [Mitra and Nguyen, 2003]

Page 36: Searching for Structure in Geometry Processing

How can we compute it effectively?

Structure of the Input/Output:• Points in should lie on a 2D manifold in .• should be constant away from the samples.

Adapt a space-partition to . Use the same space partition to discretize .

Page 37: Searching for Structure in Geometry Processing

Choosing a Space Partition

• Supports discretization of the linear system:– Octrees: [Losasso et al., 2004]– Adapted Tetrahedralizations: [Alliez et al., 2007]

• Supports efficient (hierarchical) solver:– Regular Grids: [Fedorenko, 1973] [Brandt, 1977]– Octrees: [Kazhdan and Hoppe, 2013]

Page 38: Searching for Structure in Geometry Processing

Efficient ImplementationReconstructSolid( )

1. ComputeNormalsAndArea( )2. ConstructOctree( )3. For :4. 5. s.t. 6. 7. : 8. HierarchicallySolvePoisson( )

𝑂 ¿

𝑂 ¿

𝑂 ¿

𝑂 (1 )

𝑂 ¿• Storage Complexity: • Computational Complexity:

Page 39: Searching for Structure in Geometry Processing

Iso-Surface Extraction

Extract the shape of the level-setof a discretely sampled function

Page 40: Searching for Structure in Geometry Processing

What is a shape?

A shape is a triangle mesh

Page 41: Searching for Structure in Geometry Processing

What do we want to compute?

Find a shape separating points with negative value from points with positive value.

1. Fit a function to the samples.2. Find the level-set: .

Inverse Function Theorem:The level-set will be manifold/water-tight if zero is not a singular value.

In general, the level-set of a function cannot be represented by a triangle mesh.

Page 42: Searching for Structure in Geometry Processing

How can we compute it effectively?

1. Adapt the function:For linear functions, the level-set is planar.

Given the samples:I. Tetrahedralize the positionsII. Fit the linear interpolant

to each tet’s vertex valuesIII. Extract the level-set of the

global function.Simplicial Structure:Adjacent tets share triangular faces.

The global function is continuous.[Doi and Koide, 1991]

Page 43: Searching for Structure in Geometry Processing

How can we compute it effectively?

2. Adapt the geometry:We need an approximate iso-surface that separates the samples.

Given the samples:I. Partition space into (convex) cellsII. Compute iso-edges on faces

that separate vertices with opposite signs

III. Extend the boundary curve to a surface in the interior

[Lorensen and Cline, 1987] [Schaefer and Warren, 2004]

Partition Structure:Faces/edges of the partition intersect trivially.

Separating surface is water-tight/manifold.

Page 44: Searching for Structure in Geometry Processing

Surface Extension

Find a surface whose boundary interpolates a 3D curve

Page 45: Searching for Structure in Geometry Processing

What is a shape?

A shape is a mapping from the unit disk into .

Page 46: Searching for Structure in Geometry Processing

What do we want to compute?

Given a simple/closed curve , find the smooth parameterization that agrees with :*

– If lies on a convex domain,the map is an embedding.[Meeks and Yau, 1980]

– This is a minimal area surface,which is a fixed point of MCF.[Pinkall and Polthier, 1993]

∗ Gradients, norms, and measures defined w.r.t.

To discretize MCF, we need to refine the mesh, increasing the complexity of the shape.

Page 47: Searching for Structure in Geometry Processing

What do we want to compute?

Fixing the position of the vertices, we want a triangulation that minimizes the area.

Page 48: Searching for Structure in Geometry Processing

How can we compute it effectively?

Fixing the position of the vertices, we want a triangulation that minimizes the area.

Leverage the structure of the solution:– Sub-triangulations are minimal– Sub-triangulations recur

Dynamic programming solution:– time– space

[Klincesk, 1980] [Barequet and Sharir, 1995]

Page 49: Searching for Structure in Geometry Processing

Searching for Structure

Page 50: Searching for Structure in Geometry Processing

Searching for Structure

What do we want to compute?What is the structure of the class we are working with?

• Ordered set• Inner-product space• Group representation• Currents

Page 51: Searching for Structure in Geometry Processing

Searching for Structure

What do we want to compute?What is the structure of the class we are working with?

How do we compute it effectively?What is the structure of the computation we are performing?

• Memoization• Divide-and-conquer• Dynamic programming

• Ordered set• Inner-product space• Group representation• Currents

Page 52: Searching for Structure in Geometry Processing

Searching for Structure

What do we want to compute?What is the structure of the class we are working with?

How do we compute it effectively?What is the structure of the computation we are performing?

What is the structure of the instance we are considering?

• Partial matching table• Adaptive octree

• Memoization• Divide-and-conquer• Dynamic programming

• Ordered set• Inner-product space• Group representation• Currents

Page 53: Searching for Structure in Geometry Processing

Thank you

Page 54: Searching for Structure in Geometry Processing

Questions• Can iso-surface extraction be extended to more general space partitions?• Can area minimizing triangulations be obtained through successive edge

flips? If so, how does the efficiency compare?• Is there a Dirichlet minimizing triangulation [Rippa, 1990] for a closed

polygonal curve in 3D? Is it related to area minimizing triangulation? • Does the optimality of the Delaunay triangulation translate into optimality

of the extracted level-set?• Is the minimal area triangulation of a simple closed polygon on a convex

surface guaranteed to not self-intersect?• Extend symmetry detection to circular/spherical parameterizations by

redefining the “action of ” on functions.• We don’t need the full power of linearity for symmetry detection. What is

the minimal structure needed to apply representation theory methods?