3D Scanning Instruments - Banterle...[Kazhdan et al., SGP 06] Poisson Surface Reconstruction 1....

Preview:

Citation preview

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.

Recommended