560 likes | 1.5k Vues
Point Set Processing and Surface Reconstruction (www.cgal.org). Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël Guennebaud, INRIA Bordeaux 9th ACCV Xi’an China, Sep 25-27 2009. Outline. Common pipeline Structure Documentation Demo Roadmap.
E N D
Point Set Processing and Surface Reconstruction(www.cgal.org) Nader Salman, INRIA In collaboration with Pierre Alliez, INRIA Laurent Saboret, INRIA Gaël Guennebaud, INRIA Bordeaux 9th ACCV Xi’an China, Sep 25-27 2009
Outline • Common pipeline • Structure • Documentation • Demo • Roadmap
Common Pipeline Physical • Acquisition • Registration • Pre-processing • Reconstruction Digital Geometry
Example Pipeline (1)laser range data Acquisition Registration Pre-processing (simplification, denoising, smoothing, …) Reconstruction
Example Pipeline (2)multi-view passive stereo Acquisition & calibration Point cloud generation Pre-processing (simplification, denoising, smoothing, …) Reconstruction
Structure (pipeline-oriented) Point set Analysis Processing Normals Reconstruction Contouring • Bounding box • Bounding sphere • Centroid • Average spacing • Poisson • Algebraic point set surfaces • Surface mesh generator • Simplification • Outlier removal • Smoothing • Estimation • Orientation (grayed out = in other CGAL packages)
Entering the Pipeline… Clean points with oriented normals Clean point set Point set Analysis Processing Normals Reconstruction Contouring • Bounding box • Bounding sphere • Centroid • Average spacing • Poisson • Algebraic point set surfaces • Surface mesh generator • Simplification • Outlier removal • Smoothing • Estimation • Orientation Points with unoriented normals (grayed out = in other CGAL packages)
Output… Point set Analysis Processing Normals Reconstruction Contouring • Bounding box • Bounding sphere • Centroid • Average spacing • Poisson • Algebraic point set surfaces • Surface mesh generator • Simplification • Outlier removal • Smoothing • Estimation • Orientation Implicitfunction Surfacetriangle mesh Clean points withoriented normals (grayed out = in other CGAL packages)
Point_set_processing_3 Introduction Left: 275k points sampled on an elephant (Minolta laser scanner) Right: point set cleaned and simplified to 17K points
Analysis • 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
Processing • 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
Example Simplification from 100K to 50k points by random simplification
Example Simplification from 100K to 50k points by clustering
Example Outlier Removal (a lion and a bunch of outliers)
Example Smoothing • For each point • find KNN • fit jet (smooth parametric surface) • project onto jet (noisy point set) (smoothed point set)
Normals • 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 Estimation Normals estimation through PCA (7 KNN) Orientation through MST (7 KNN)
Example Normal Orientation Normal Orientation through MST
Surface_reconstruction_points_3Introduction reconstructed surface using Poisson 17K points sampled on an elephant (Minolta laser scanner) reconstructed surface using APSS (in progress)
Reconstruction (1) • Poissonsurface reconstruction [Kazhdan-Bolitho-Hoppe, SGP 2006] • Solves for an implicit function (~indicator function) • Isosurface extracted by CGAL surface mesh generator
Indicator function M Poisson Surface Reconstruction • Reconstruct the surface of the model by solving for the indicator function of the shape. 0 0 1 1 0 0 1 0
0 0 0 0 0 0 Indicator gradient M Poisson Surface Reconstruction • There is a relationship between the normal field and gradient of indicator function points + oriented normals
Poisson 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:
Poisson Surface Reconstruction • We solve for the Poisson equation onto the vertices of a (refined) 3D Delaunay triangulation [TAUCS linear solver]
Example Poisson Left: 120K points sampled on child statue (Minolta laser scanner) Right: reconstructed surface
Example Poisson Left: 120K points sampled on a statue (Minolta laser scanner) Right: reconstructed surface
Example Poisson Left: 70K points with (emphasized) outliers Right: reconstructed surface
Example Poisson Left: Bimba 120K reconstructed with distance = 0.25*average spacing Right: Bimba 120K reconstructed with distance = 0.15*average spacing
Example Poisson Left: 65K points sampled on a hand with no data at the wrist base (Kreon laser scanner) Right: reconstructed surface
Example Poisson Left: 50K points sampled on Neptune trident Right: point set simplified to 1K then reconstructed
Example Poisson Left: points sampled on a sphere with flipped normals Right: reconstructed surface
Example Poisson Left: 4K points sampled on a mechanical piece with sharp edges Right: reconstructed surface
Surface meshing duration and error wrt approximation distance
Reconstruction (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
Based on Moving Least Squares fitting on algebraic spheres APSS
Point projection APSS
Poisson vs APSS? INPUT = 275K points sampled on an elephant (minolta laser scanner)
Poisson APSS Approximation error in surface mesh generator: 0.004
Poisson APSS Approximation error in surface mesh generator: 0.002
Poisson APSS Approximation error in surface mesh generator: 0.001 always a bit smoother one extra component
Documentation • Current: 98 pages • Reference manual available online • User manual available online Demo • Current: 3D point set demo (QT4 + QGLViewer)