Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre...

51
Point Set Processing and Point Set Processing and Surface Reconstruction Surface Reconstruction (www.cgal.org) (www.cgal.org) Nader Salman, INRIA In collaboration with In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël Guennebaud, INRIA Bordeaux 9th ACCV Xi’an China, Sep 25-27 2009

Transcript of Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre...

Page 1: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Point Set Processing and Surface Point Set Processing and Surface ReconstructionReconstruction

(www.cgal.org)(www.cgal.org)

Nader Salman, INRIAIn collaboration withIn collaboration withPierre Alliez, INRIA

Laurent Saboret, INRIAGaël Guennebaud, INRIA Bordeaux

9th ACCV Xi’an China, Sep 25-27 2009

Page 2: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

OutlineOutline

• Common pipeline

• Structure

• Documentation

• Demo

• Roadmap

Page 3: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Common PipelineCommon Pipeline

DigitalDigital

GeometryGeometry

PhysicalPhysical• AcquisitionAcquisition

• RegistrationRegistration

• Pre-processingPre-processing

• ReconstructionReconstruction

Page 4: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example Pipeline Example Pipeline (1)(1)

laser range datalaser range data

Acquisition Registration Pre-processing

(simplification, denoising, smoothing, …) Reconstruction

Page 5: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example Pipeline Example Pipeline (2)(2)

multi-view passive stereomulti-view passive stereo

Acquisition

& calibration

Point cloud generation

Pre-processing

(simplification, denoising, smoothing, …)

Reconstruction

Page 6: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Structure Structure (pipeline-oriented)(pipeline-oriented)

Analysis Processing Normals Reconstruction Contouring

• Bounding box

• Bounding sphere

• Centroid

• Average spacing

• Surface mesh generator

• Poisson

• Algebraic point set surfaces

• Estimation

• Orientation

• Simplification

• Outlier removal

• Smoothing

Point set

(grayed out = in other CGAL packages)

Page 7: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Entering the Pipeline…Entering the Pipeline…

Analysis Processing Normals Reconstruction Contouring

• Bounding box

• Bounding sphere

• Centroid

• Average spacing

• Surface mesh generator

• Poisson

• Algebraic point set surfaces

• Estimation

• Orientation

• Simplification

• Outlier removal

• Smoothing

Clean point set

Points with unoriented normals

Point set Clean points with oriented normals

(grayed out = in other CGAL packages)

Page 8: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Output…Output…

Analysis Processing Normals Reconstruction Contouring

• Bounding box

• Bounding sphere

• Centroid

• Average spacing

• Surface mesh generator

• Poisson

• Algebraic point set surfaces

• Estimation

• Orientation

• Simplification

• Outlier removal

• Smoothing

Point set

Implicitfunction

Surfacetriangle mesh

Clean points withoriented normals(grayed out = in other CGAL packages)

Page 9: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: point set cleaned and simplified to 17K points

Left: 275k points sampled on an elephant (Minolta laser scanner)

Point_set_processing_3 Point_set_processing_3 IntroductionIntroduction

Page 10: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

AnalysisAnalysis

• Bounding box

• Bounding sphere

• Centroid

• Average spacing

– reuse orthogonal search for K nearest neighbors

– used by reconstruction / contouring algorithms

– takes an iterator range of 3D points and parameter K

Page 11: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

ProcessingProcessing

• Simplification– by random selection– by clustering (regular grid)

• Outlier removal– sort w.r.t. sum of squared distances to

KNN and cut at specified percentile.

• Smoothing– jet fitting + projection

Page 12: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

from 100K to 50k points by random simplificationfrom 100K to 50k points by random simplification

Example SimplificationExample Simplification

Page 13: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

from 100K to 50k points by clusteringfrom 100K to 50k points by clustering

Example SimplificationExample Simplification

Page 14: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example Outlier RemovalExample Outlier Removal

(a lion and a bunch of outliers)

Page 15: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example SmoothingExample SmoothingFor each point

• find KNN

• fit jet (smooth parametric surface)

• project onto jet

(noisy point set) (smoothed point set)

Page 16: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

NormalsNormals

• Estimation (no orientation)– KNN + PCA (fit a plane)– KNN + jet fitting (better for noisy data)

• Orientation– KNN + BGL MST (Minimum Spanning Tree)

[Hoppe 92]

Page 17: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example Normal EstimationExample Normal Estimation

Normals estimation through PCA (7 KNN)Normals estimation through PCA (7 KNN)Orientation through MST (7 KNN)Orientation through MST (7 KNN)

