3d scanning instruments - banterle...[kazhdan et al., sgp 06] poisson surface reconstruction 1....
TRANSCRIPT
Surface Reconstruction
Gianpaolo Palma
Surface reconstruction
Inputβ’ Point cloud
β’ With or without normals
β’ Examples: multi-view stereo, union of range scan vertices
β’ Range scans
β’ Each scan is a triangular mesh
β’ Normal vectors derived by local connectivity
β’ All the scans in the same coordinate system
Problem
Surface Reconstruction
β’ Explicit approachβ’ Delaunay Triangulation
β’ Ball Pivoting
β’ Zippering
β’ Implicit approachβ’ Radial Basis Function
β’ Signed distance field from range scan
β’ Moving Least Square
β’ Smoothed Signed Distance Surface Reconstruction
β’ Poisson Surface Reconstruction
Delaunay Algorithm
β’ General triangulation on n points in d-dimensional space by partition of the covex-hull with d-simplex
β’ A triangulation such that for each d-simplex the circum-hypersphere doesnβt contains any other points
β’ The triangulation covers all the covex-hull defined by the input points
Delaunay Algorithm
β’ 2D case
Delaunay Algorithm
β’ 2D case
Delaunay Algorithm
β’ 2D case
VALID DELAUNAY
Delaunay Algorithm
β’ 2D case
VALID DELAUNAY NO VALID DELAUNAY
Delaunay Algorithm
β’ 3D case (triangle -> tetrahedron, circle->sphere)
Delaunay Algorithm
β’ Need a sculpting operation to extract the limit surface
[Boissonnat, TOG 84]
Delaunay Algorithm
β’ Problems
β’ Need clean data
β’ Slow
β’ Not always exist for d >= 3
Ball Pivoting
β’ Pick a ball radius, roll ball around surface, connect
what it hits
β’ Pivoting of a ball of fixed radius around an edge of the
current front adds a new triangles to the mesh
[Bernardini et al., TVCG 99]
Ball Pivoting
Ball Pivoting
Ball Pivoting
Ball Pivoting
Ball Pivoting
β’ Problem with different sampling density, but we can
use ball of increasing radius
β’ Problem with concavities
Ball Pivoting
Ball Pivoting
β’ Iterative approach
β’ Small Radius, capture high frequencies
β’ Large Radius, close holes (keeping mesh from
previous pass)
Zippering
β’ βZipperβ several scans to one single model
[Turk et al., SIGGRAPH 94]
Zippering
β’ Remove overlap regions (all the vertices of the
triangle have as neighbor a no-border vertex)
Zippering
β’ Project and intersect the boundary of B
Zippering
β’ Incorporate the new points in the triangulation
Zippering
β’ Remove overlap regions of A
Zippering
β’ Optimize triangulation
Zippering
β’ Preserve regular structure of each scan but problems
with intricate geometry, noise and small misalignment
Implicit Reconstruction
β’ Define a distance function
f with value < 0 outside
the shape and > 0 inside
the shape
β’ Extract the zeroβset
Implicit Reconstruction
Algorithmβ’ Input: Point cloud or range map
1. Estimation of the signed distance field
2. Evaluation of the function on an uniform grid
3. Mesh extraction via Marching Cubes
β’ Output: Triangular Mesh
β’ The existing algorithms differ on the method used to compute the signed distance filed
Signed Distance Function
β’ Construct SDF from point samples
β’ Distance to points is not enough
β’ Need inside/outside information
β’ Requires normal vectors
Normal Estimation for
Range Map
β’ Per-face normal
β’ Per-vertex normal
Normal Estimation for Point
Cloud
β’ Estimate the normal vector for each point
1. Extract the k-nearest neighbor point
2. Compute the best approximating tangent plane by
covariance analysis
3. Compute the normal orientation
[Hoppe et al., SIGGRAPH 92]
Normal Estimation for Point
Cloud
β’ Estimate the normal vector for each point
1. Extract the k-nearest neighbor point
2. Compute the best approximating tangent plane by
covariance analysis
3. Compute the normal orientation
[Hoppe et al., SIGGRAPH 92]
Normal Estimation for Point
Cloud
β’ Estimate the normal vector for each point
1. Extract the k-nearest neighbor point
2. Compute the best approximating tangent plane by
covariance analysis
3. Compute the normal orientation
[Hoppe et al., SIGGRAPH 92]
Principal Component
Analysis
β’ Fit a plane with center and normal to a set of
points
β’ Minimize least squares error
β’ Subject nonβlinear constraint
Principal Component
Analysis1. Compute barycenter (plane center)
2. Compute covariance matrix
3. Select as normal the eigenvector of the covariance matrix with the smallest eigenvalue
Normal Estimation for Point
Cloud
β’ Estimate the normal vector for each point
1. Extract the k-nearest neighbor point
2. Compute the best approximating tangent plane by
covariance analysis
3. Compute a coherent normal orientation
[Hoppe et al., SIGGRAPH 92]
Normal Orientation
β’ Build graph connecting neighboring points
β’ Edge (ij) exists if or
β’ Propagate normal orientation through graph
β’ For edge (ij) flip if
β’ Fails at sharp edges/corners
β’ Propagate along βsafeβ paths
β’ Build a minimum spanning tree with angleβbased edge
weights
SDF from tangent plane
β’ Signed distance from
tangent planes
β’ Points and normals determine
local tangent planes
β’ Use distance from closest
pointβs tangent plane
β’ Simple and efficient, but SDF
is not continuous
[Hoppe et al., SIGGRAPH 92]
SDF from tangent plane[Hoppe et al., SIGGRAPH 92]
150 SAMPLESRECONSTRUCTION
WITH A 503 GRID
Smooth SDF Approximation
β’ Use radial basis functions
(RBFs) to implicitly
represent surface
β’ Function such that the
value depends only on
the distance from the
origin or from a center
β’ Sum of radial basis
functions used to
approximate a function
Smooth SDF Approximation
β’ Give the n input points
β’ Approximate distance field with a shifted weighted
sum of radial basis functions
β’ Use the input points as centers of the radial functions
β’ Constrain:
β’ The approximated SDF must be continuous and
smooth
[Carr et al., SIGGRAPH 01]
Estimate the RBF weight
β’ Set a system of n equations
β’ Solve a linear system
[Carr et al., SIGGRAPH 01]
Estimate the RBF weight
β’ For the input point we have
β’ The RBF system is
β’ Problem: It gets the trivial solution
β’ We need additional constrains
β’ Off-surface point
[Carr et al., SIGGRAPH 01]
Off-surface Points
β’ For each point in data add 2
off-surface points on both
sides of surface
β’ Use normal data to find off-
surface points
[Carr et al., SIGGRAPH 01]
Off-surface Points
β’ Select an offset such that off-surface points do not
intersect other parts of the surface
β’ Adaptive offset: the off-surface point is constructed so
that the closest point is the surface point that
generated it
FIXED OFFSET ADAPTIVE OFFSET
[Carr et al., SIGGRAPH 01]
Radial Basis Function
β’ Wendland basis functions
β’ Compactly supported in
β’ Leads to sparse, symmetric positive-definite linear
system
β’ Resulting SDF is smooth
β’ But surface is not necessarily fair
β’ Not suited for highly irregular sampling
Radial Basis Function
β’ Triharmonic basis functions
β’ Globally supported function
β’ Leads to dense linear system
β’ SDF is smooth
β’ Provably optimal fairness
β’ Works well for irregular sampling
Radial Basis Function
SDF FROM
TANGENT PLANERBF
WENDLAND
RBF
TRIHARMONIC
RBF Reconstruction
Example [Carr et al., SIGGRAPH 01]
SDF from Range Scan
β’ Compute the SDF for each range scan
β’ Distance along scannerβs line of sight
β’ Compute a weighting function for each scan
β’ Use of different weights
β’ Compute global SDF by weighted average
[Curless et al., SIGGRAPH 96]
SDF from Range Scan[Curless et al., SIGGRAPH 96]
SDF
WEIGHTS
SDF from Range Scan
β’ Weighting functions
β’ Scanning angle
β’ Distance from the border
of the scanWITH BORDER WEIGHT
WITHOUT BORDER WEIGHT
SDF from Range Scan
β’ Restrict the function near the surface to avoid
interference with other scans
Moving Least Square
β’ Approximates a smooth surface from irregularly
sampled points
β’ Create a local estimate of the surface at every point in
space
β’ Implicit function is computed by local approximations
β’ Projection operator that projects points onto the MSL
surface
[Alexa et al., VIS 01]
β’ How to project e on the surface defined by the input
points
1. Get Neighborhood of e
Moving Least Square[Alexa et al., VIS 01]
β’ How to project e on the surface defined by the input
points
2. Find a local reference plane
minimizing the energy
Moving Least Square
Smooth, positive, and
monotonically decreasing
weight function
[Alexa et al., VIS 01]
β’ How to project e on the surface defined by the input
points
3. Find a polynomial approximation
minimizing the energy
Moving Least Square
2D coordinate of
the projection on H
[Alexa et al., VIS 01]
β’ How to project e on the surface defined by the input
points
4. Projection of e
5. Iterate if
Moving Least Square[Alexa et al., VIS 01]
Moving Least Squareβ’ Simpler projection approach using weighted average
position and normal
[Alexa et al., SPBG 04]
Moving Least Square
Poisson Surface
Reconstructionβ’ Reconstruct the surface of the model by solving for
the indicator function of the shape
( )
=
Mp
MppM
if0
if1
MIndicator function
[Kazhdan et al., SGP 06]
Indicator Function
β’ How to compute the indicator function?
MIndicator functionOriented points
[Kazhdan et al., SGP 06]
Indicator Function
β’ The gradient of the indicator function is a vector field that is
zero almost everywhere except at points near the surface,
where it is equal to the inward surface normal
Oriented pointsMIndicator gradient
0 0
0
0
0
0
[Kazhdan et al., SGP 06]
Integration as a Poisson Problem
β’ Represent the points by a vector field
β’ Find the function whose gradient best
approximates :
β’ Applying the divergence operator, we can transform
this into a Poisson problem:
[Kazhdan et al., SGP 06]
Poisson Surface
Reconstruction
1. Compute the divergence
π π
ββ
[Kazhdan et al., SGP 06]
Poisson Surface
Reconstruction
1. Compute the divergence
2. Solve the Poisson equation
π π
ββ Ξβ1
π π
[Kazhdan et al., SGP 06]
Poisson Surface
ReconstructionSolve the Poisson equation
βͺ Discretize over an octree
βͺ Update coarse β fine
[Kazhdan et al., SGP 06]
Poisson Surface
ReconstructionSolve the Poisson equation
βͺ Discretize over an octree
βͺ Update coarse β fine
[Kazhdan et al., SGP 06]
Poisson Surface
ReconstructionSolve the Poisson equation
βͺ Discretize over an octree
βͺ Update coarse β fine
[Kazhdan et al., SGP 06]
Poisson Surface
ReconstructionSolve the Poisson equation
βͺ Discretize over an octree
βͺ Update coarse β fine
[Kazhdan et al., SGP 06]
Poisson Surface
Reconstruction
β’ Advantages:
β’ Robust to noise
β’ Adapt to the sampling
density
β’ Can handle large models
β’ Disadvantages
β’ Over-smoothing
[Kazhdan et al., SGP 06]
Smooth Signed Distance
Surface Reconstruction
β’ Oriented point set
β’ Implicit surface
β’ Least square energy (data term and regularization
term)
[Calakli et al., PG 11]
Smooth Signed Distance
Surface Reconstruction
β’ Near the point data dominates the energy
β’ Make the function approximate the signed distance
function
β’ Away from the point data dominates the regularization
energy
β’ Tend to make the gradient vector field constant
[Calakli et al., PG 11]
Smooth Signed Distance
Surface Reconstruction
POISSON SSD
[Calakli et al., PG 11]
Screened Poisson Surface
Reconstruction
β’ Add discrete interpolation to the energy
β’ Encourage indicator function to be zero at samples
[Kazhdan et al., TOG 13]
Screened Poisson Surface
Reconstruction[Kazhdan et al., TOG 13]
π₯
π§
π₯
π§
π₯
π§
POISSON SSD SCREENED POISSON
Screened Poisson Surface
Reconstruction
β’ Sharper reconstruction
β’ Fast method (linear solver)
β’ But it assumes clean data
[Kazhdan et al., TOG 13]
π₯
π§
POISSON SCREENED POISSON
Referencesβ’ Boissonnat, Jean-Daniel. "Geometric structures for three-dimensional shape representation." ACM
Transactions on Graphics (TOG) 3.4 (1984): 266-286.
β’ Bernardini, Fausto, et al. "The ball-pivoting algorithm for surface reconstruction." IEEE transactions on visualization and computer graphics 5.4 (1999): 349-359.
β’ Turk, Greg, and Marc Levoy. "Zippered polygon meshes from range images." Proceedings of the 21st annual conference on Computer graphics and interactive techniques. ACM, 1994.
β’ Hoppe, Hugues, et al. Surface reconstruction from unorganized points. Vol. 26. No. 2. ACM, 1992.
β’ Carr, Jonathan C., et al. "Reconstruction and representation of 3D objects with radial basis functions." Proceedings of the 28th annual conference on Computer graphics and interactive techniques. ACM, 2001.
β’ Curless, Brian, and Marc Levoy. "A volumetric method for building complex models from range images." Proceedings of the 23rd annual conference on Computer graphics and interactive techniques. ACM, 1996.
β’ Alexa, Marc et al. βPoint set surfacesβ. In: Proc. of IEEE Visualization 01.
β’ Alexa, Marc, and Anders Adamson. "On Normals and Projection Operators for Surfaces Defined by Point Sets." SPBG 4 (2004): 149-155.
β’ Kazhdan, Michael, Matthew Bolitho, and Hugues Hoppe. "Poisson surface reconstruction." Proceedings of the fourth Eurographics symposium on Geometry processing. Eurographics Association, 2006.
β’ Calakli, Fatih, and Gabriel Taubin. "SSD: Smooth signed distance surface reconstruction." Computer Graphics Forum. Vol. 30. No. 7. Blackwell Publishing Ltd, 2011.
β’ Kazhdan, Michael, and Hugues Hoppe. "Screened poisson surface reconstruction." ACM Transactions on Graphics (TOG) 32.3 (2013): 29.