Title: Reconstruction of Solid Models from Oriented Point Sets
1Reconstruction of Solid Models from Oriented
Point Sets
- Misha Kazhdan
- Johns Hopkins University
2Shape Spectrum
- There are many ways to represent a shape
- Point Set
- Polygon Soup
- Polygonal Mesh
- Solid Model
3Equivalence of Representations
- There are many ways to represent a shape
- Point Set
- Polygon Soup
- Polygonal Mesh
- Solid Model
?
In one direction, the transition between
representations is straight-forward
4Equivalence of Representations
- There are many ways to represent a shape
- Point Set
- Polygon Soup
- Polygonal Mesh
- Solid Model
?
?
In one direction, the transition between
representations is straight-forward
The challenge is to transition in the other
direction
5Equivalence of Representations
- There are many ways to represent a shape
- Point Set
- Polygon Soup
- Polygonal Mesh
- Solid Model
?
The goal of this work is to define a method for
computing solid models from oriented point sets.
6Applications
Disjoint Model
Zippered Model
7Applications
- Surface Blending
- Hole-Filling
Model with Hole
Water-Tight Model
8Applications
- Surface Blending
- Hole-Filling
- Compression
Geometry Topology Representation
Geometry Representation
9Applications
- Surface Blending
- Hole-Filling
- Compression
- Simplification
Original Model871,000 Triangles
Simplified Model95,000 Triangles
10Related Work
- Three general approaches
- Computational Geometry
- Boissonnat, 1984 Edelsbrunner, 1984
- Amenta et al., 1998 Dey et al., 2003
- Surface Fitting
- Terzopoulos et al., 1991 Chen et al., 1995
- Implicit Function Fitting
- Hoppe et al., 1992 Curless et al., 1996
- Whitaker, 1998 Carr et al., 2001
- Davis et al., 2002 Ohtake et al., 2004
- Turk et al., 2004 Shen et al., 2004
11Related Work
- Implicit Function Fitting
- Use the point samples to define an function whose
values at the sample positions are zero.
lt0
0
gt0
Sample Points
F(x,y)
12Related Work
- Implicit Function Fitting
- Use the point samples to define an function whose
values at the sample positions are zero. - Extract the iso-surface with iso-value equal to
zero.
lt0
F(x,y) 0
0
F(x,y)gt0
F(x,y)lt0
gt0
Sample Points
F(x,y)0
13Related Work
- Implicit Function Fitting
- Use the point samples to define an function whose
values at the sample positions are zero. - Extract the iso-surface with iso-value equal to
zero.
gt0
F(x,y) 0
0
F(x,y)lt0
F(x,y)gt0
How should we define the implicit function so
that the reconstruction fits the samples?
lt0
Sample Points
F(x,y)0
14Outline
- Introduction
- Related Work
- Approach
- The Divergence Theorem
- Reduction to Volume Integration
- Implementation
- Results
- Conclusion
15Divergence Theorem
- Given a vector field F and a region V
- The volume integral of ??F over V and the surface
integral of F over ?V are equal
?V
V
16Reduction to Volume Integration (Step 1)
- Characteristic Function
- The characteristic function ?V of a solid V is
the function
V
17Reduction to Volume Integration (Step 2)
- Fourier Coefficients
- The Fourier coefficients of the characteristic
function give an expression of ?V as a sum of
complex exponentials
18Reduction to Volume Integration (Step 3)
- Volume Integration
- The Fourier coefficients of the characteristic
function ?V can be obtained by integrating
19Reduction to Volume Integration (Step 3)
- Volume Integration
- The Fourier coefficients of the characteristic
function ?V can be obtained by integrating - since the characteristic function is one inside
of V and zero everywhere else.
20Applying the Divergence Theorem
- Surface Integration
- If Flmn(x,y,z) is any function whose divergence
is equal to the (l,m,n)-th complex
exponentialapplying the Divergence Theorem,
the volume integral can be expressed as a surface
integral
21Reconstruction Algorithm
- Given an oriented point sample (pi,ni)
- Compute a Monte-Carlo approximation of the
Fourier coefficients of the characteristic
function - Apply the inverse Fourier Transform to obtain the
characteristic function. - Extract the reconstruction an iso-surface of the
characteristic function
22Algorithm Implementation
- Efficiency
- We show that the computation of the Fourier
coefficients is actually a convolution, reducing
the reconstruction complexity O(R5) ?
O(R3logR). - Non-Uniformity
- We provide a simple heuristic for assigning
weights to samples that may be non-uniformly
distributed.
23Outline
- Introduction
- Related Work
- Approach
- Results
- Resolution
- Sample Count
- Non-Uniformity
- Related Work
- Conclusion
24Results (Resolution)
100,000 Points
100,000 Points
100,000 Points
res1283 tris49,008 time001
res2563 tris199,796 time007
res643 tris11,672 timelt001
25Results (Sample Count)
100,000 Points
1000 Points
10,000 Points
res2563 tris200,704 time007
res2563 tris206,216 time007
res2563 tris199,796 time007
26Results (Non-Uniform Sampling)
100,000 Points
100,000 Points
100,000 Points
res2563 tris111,680 time009
res2563 tris220,324 time009
res2563 tris199,712 time009
27Results(Non-Uniform Sampling / Related Work)
100,000 Points
100,000 Points
100,000 Points
RBF Reconstruction
MPU Reconstruction
Our Reconstruction
res2563 tris302,000 time523
res2563 tris288,000 time039
res2563 tris286,916 time009
Ohtake et al. ACM TOG 03
Carr et al. SIGGRAPH 01
28Results (Noise / Related Work)
Original
RBF Reconstruction
Our Reconstruction
MPU Reconstruction
res2563 tris200,000 time2410 points100,000
res2563 tris205,000 time214 points100,000
res2563 tris174,824 time007 points100,000
Ohtake et al. ACM TOG 03
Carr et al. SIGGRAPH 01
29Outline
- Introduction
- Related Work
- Approach
- Results
- Conclusion
30Conclusion
- Properties
- Fast and simple to compute
- Independent of topology
- Robust to non-uniform sampling
- Robust to noise
- O(R3) memory footprint for O(R2) reconstruction
31Conclusion
- Theoretical Contribution
- Transformed the surface reconstruction problem
into a Volume integral - Used the Divergence Theorem to express the
integral as a surface integral - Used Monte-Carlo integration to approximate the
surface integral as a summation over an oriented
point sample
32Conclusion
- We presented an algorithm for reconstruction that
proceeds in three simple steps
33Conclusion
- We presented an algorithm for reconstruction that
proceeds in three simple steps - Splat the oriented points into a voxel grid
34Conclusion
- We presented an algorithm for reconstruction that
proceeds in three simple steps - Splat the oriented points into a voxel grid
- Convolve with a fixed filter
35Conclusion
- We presented an algorithm for reconstruction that
proceeds in three simple steps - Splat the oriented points into a voxel grid
- Convolve with a fixed filter
- Extract the iso-surface
36Thank You
Source and Executables http//www.cs.jhu.edu
/misha/Reconstruct3D
37Choosing the Functions Flmn
38Choosing the Functions Flmn
- There are many solutions to the equation
39Choosing the Functions Fl,m,n
- There are many solutions to the equation
- Examples
40Choosing the Functions Fl,m,n
- There are many solutions to the equation
- Examples
41Choosing the Functions Fl,m,n
- There are many solutions to the equation
- In our implementation, we choose the function
- This is the unique definition of Flmn with the
property that the reconstruction commutes with
translation and rotation.
42Choosing the Functions Fl,m,n
0o
30o
45o
Does not Commute
Commutes
43Choosing the Functions Fl,m,n
Does not Commute
Commutes
44Non-Uniform Sampling
45Non-Uniform Samples
- Challenge
- In a direct implementation of Monte-Carlo
integration, it is assumed that the samples are
uniformly distributed
46Non-Uniform Samples
- Challenge
- In a direct implementation of Monte-Carlo
integration, it is assumed that the samples are
uniformly distributed - However, often the oriented point samples may not
be uniformly distributed over the surface - Parts of scans may overlap
- Faces parallel to the view plane may be more
densely sampled - Compressed representations may store fewer points
in regions of low curvature
47Non-Uniform Samples
- Challenge
- If we have a sampling density ?i associated to
each sample xi, we can modify the summation
48Non-Uniform Samples
- Challenge
- If we have a sampling density ?i associated to
each sample xi, we can modify the summation - However, when we get an oriented point sample, we
usually arent given the sampling density at each
sample.
49Non-Uniform Samples
- Challenge
- If we have a sampling density ?i associated to
each sample xi, we can modify the summation - However, when we get an oriented point sample, we
usually arent given the sampling density at each
sample.
Non-Uniform Samples
Unweighted Reconstruction
50Non-Uniform Samples
- Approach
- Compute the sampling density at each sample by
counting the number of samples around it
51Non-Uniform Samples
- Approach
- Compute the sampling density at each sample by
counting the number of samples around it
?i1/2
52Non-Uniform Samples
- Approach
- Compute the sampling density at each sample by
counting the number of samples around it
?i1/1
53Non-Uniform Samples
- Approach
- Compute the sampling density at each sample by
counting the number of samples around it
?i1/3
54Non-Uniform Samples
- Approach
- Compute the sampling density at each sample by
counting the number of samples around it
?i1/4
55Non-Uniform Samples
- Approach
- Compute the sampling density at each sample by
counting the number of samples around it. - To do this efficiently, we splat the points
into a voxel grid and convolve with a low-pass
filter.
56Non-Uniform Samples
- Approach
- Compute the sampling density at each sample by
counting the number of samples around it. - To do this efficiently, we splat the points
into a voxel grid and convolve with a low-pass
filter. - We set ?i equal to the reciprocal of the value of
the convolution at point pi.
57Non-Uniform Samples
- Approach
- Compute the sampling density at each sample by
counting the number of samples around it. - To do this efficiently, we splat the points
into a voxel grid and convolve with a low-pass
filter. - We set ?i equal to the reciprocal of the value
convolution at point pi.
Non-Uniform Samples
Unweighted Reconstruction
Weighted Reconstruction
58Completing the Characteristic Function
59Completing the Characteristic Function
- In the generation of the characteristic function
we use the functions Flmn with - And we approximated an integral using the
Monte-Carlo approximation
60Completing the Characteristic Function
- In the generation of the characteristic function
we use the functions Flmn with - And we approximated an integral using the
Monte-Carlo approximation
The function Flmn is not defined when lmn0.
So, we can only reconstruct the characteristic
function up to an additive constant additive.
61Completing the Characteristic Function
- In the generation of the characteristic function
we use the functions Flmn with - And we approximated an integral using the
Monte-Carlo approximation
To approximate the surface integral, we need to
know the area of the surface ?V. Since this is
not given, we can only reconstruct the
characteristic function up to a multiplicative
constant.
62Completing the Characteristic Function
- To address the missing constants, we sample the
reconstructed characteristic function at the
sample points and compute the average value
63Completing the Characteristic Function
- To address the missing constants, we sample the
reconstructed characteristic function at the
sample points and compute the average value - Then we can set the values of the characteristic
function to be
64More Results
65Results (Positional Noise)
disp0 res2563 tris141,808 time007 points100,
000
dispradius/64 res2563 tris134,848 time007 poi
nts100,000
dispradius/128 res2563 tris139,468 time007 po
ints100,000
dispradius/32 res2563 tris124,300 time007 poi
nts100,000
66Results (Normal Noise)
angle0o res2563 tris141,808 time007 points10
0,000
angle30o res2563 tris141,876 time007 points1
00,000
angle15o res2563 tris141,776 time007 points1
00,000
angle45o res2563 tris142,048 time007 points1
00,000
67Results (Holes)
Original
Reconstruction
res2563 tris267,736 time007 points25,000