point set processing and surface reconstruction () nader salman, inria in collaboration with pierre...

Post on 29-Jan-2016

233 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

OutlineOutline

• Common pipeline

• Structure

• Documentation

• Demo

• Roadmap

Common PipelineCommon Pipeline

DigitalDigital

GeometryGeometry

PhysicalPhysical• AcquisitionAcquisition

• RegistrationRegistration

• Pre-processingPre-processing

• ReconstructionReconstruction

Example Pipeline Example Pipeline (1)(1)

laser range datalaser range data

Acquisition Registration Pre-processing

(simplification, denoising, smoothing, …) Reconstruction

Example Pipeline Example Pipeline (2)(2)

multi-view passive stereomulti-view passive stereo

Acquisition

& calibration

Point cloud generation

Pre-processing

(simplification, denoising, smoothing, …)

Reconstruction

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)

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)

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)

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

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

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

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

Example SimplificationExample Simplification

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

Example SimplificationExample Simplification

Example Outlier RemovalExample Outlier Removal

(a lion and a bunch of outliers)

Example SmoothingExample SmoothingFor each point

• find KNN

• fit jet (smooth parametric surface)

• project onto jet

(noisy point set) (smoothed point set)

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]

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)

Example Normal OrientationExample Normal Orientation

Normal Orientation through MSTNormal Orientation through MST

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)

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

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

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

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

Poisson Surface ReconstructionPoisson Surface Reconstruction

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

Example PoissonExample Poisson

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

Example PoissonExample Poisson

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

Example PoissonExample Poisson

Example PoissonExample Poisson

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

Example PoissonExample Poisson

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

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

Example PoissonExample Poisson

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

Example PoissonExample Poisson

Example PoissonExample Poisson

Right: point set simplified to 1K then reconstructed

Left: 50K points sampled on Neptune trident

Example PoissonExample Poisson

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

Example PoissonExample Poisson

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

Example PoissonExample Poisson

Poisson duration wrt #input pointsPoisson duration wrt #input points

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

Memory wrt #input pointsMemory wrt #input points

Reconstruction error wrt #input Reconstruction error wrt #input pointspoints

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

APSSAPSS

• Based on Moving Least Squares fitting on algebraic spheres

APSSAPSS

• Point projection

APSSAPSS

APSSAPSS

can evaluate an implicit function at any point

APSSAPSS

Poisson vs APSS?Poisson vs APSS?

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

PoissonPoisson APSSAPSS

Approximation error in surface mesh generator: 0.004

PoissonPoisson APSSAPSS

Approximation error in surface mesh generator: 0.002

PoissonPoisson APSSAPSS

Approximation error in surface mesh generator: 0.001

always a bit smoother

one extra component

DocumentationDocumentation

• Current: 98 pages

• Reference manual available online

• User manual available online

DemoDemo

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

The EndThe End

top related