motivation
play

Motivation Scanners to obtain virtual 3D shapes Surface - PDF document

Motivation Scanners to obtain virtual 3D shapes Surface Reconstruction: http://graphics.stanford.edu/projects/mich/ http://www.jhu.edu/digitalhammurabi/ Meshing Point Sets (slides mostly from Misha Kazhdan) Cuneiform tablets CS101b -


  1. Motivation Scanners to obtain virtual 3D shapes Surface Reconstruction: http://graphics.stanford.edu/projects/mich/ http://www.jhu.edu/digitalhammurabi/ Meshing Point Sets (slides mostly from Misha Kazhdan) Cuneiform tablets CS101b - Meshing CS101b - Meshing 1 2 Motivation Motivation Scanning often gives only local connectivity Scanning often gives only local connectivity We want a 3D Mesh for: � Parameterization � Computational Analysis � Rapid Prototyping � Rendering � etc Global registration nightmare…. CS101b - Meshing CS101b - Meshing 3 4 Surface Reconstruction Surface Reconstruction Generate a mesh from a set of surface samples Generate a mesh from a set of surface samples Three general approaches: Computational Geometry (often interpolating) 1. Boissonnat, 1984 Edelsbrunner, 1984 Amenta et al ., 1998 Dey et al ., 2003 Surface Fitting (assuming given topology and smoothness) 2. Terzopoulos et al. , 1991 Chen et al. , 1995 Implicit Function Fitting 3. Hoppe et al. , 1992 Curless et al. , 1996 Whitaker, 1998 Carr et al. , 2001 Davis et al. , 2002 Ohtake et al. , 2004 Turk et al. , 2004 Shen et al. , 2004 Kazhdan, 2005 CS101b - Meshing CS101b - Meshing 5 6 1

  2. Implicit Function Approach Implicit Function Approach Define a function with Define a function with value less than zero value less than zero outside the model and outside the model and greater than zero inside greater than zero inside Extract the zero-set < 0 0 > 0 < 0 0 > 0 CS101b - Meshing CS101b - Meshing 7 8 Accurate Reconstructions Accurate Reconstructions An accurate representation is (often) only To extract fine surface detail, represent the implicit function required near the surface. at a high resolution. Limitations of RBF: Limitation of convolution: Solve large, dense linear systems Regular voxel grids have Hard to control away from samples complexity proportional to the volume not the surface. Carr et al. 2001, FastRBF CS101b - Meshing CS101b - Meshing Kazhdan 2005, FFT Reconstruction 9 10 Accurate Reconstructions Outline An accurate representation is (often) only Introduction required near the surface. Approach � Key Ideas of Poisson Reconstruction Limitations of MPU: Kazhdan, Bolitho, and Hoppe ‘06 � Implementation Solve large, quite-dense linear systems Results Hard to control away from samples Ohtake et al. 2004, MPU Conclusion Local solutions are more susceptible to noise CS101b - Meshing CS101b - Meshing 11 12 2

  3. Indicator Function Challenge We reconstruct the surface of the model by How to construct the indicator function? solving for the “indicator” function of the shape. ∈ ⎧ 1 if p M ( ) χ = ⎨ p 0 ∉ M 0 ⎩ 0 if p M 1 1 0 0 1 0 Oriented points Indicator function Indicator function χ M χ M (points+normals) CS101b - Meshing CS101b - Meshing 13 14 Gradient vs Normal Integration as a Poisson Problem r There is a relationship between the normal Represent input data by a vector field V field and the gradient of indicator fct χ Find the function whose gradient best r r � smoothed indicator function approximates : ∇ χ − V 2 min ( V ) χ 0 0 0 0 Applying the divergence operator: 0 0 r r ( ) ∇ ⋅ ∇ χ = ∇ ⋅ ⇔ Δ χ = ∇ ⋅ V V Indicator gradient Oriented points Poisson problem! ∇χ M (points+normals) CS101b - Meshing CS101b - Meshing 15 16 Note Simple Implementation Simple L 2 projection (see, e.g., Tong et al) : Given the Points: Set octree Compute vector field Compute indicator function Extract isosurface Now use integration by part and you get Poisson! CS101b - Meshing CS101b - Meshing 17 18 3

  4. Implementation: Vector Field Implementation: Adapted Octree Given the Points: Given the Points: Set octree Set octree Compute vector field Compute vector field � Define a function space Compute indicator function � Splat the samples Extract iso-surface Compute indicator function Extract iso-surface CS101b - Meshing CS101b - Meshing 19 20 Implementation: Vector Field Implementation: Vector Field Given the Points: Given the Points: Set octree Set octree Compute vector field Compute vector field � Define a function space � Define a function space � Splat the samples � Splat the samples Compute indicator function Compute indicator function Extract iso-surface Extract iso-surface CS101b - Meshing CS101b - Meshing 21 22 Implementation: Vector Field Implementation: Vector Field Given the Points: Given the Points: Set octree Set octree Compute vector field Compute vector field � Define a function space � Define a function basis � Splat the samples � Splat the samples Compute indicator function Compute indicator function Extract iso-surface Extract iso-surface CS101b - Meshing CS101b - Meshing 23 24 4

  5. Implementation: Vector Field Implementation: Vector Field Given the Points: Given the Points: Set octree Set octree Compute vector field Compute vector field � Define a function basis � Define a function basis � Splat the samples � Splat the samples Compute indicator function Compute indicator function Extract iso-surface Extract iso-surface CS101b - Meshing CS101b - Meshing 25 26 Implementation: Vector Field Implementation: Indicator Fct Given the Points: Given the Points: Set octree Set octree Compute vector field Compute vector field � Define a function space Compute indicator function � Splat the samples � Compute divergence Compute indicator function � Solve Poisson equation Extract iso-surface Extract iso-surface CS101b - Meshing CS101b - Meshing 27 28 Implementation: Indicator Fct Implementation: Indicator Fct Given the Points: Given the Points: Set octree Set octree Compute vector field Compute vector field Compute indicator function Compute indicator function � Compute divergence � Compute divergence � Solve Poisson equation � Solve Poisson equation Extract iso-surface Extract iso-surface CS101b - Meshing CS101b - Meshing 29 30 5

  6. Implementation: Extraction Outline Given the Points: Introduction Set octree Approach Compute vector field Results Compute indicator function � Evaluation of Poisson approach Extract iso-surface � Comparison to related work Conclusion CS101b - Meshing CS101b - Meshing 31 32 Michelangelo’s David David – Chisel marks 215 million data points from 1000 scans � 22 million triangle reconstruction Compute Time: 2.1 hours Peak Memory: 6600MB CS101b - Meshing CS101b - Meshing 33 34 David – Drill Marks David – Eye CS101b - Meshing CS101b - Meshing 35 36 6

  7. Scalability – Buddha Model Stanford Bunny 900 Time Taken 800 Peak Memory Usage 700 ) Time (s) / Peak Memory (MB 600 500 FastRBF Power Crust MPU 400 300 200 1 00 0 0 1 00,000 200,000 300,000 400,000 500,000 600,000 700,000 800,000 Triangles Poisson FFT Reconstruction VRIP CS101b - Meshing CS101b - Meshing 37 38 Medical Data VRIP Comparison Arbitrary topology VRIP Poisson CS101b - Meshing CS101b - Meshing 39 40 FFT Reconstruction Comparison FFT Reconstruction Comparison FFT: Fixed resolution FFT: Fixed resolution Low Resolution Low Resolution High Resolution High Resolution CS101b - Meshing CS101b - Meshing 41 42 7

  8. FFT Reconstruction Comparison FFT Reconstruction Comparison FFT: Fixed resolution Poisson: Adaptive resolution Low Resolution High Resolution CS101b - Meshing CS101b - Meshing 43 44 Comparison FFT Reconstruction Comparison Poisson: Adaptive resolution Method Triangles Time (s) Mem (MB) Power Crust 554,332 380 2653 Robust Cocone 272,662 892 544 FastRBF 1,798,154 4919 796 MPU 925,240 28 260 Hoppe et al 1992 950,562 70 330 VRIP 1,038,055 86 186 Kazhdan 2005 910,320 125 1684 = Poisson Reconst. 911,390 263 310 CS101b - Meshing CS101b - Meshing 45 46 Conclusion Theoretical Contributions: � Relate oriented samples to indicator gradient � Express reconstruction as a Poisson problem � easily solved via CG Empirical Advantages: � Is robust to noise (because mostly global) � Adapts to the sampling density � Can handle large models Empirical Flaws: � noise creates spurious connected components CS101b - Meshing 47 8

Recommend


More recommend