Upload
vera-turner
View
28
Download
2
Tags:
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
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
• Solid Reconstruction– Computing the indicator function– Iso-surface extraction– Surface extension
Discrete Symmetry Detection
Identify the rotational (and reflective) symmetries of a set of a shape
Reflective 4-Fold Axial
What is a shape?
A shape is a finite set of points .
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: .
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 .
𝑂 ¿
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]
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]
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 .
𝑂 ¿
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”.
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.
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]
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:
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.
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
What do we want to compute?
Given (or ) and given a symmetry group , compute the distance from to the nearest -symmetric function.
Naïve Implementation
FindRotationalSymmetries( )1. = Function( )2. For each 3. For each 4.
𝑂 (𝑁 )𝑂 (𝑘 )
𝑂 (𝑁 )/𝑂 (𝑁2 )
Naïve run-time complexity is:• Circle: • Disk:
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?
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?
Efficient Implementation
FindRotationalSymmetries( )1. = Function( )2. = AutoCorrelation( )3. For each 4. For each 5.
𝑂 (𝑁 )𝑂 (𝑘 )
𝑂 (1 )
Run-time complexity is:•Circle: •Disk:
𝑂 (𝑁 log𝑁 ) /𝑂¿
Geometry Processing in Detail
• Symmetry Detection– Discrete– Continuous
• Solid Reconstruction– Computing the indicator function– Iso-surface extraction– Surface extension
Solid Reconstruction
Fit a solid to a set of sample points
[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).
[Output] What is a shape?
A shape is a function telling us whether apoint is inside or outside the solid:
What do we want to compute?
Compute the (smoothed) indicator function:1. Compute the gradients2. Integrate the gradients
𝑃={(𝑝 ,�⃗� ,𝜎 ) } 𝛻 𝜒 𝜒
[Kazhdan, 2005][Kazhdan et al., 2006]
Compute the Gradients
Since the indicator function is discontinuous, we seek the gradient of the smoothed function:
for some smoothing filter .
Compute the Gradients
Convolution and differentiation commute:
Compute the Gradients
The convolution at point is the integral of the signal times the shifted filter:
with .
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 .
Compute the Gradients
The partial is the divergence of a vector field:
Compute the Gradients
The partial is the divergence of a vector field, so by Stokes’ Theorem:
Compute the Gradients
Discretizing the integral, we get an estimate for the gradient at as a sum over the input points:
𝑃={(𝑝 ,�⃗� ,𝜎 ) } 𝛻 𝜒
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.
𝛻 𝜒 𝜒
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]
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 .
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]
Efficient ImplementationReconstructSolid( )
1. ComputeNormalsAndArea( )2. ConstructOctree( )3. For :4. 5. s.t. 6. 7. : 8. HierarchicallySolvePoisson( )
𝑂 ¿
𝑂 ¿
𝑂 ¿
𝑂 (1 )
𝑂 ¿• Storage Complexity: • Computational Complexity:
Iso-Surface Extraction
Extract the shape of the level-setof a discretely sampled function
What is a shape?
A shape is a triangle mesh
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.
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]
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.
Surface Extension
Find a surface whose boundary interpolates a 3D curve
What is a shape?
A shape is a mapping from the unit disk into .
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.
What do we want to compute?
Fixing the position of the vertices, we want a triangulation that minimizes the area.
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]
Searching for Structure
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
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
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
Thank you
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?