Page 18: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example Normal OrientationExample Normal Orientation

Normal Orientation through MSTNormal Orientation through MST

Page 19: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Surface_reconstruction_points_3Surface_reconstruction_points_3IntroductionIntroduction

reconstructed surface using Poisson

17K points sampled on an elephant (Minolta

laser scanner)

reconstructed surface using APSS (in progress)

Page 20: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Reconstruction Reconstruction (1)(1)

• Poisson surface reconstruction [Kazhdan-Bolitho-Hoppe, SGP 2006]– Solves for an implicit function (~indicator

function)– Isosurface extracted by CGAL surface

mesh generator

Page 21: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Poisson Surface ReconstructionPoisson Surface Reconstruction

• Reconstruct the surface of the model by solving for the indicator function of the shape.

Mp

MppM if0

if1

MIndicator function

01

0

00

0

1

1

Page 22: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Poisson Surface ReconstructionPoisson Surface Reconstruction

There is a relationship between the normal field and gradient of indicator function

M

Indicator gradient

0 0

0

0

0

0

points + oriented normals

Page 23: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Poisson Surface ReconstructionPoisson Surface Reconstruction

• 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:

V

V

min

VV

V

Page 24: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Poisson Surface ReconstructionPoisson Surface Reconstruction

• We solve for the Poisson equation onto the vertices of a (refined) 3D Delaunay triangulation [TAUCS linear solver]

Page 25: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example PoissonExample Poisson

Page 26: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: reconstructed surfaceLeft: 120K points sampled on child statue (Minolta laser scanner)

Example PoissonExample Poisson

Page 27: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: reconstructed surfaceLeft: 120K points sampled on a statue (Minolta laser scanner)

Example PoissonExample Poisson

Page 28: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example PoissonExample Poisson

Page 29: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: reconstructed surfaceLeft: 70K points with (emphasized) outliers

Example PoissonExample Poisson

Page 30: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: Bimba 120K reconstructed with distance = 0.15*average spacing

Left: Bimba 120K reconstructed with distance = 0.25*average spacing

Example PoissonExample Poisson

Page 31: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: reconstructed surfaceLeft: 65K points sampled on a hand with no data at the wrist base (Kreon laser scanner)

Example PoissonExample Poisson

Page 32: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Example PoissonExample Poisson

Page 33: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: point set simplified to 1K then reconstructed

Left: 50K points sampled on Neptune trident

Example PoissonExample Poisson

Page 34: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: reconstructed surfaceLeft: points sampled on a sphere with flipped normals

Example PoissonExample Poisson

Page 35: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Right: reconstructed surfaceLeft: 4K points sampled on a mechanical piece with sharp edges

Example PoissonExample Poisson

Page 36: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Poisson duration wrt #input pointsPoisson duration wrt #input points

Page 37: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Surface meshing duration and Surface meshing duration and error wrt approximation distanceerror wrt approximation distance

Page 38: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Memory wrt #input pointsMemory wrt #input points

Page 39: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Reconstruction error wrt #input Reconstruction error wrt #input pointspoints

Page 40: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Reconstruction Reconstruction (2)(2)

• Algebraic point set surfaces (APSS) [Guennebaud, SIGGRAPH 2007]– Evaluates an implicit function on the fly

(~signed distance function)– Isosurface extracted by CGAL surface mesh

generator

Page 41: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

APSSAPSS

• Based on Moving Least Squares fitting on algebraic spheres

Page 42: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

APSSAPSS

• Point projection

Page 43: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

APSSAPSS

Page 44: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

APSSAPSS

can evaluate an implicit function at any point

Page 45: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

APSSAPSS

Page 46: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

Poisson vs APSS?Poisson vs APSS?

INPUT = 275K points sampled on an elephant (minolta laser scanner)

Page 47: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

PoissonPoisson APSSAPSS

Approximation error in surface mesh generator: 0.004

Page 48: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

PoissonPoisson APSSAPSS

Approximation error in surface mesh generator: 0.002

Page 49: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

PoissonPoisson APSSAPSS

Approximation error in surface mesh generator: 0.001

always a bit smoother

one extra component

Page 50: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

DocumentationDocumentation

• Current: 98 pages

• Reference manual available online

• User manual available online

DemoDemo

• Current: 3D point set demo (QT4 + QGLViewer)

Page 51: Point Set Processing and Surface Reconstruction () Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël.

The EndThe End