Date post: | 29-Jan-2016 |
Category: |
Documents |
Upload: | lionel-paul |
View: | 228 times |
Download: | 0 times |
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