<ul><li>Session II </li></ul><ul><li>Structured Lighting </li></ul><ul><li>Projector Calibration / Structured Light Recons...
<ul><li>Whole object cannot be scanned from only one camera view </li></ul>Multiple scans must be merged to cover the whol...
A densely sampled point cloud covering the whole surface of the object usually requires merging many scans Merging Point C...
http://www.research.ibm.com/pieta Shape Appearance Complex Models May Require 100s of Scans
 
Merging Point Cloud Scans <ul><li>Incremental registration and merging </li></ul><ul><li>Followed by global relaxation to ...
Merging Two Point Cloud Scans <ul><li>Select at least 3 pairs of corresponding points, but ideally N>>3 </li></ul><ul><li>...
<ul><li>Given N pairs of corresponding 3D points  we are looking for a rotation matrix  and a translation vector  so that ...
Iterative Closest Point Algorithm (ICP) <ul><li>Automatically select N points  </li></ul><ul><li>Find closest correspondin...
<ul><li>Problem: find the point of the set  closest to the point  </li></ul><ul><li>Naïve algorithm: sequential search O(N...
<ul><li>Session II </li></ul><ul><li>Structured Lighting </li></ul><ul><li>Projector Calibration / Structured Light Recons...
Surface Representations <ul><li>Surfaces in Mathematics </li></ul><ul><ul><li>Parametric </li></ul></ul><ul><ul><li>Implic...
Connectivity / Watertight Surfaces <ul><li>Most applications require  connectivity information </li></ul><ul><ul><li>Effic...
Polygon Meshes
Surface Reconstruction from Point Clouds <ul><li>Every regular  Implicit surface  is watertight </li></ul><ul><li>An  Isos...
Curve Reconstruction from Point Clouds <ul><li>Oriented points </li></ul><ul><li>Regular grid </li></ul><ul><li>Implicit f...
<ul><li>Given an  oriented point cloud  (points and normal vectors) </li></ul><ul><li>Look for an implicit function  defin...
Vector Field Isosurface (VFIso)
Vector Field Isosurface (VFIso)
Vector Field Isosurface (VFIso)
Vector Field Isosurface (VFIso)
Vector Field Isosurface (VFIso)
Vector Field Isosurface (VFIso)
 
 
<ul><li>Session II </li></ul><ul><li>Structured Lighting </li></ul><ul><li>Projector Calibration / Structured Light Recons...
<ul><li>We will talk about a few simple algorithms which can be applied interactively </li></ul><ul><li>Polygon mesh smoot...
 
 
 
Polygon Mesh Smoothing / Denoising G. Taubin.  A Signal Processing Approach To Fair Surface Design . Siggraph, 1995 <ul><l...
Laplacian Smoothing <ul><li>Intuition: remove noise by averaging neighboring positions </li></ul><ul><ul><li>Compute displ...
Laplacian Smoothing <ul><li>Advantages </li></ul><ul><ul><li>Algorithm Simplicity </li></ul></ul><ul><ul><li>Linear time a...
A Simple Solution to the Shrinkage Problem G. Taubin.  A Signal Processing Approach To Fair Surface Design . Siggraph, 199...
<ul><li>Algorithms to reduce the number of vertices and faces while preserving geometric approximation to original shape <...
<ul><li>Quantize coordinates with respect to a bounding box </li></ul><ul><li>Identify vertices with same coordinates </li...
<ul><li>Quantize coordinates with respect to bounding box </li></ul><ul><li>Assign a new vertex index to each occupied cel...
<ul><li>Advantages </li></ul><ul><ul><li>Simple to implement </li></ul></ul><ul><ul><li>Works on large scenes with multipl...
<ul><li>Identify endpoints </li></ul><ul><li>Determine vertex position </li></ul><ul><li>Remove incident triangles </li></...
<ul><li>Put all  collapsible  edges in a priority queue according to  removal error </li></ul><ul><li>While queue is not e...
 
<ul><li>Session II </li></ul><ul><li>Structured Lighting </li></ul><ul><li>Projector Calibration / Structured Light Recons...
Upcoming SlideShare
Loading in...5
×

Build Your Own 3D Scanner: Surface Reconstruction

16,886

Published on

Build Your Own 3D Scanner:
Surface Reconstruction

http://mesh.brown.edu/byo3d/

SIGGRAPH 2009 Courses
Douglas Lanman and Gabriel Taubin

This course provides a beginner with the necessary mathematics, software, and practical details to leverage projector-camera systems in their own 3D scanning projects. An example-driven approach is used throughout; each new concept is illustrated using a practical scanner implemented with off-the-shelf parts. The course concludes by detailing how these new approaches are used in rapid prototyping, entertainment, cultural heritage, and web-based applications.

1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
16,886
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • 1 slide each man, hand, pig
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner: Surface Reconstruction

    1. 1. <ul><li>Session II </li></ul><ul><li>Structured Lighting </li></ul><ul><li>Projector Calibration / Structured Light Reconstruction </li></ul><ul><li>Combining Point Clouds Recovered from Multiple Views </li></ul><ul><li>Surface Reconstruction from Point Clouds </li></ul><ul><li>Elementary Mesh Processing </li></ul><ul><li>Conclusion / Q & A </li></ul>Course Schedule TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A A A A A A
    2. 2. <ul><li>Whole object cannot be scanned from only one camera view </li></ul>Multiple scans must be merged to cover the whole object surface <ul><li>Each point cloud scan is generated with respect to a different camera coordinate system </li></ul><ul><li>Relative position and orientation of each scan with respect to a global coordinate system must be determined to produce a single merged point cloud </li></ul>Merging Multiple Point Cloud Scans
    3. 3. A densely sampled point cloud covering the whole surface of the object usually requires merging many scans Merging Point Cloud Scans
    4. 4. http://www.research.ibm.com/pieta Shape Appearance Complex Models May Require 100s of Scans
    5. 6. Merging Point Cloud Scans <ul><li>Incremental registration and merging </li></ul><ul><li>Followed by global relaxation to remove accumulated errors </li></ul>
    6. 7. Merging Two Point Cloud Scans <ul><li>Select at least 3 pairs of corresponding points, but ideally N>>3 </li></ul><ul><li>Solve in close form for the matching rigid body transformation </li></ul><ul><li>Refine solution using the Iterative Closest Point Algorithm (ICP) </li></ul>User input is OK for small models Moving Fixed P. Besl, N.D. McKey, A method for Registration of 3D Shapes . IEEE Transactions on PAMI, 1992
    7. 8. <ul><li>Given N pairs of corresponding 3D points we are looking for a rotation matrix and a translation vector so that </li></ul><ul><li>In general, solution does not exists: solve in the Least-Squares sense </li></ul><ul><li>Now we are looking for the minimizer of the quadratic energy function </li></ul><ul><li>This problem has a closed form solution </li></ul><ul><li>Where </li></ul><ul><li>And is the Singular Value Decomposition (SVD) of </li></ul>Computing the Matching Transformation Fixed Moving
    8. 9. Iterative Closest Point Algorithm (ICP) <ul><li>Automatically select N points </li></ul><ul><li>Find closest corresponding points </li></ul><ul><li>Solve in close form for the matching rigid body transformation which minimizes the energy function </li></ul><ul><li>Repeat 1-3 while until convergence </li></ul>
    9. 10. <ul><li>Problem: find the point of the set closest to the point </li></ul><ul><li>Naïve algorithm: sequential search O(N) </li></ul><ul><li>Too expensive if the same computation must be performed for many points </li></ul><ul><li>Efficient algorithm requires space partition data structure </li></ul><ul><li>Quadtree/Octree, BSP tree </li></ul>Finding Closest Points
    10. 11. <ul><li>Session II </li></ul><ul><li>Structured Lighting </li></ul><ul><li>Projector Calibration / Structured Light Reconstruction </li></ul><ul><li>Combining Point Clouds Recovered from Multiple Views </li></ul><ul><li>Surface Reconstruction from Point Clouds </li></ul><ul><li>Elementary Mesh Processing </li></ul><ul><li>Conclusion / Q & A </li></ul>Course Schedule
    11. 12. Surface Representations <ul><li>Surfaces in Mathematics </li></ul><ul><ul><li>Parametric </li></ul></ul><ul><ul><li>Implicit (level set) </li></ul></ul><ul><li>We can only operate on a surface representation </li></ul><ul><ul><li>A data structure defined by a finite number of parameters </li></ul></ul><ul><ul><li>Efficient to perform certain geometric operations </li></ul></ul><ul><li>Point clouds (surfaces represented as sets of samples) </li></ul><ul><ul><li>Positions </li></ul></ul><ul><ul><li>Optional properties:normals, colors, etc </li></ul></ul><ul><li>Polygon meshes (piecewise planar surfaces) </li></ul><ul><ul><li>vertices, edges, and faces </li></ul></ul><ul><ul><li>Optional properties: normals, color, texture coordinates, etc. </li></ul></ul>
    12. 13. Connectivity / Watertight Surfaces <ul><li>Most applications require connectivity information </li></ul><ul><ul><li>Efficient ways to find points in close proximity to each other </li></ul></ul><ul><li>Point clouds do not provide connectivity information </li></ul><ul><ul><li>Additional data structures are needed to efficiently find neighboring points </li></ul></ul><ul><li>Connectivity is explicit in polygon meshes: edges </li></ul><ul><li>Triangulate the point cloud to get connectivity information </li></ul><ul><ul><li>Find an interpolating or approximating triangle mesh </li></ul></ul><ul><li>Many applications require watertight surfaces: continuous closed surfaces which partition 3D space into an inside and an outside </li></ul><ul><ul><li>Point clouds are not watertight </li></ul></ul><ul><ul><li>Polygon meshes may be watertight </li></ul></ul><ul><li>Will the triangulation constructed from the point cloud be watertight ? </li></ul>
    13. 14. Polygon Meshes
    14. 15. Surface Reconstruction from Point Clouds <ul><li>Every regular Implicit surface is watertight </li></ul><ul><li>An Isosurface is a polygonal approximation of an implicit function associated with a volumetric grid </li></ul><ul><li>Marching Cubes is an algorithm to compute an isosurface from an implicit surface evaluated on the vertices of a regular hexahedral grid </li></ul><ul><li>Similar simple algorithms exists to generate isosurfaces from an implicit function evaluated on the vertices of a tetrahedral grid </li></ul><ul><li>We will only discuss here approximation algorithms to fit implicit surfaces to point clouds </li></ul><ul><li>Algorithms related to the Poisson Equation </li></ul>M. Kazhdan, M. Bolitho, H. Hoppe. Poisson Surface Reconstruction . European Symposium on Geometry Processing, 2006 W.E. Lorensen, H.E. Cline. Marching Cubes:A high resolution 3D surface reconstruction algorithm . Siggraph,1987
    15. 16. Curve Reconstruction from Point Clouds <ul><li>Oriented points </li></ul><ul><li>Regular grid </li></ul><ul><li>Implicit function </li></ul><ul><li>Isocurve </li></ul><ul><li>Grid too coarse: </li></ul><ul><li>Aliasing </li></ul><ul><li>Finer grid resolves topology </li></ul>
    16. 17. <ul><li>Given an oriented point cloud (points and normal vectors) </li></ul><ul><li>Look for an implicit function defined on a volume so that </li></ul><ul><li>Minimize the energy function </li></ul><ul><li>For a family of functions linearly parameterized by a finite parameter set, this is a Least-Squares problem: the problem reduces to solving a linear system (typically large and sparse) </li></ul>Vector Field Isosurface (VFIso) P. Sibley, G. Taubin. Vectorfield Isosurface-based Reconstruction from Oriented Points . Siggraph, 2005 (Sketch)
    17. 18. Vector Field Isosurface (VFIso)
    18. 19. Vector Field Isosurface (VFIso)
    19. 20. Vector Field Isosurface (VFIso)
    20. 21. Vector Field Isosurface (VFIso)
    21. 22. Vector Field Isosurface (VFIso)
    22. 23. Vector Field Isosurface (VFIso)
    23. 26. <ul><li>Session II </li></ul><ul><li>Structured Lighting </li></ul><ul><li>Projector Calibration / Structured Light Reconstruction </li></ul><ul><li>Combining Point Clouds Recovered from Multiple Views </li></ul><ul><li>Surface Reconstruction from Point Clouds </li></ul><ul><li>Elementary Mesh Processing </li></ul><ul><li>Conclusion / Q & A </li></ul>Course Schedule
    24. 27. <ul><li>We will talk about a few simple algorithms which can be applied interactively </li></ul><ul><li>Polygon mesh smoothing / denoising </li></ul><ul><li>Polygon mesh simplification </li></ul><ul><li>j3DPGP (Java 3D Photography and Geometry Processing) </li></ul>Elementary Mesh Processing
    25. 31. Polygon Mesh Smoothing / Denoising G. Taubin. A Signal Processing Approach To Fair Surface Design . Siggraph, 1995 <ul><li>Laplacian smoothing is the simplest smoothing/denoising algorithm </li></ul><ul><li>Fix to shrinkage problem: toggle parameter sign at each iteration ! </li></ul>Laplacian Smoothing Low Pass Filter N=10 N=40 N=240
    26. 32. Laplacian Smoothing <ul><li>Intuition: remove noise by averaging neighboring positions </li></ul><ul><ul><li>Compute displacement vector for each vertex </li></ul></ul><ul><ul><li>Move vertices in the displacement vector direction </li></ul></ul><ul><ul><li>Can use more general weights </li></ul></ul>
    27. 33. Laplacian Smoothing <ul><li>Advantages </li></ul><ul><ul><li>Algorithm Simplicity </li></ul></ul><ul><ul><li>Linear time and storage </li></ul></ul><ul><ul><li>Edge length equalization </li></ul></ul><ul><ul><li>Constraints and special effects by weight control </li></ul></ul><ul><li>DEMO </li></ul><ul><li>Disadvantages </li></ul><ul><ul><li>Overall Shrinkage </li></ul></ul><ul><ul><li>Edge length equalization </li></ul></ul><ul><ul><li>Shrinkage at boundaries </li></ul></ul><ul><ul><li>Smoothing of ridges </li></ul></ul>
    28. 34. A Simple Solution to the Shrinkage Problem G. Taubin. A Signal Processing Approach To Fair Surface Design . Siggraph, 1995 <ul><li>Minor modification of Laplacian smoothing algorithm </li></ul><ul><li>Two Laplacian smoothing steps </li></ul><ul><li>First shrinking step with positive factor </li></ul><ul><li>Second unshrinking step with negative factor </li></ul><ul><li>Repeat the two steps N/2 times </li></ul><ul><li>Why does this algorithm solve the problem? </li></ul><ul><li>This is a true low-pass filter </li></ul><ul><li>Fourier Analysis on graphs and meshes </li></ul><ul><li>Read the paper ! </li></ul>
    29. 35. <ul><li>Algorithms to reduce the number of vertices and faces while preserving geometric approximation to original shape </li></ul>Poligon Mesh Simplification / Decimation <ul><li>Vertex clustering (Rossignac & Borrel, 1993) </li></ul><ul><li>Edge Collapse (Garand Heckbert 1997; many others) </li></ul>
    30. 36. <ul><li>Quantize coordinates with respect to a bounding box </li></ul><ul><li>Identify vertices with same coordinates </li></ul><ul><li>Remove empty triangles </li></ul>Vertex Clustering
    31. 37. <ul><li>Quantize coordinates with respect to bounding box </li></ul><ul><li>Assign a new vertex index to each occupied cell </li></ul><ul><li>Determine coordinates of new vertices </li></ul><ul><li>Construct new vertex index look-up table </li></ul><ul><li>Replace vertex indices in faces </li></ul><ul><li>Remove empty triangles from list of faces </li></ul>Vertex Clustering Algorithm
    32. 38. <ul><li>Advantages </li></ul><ul><ul><li>Simple to implement </li></ul></ul><ul><ul><li>Works on large scenes with multiple objects </li></ul></ul><ul><li>No manifold restriction </li></ul><ul><li>Disadvantages </li></ul><ul><ul><li>Produces non-manifold meshes </li></ul></ul><ul><ul><li>Quality of simplified model is often not very good </li></ul></ul>Vertex Clustering
    33. 39. <ul><li>Identify endpoints </li></ul><ul><li>Determine vertex position </li></ul><ul><li>Remove incident triangles </li></ul><ul><li>Which edges to collapse ? </li></ul><ul><li>In which order ? </li></ul>Edge Collapse Non-existing edges
    34. 40. <ul><li>Put all collapsible edges in a priority queue according to removal error </li></ul><ul><li>While queue is not empty </li></ul><ul><ul><li>Delete minimum edge from queue </li></ul></ul><ul><ul><li>Collapse edge </li></ul></ul><ul><ul><li>Identify vertices </li></ul></ul><ul><ul><li>Remove all incident edges from the queue, determine if collapsible, recompute removal error, re-insert in queue </li></ul></ul><ul><li>Need dynamic data structures </li></ul>Basic Edge Collapse Algorithm
    35. 42. <ul><li>Session II </li></ul><ul><li>Structured Lighting </li></ul><ul><li>Projector Calibration / Structured Light Reconstruction </li></ul><ul><li>Combining Point Clouds Recovered from Multiple Views </li></ul><ul><li>Surface Reconstruction from Point Clouds </li></ul><ul><li>Elementary Mesh Processing </li></ul><ul><li>Conclusion / Q & A </li></ul>Course Schedule

    ×