Joshua Horacsek, Usman Alim, Torsen Möller
(Calakli 2011)
Given a set of points, find a triangular mesh that "best" fits these points
Some review...
Reconstruction and representation of 3D objects with radial basis functions (Carr 2001)
Hermite radial basis functions Implicits (Macedo 2011)
Floating scale surface reconstruction (Fuhrmann 2014)
Reconstruction of solid models from oriented point sets (Kahzdan 2005)
Poisson Surface Reconstruction (Kahzdan 2006, 2014)
Surface Reconstruction from Oriented Point Cloud Using a Box-Spline on the BCC Lattice (Kim 2015)
If you can construct a "good" approximation for V, then you can obtain an indicator function via solving the poisson problem
Consider a model M
(Kazhdan 2006)
If we N have oriented points, denoted by the set
(Kazhdan 2006)
Then the we have
So we define
This is then distributed over nodes of an oct-tree, then a multi-grid conjugate gradient solver is used to invert the problem.
(Kazhdan 2006)
Problems?
What if we choose a non Cartesian lattice?
A 30% reduction in samples can be achieved on the BCC lattice v.s. the CC lattice
A 30% reduction in samples can be achieved on the BCC lattice v.s. the CC lattice.
The Body Centred Cubic lattice
Cartesian
Body Centered Cubic (BCC)
Face Centered Cubic (FCC)
Think about the Fourier transform of a sampled signal
(Entezari 2009)
A sampling of a function is equivalent to a periodization about its dual lattice.
Cartesian
Body Centered Cubic (BCC)
Face Centered Cubic (FCC)
FCC is the optimal sphere packing lattice, so the BCC lattice is the optimal sampling lattice.
A 30% reduction in samples can be achieved on the BCC lattice v.s. the CC lattice
The BCC lattice is generated by the matrix
Then extract the iso surface
We want to take the initial point-set and resample it onto a regular grid. But we want to respect the geometry of that grid.
We define V(x) as
Where L is a basis for
Using a minimization procedure, we find the functions that minimize
For every component.
In general the form we use to define a function space is
Box splines are piecewise polynomial functions that we use to span these spaces (think multivariate b-splines)
Defined by an s by n direction matrix
Example
If we have scattered data, how do we extrapolate those data?
But really, how do we approximate V(x)?
Intuitively, what do we want?
Suppose we look for some function
That minimizes the function
We get interpolation, but what about this energy function E(g)?
Define
Inner Product
Beppo-Levi Inner Product
We have the induced norms
Forces coefficients to be zero
(Volumetric) Smoothness
Our energy term is then
We can define filters that respect the geometry and approximation order of the space
Notice that
So we can use directional derivatives to take the divergence of V. This is a more natural approach on the BCC lattice
Use the digital filter
We can also do reconstructions on shifted bases, and reconstruct from an overdetermined basis....
Consider this as a "resampling" from the regular grid on to another regular grid, and a filtering that solves the Poisson problem.
We want to respect the approximation order of the space.
Fourier error kernel
It's possible to quantify the approximation error for a function given its sampling and reconstruction scheme
Extension to linear operators, residual error becomes
Here we have
We can use this to discretize the Laplacian and find an inverse filter that respects the approximation power of the space.
This leads to the proposition
Proposition:
We just need an appropriate filter, then we can transform the approximation into the Fourier domain, apply the filter, and take the inverse transform.
Find a level-set
Use an unambiguous marching cubes algorithm at a high resolution to extract
Use Surface Reconstruction Benchmark (Berger 2013) to compare between BCC and CC (plus FFT and Poisson Methods). Grid size is chosen carefully...
Look at noisy datasets
Try to get some quantitate results by
Look at average distance from the original model, and angular deviation
Function Space:
Basis:
Inverse Laplacian Filter:
Function Space:
Basis:
Inverse Laplacian Filter:
Fixed model
Variable model
Decent reconstructions, some problems
Thanks!