Your SlideShare is downloading. ×
0
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Build Your Own 3D Scanner: 3D Scanning with Swept-Planes

18,057

Published on

Build Your Own 3D Scanner: …

Build Your Own 3D Scanner:
3D Scanning with Swept-Planes

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.

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
18,057
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009 Image sources: http://www.lems.brown.edu/~mleotta/project/lightplane.php
  • Build Your Own 3D Scanner 2/18/2009 Image sources: http://www.vision.caltech.edu/bouguetj/ICCV98/
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009 Image sources derived from: http://www.vision.caltech.edu/bouguetj/ICCV98/
  • 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 Image sources: http://www.photos-of-the-year.com/articles/barrel-distortion/ http://www.vision.caltech.edu/bouguetj/ICCV98/
  • Build Your Own 3D Scanner 2/18/2009 Image sources: http://www.vision.caltech.edu/bouguetj/ICCV98/
  • 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 Image sources derived from: http://www.vision.caltech.edu/bouguetj/ICCV98/
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009 Image sources derived from: http://www.vision.caltech.edu/bouguetj/ICCV98/
  • Build Your Own 3D Scanner 2/18/2009
  • Build Your Own 3D Scanner 2/18/2009 Image sources: http://robotics.cs.columbia.edu/~pblaer/eclipse/ http://www.multires.caltech.edu/teaching/courses/3DP/presentations/Kubicky/ee148.htm
  • 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 Thanks for attending the first session; We'll break now for 15 minutes. After the break we'll describe how to build 3D scanners using camera-projector pairs and also cover methods to extract high-quality meshes from the raw point cloud data produced by these homemade scanners.
  • Transcript

    • 1. <ul><li>Session I </li></ul><ul><li>Introduction </li></ul><ul><li>The Mathematics of 3D Triangulation </li></ul><ul><li>3D Scanning with Swept-Planes </li></ul><ul><li>Camera and Swept-Plane Light Source Calibration </li></ul><ul><li>Reconstruction and Visualization using Point Clouds </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 A A
    • 2. Triangulation by Laser Striping M. J. Leotta, A. Vandergon, and G. Taubin. 3 D Slit Scanning With Planar Constraints . Computer Graphics Forum , 2008 <ul><li>Manually or mechanically translated laser stripe </li></ul><ul><li>Per-pixel depth by ray-plane triangulation </li></ul><ul><li>Requires accurate camera and laser plane calibration </li></ul><ul><li>Popular solution for commercial and DIY 3D scanners </li></ul>
    • 3. 3D Photography on Your Desk: Bouguet and Perona [ICCV 1998] J.-Y. Bouguet and P. Perona. 3D photography on your desk . Intl. Conf. Comp. Vision , 1998 <ul><li>DIY scanner using only a camera, a halogen lamp, and a stick </li></ul><ul><li>Per-pixel depth by ray-plane triangulation </li></ul><ul><li>Requires accurate camera and shadow plane calibration </li></ul>
    • 4. Assembling Your Own Scanner <ul><li>Parts: camera (QuickCam 9000), lamp, stick, two planar objects [~$100] </li></ul><ul><li>Step 1: Build the calibration boards (include fiducials and chessboard) </li></ul><ul><li>Step 2: Build the point light source (remove reflector and place in scene) </li></ul><ul><li>Step 3: Arrange the camera, light source, and calibration boards </li></ul>
    • 5. Swept-Plane Reconstruction Geometry
    • 6. Demo: Data Capture
    • 7. <ul><li>Convert from RGB to grayscale (for luminance-domain processing) </li></ul><ul><li>Determine per-pixel minimum and maximum value over sequence </li></ul><ul><li>Evaluate per-pixel “shadow threshold” as average of min. and max. </li></ul>Video Processing: Assigning Per-Pixel Shadow Thresholds
    • 8. Video Processing: Spatial Shadow Edge Localization <ul><li>Select region of interest on each calibration plane (occlusion-free) </li></ul><ul><li>Estimate zero-crossings to find leading and trailing shadow boundaries </li></ul><ul><li>Fit a line to the set of points along each shadow boundary </li></ul><ul><li> Result: Best-fit 2D lines for each shadow edge (in image coordinates) </li></ul>400 600 800 -60 -40 -20 0 20 40 60 column index I 60 (x,y) - I shadow (x,y) 540 550 560 570 580 -60 -40 -20 0 20 40 column index I 60 (x,y) - I shadow (x,y)
    • 9. Video Processing: Temporal Shadow Edge Localization <ul><li>Tabulate per-pixel temporal sequence (minus shadow threshold) </li></ul><ul><li>Estimate zero-crossings to find shadow-crossing times </li></ul><ul><li> Result: Use shadow-crossing time to lookup corresponding 3D plane </li></ul>80 100 120 140 -40 -20 0 20 40 frame index I(x,y,t) - I shadow (x,y) crossing frame index for leading shadow crossing frame index for trailing shadow frame index 80 100 120 140
    • 10. <ul><li>Session I </li></ul><ul><li>Introduction </li></ul><ul><li>The Mathematics of 3D Triangulation </li></ul><ul><li>3D Scanning with Swept-Planes </li></ul><ul><li>Camera and Swept-Plane Light Source Calibration </li></ul><ul><li>Reconstruction and Visualization using Point Clouds </li></ul>Course Schedule
    • 11. Modeling Lens Distortion G. Bradski and A. Kaehler. Learning OpenCV . O’Reilly Media, 2008 radial distortion tangential distortion normalized image coordinates distorted image coordinates
    • 12. Intrinsic Camera Calibration Camera Calibration Input <ul><li>How to estimate intrinsic parameters and distortion model? (unknowns: focal length, skew, scale, principal point, and distortion coeffs.) </li></ul><ul><li>Popular solution: Observe a known calibration object (Zhang [2000]) </li></ul><ul><li>Each 2D chessboard corner yields two constraints on the 6-11 unknowns </li></ul><ul><li>But, must also find 6 extrinsic parameters per image (rotation/translation) </li></ul><ul><li> Result: Two or more images of a chessboard are sufficient </li></ul>1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 6 6 7 Estimated Camera Lens Distortion Map camera coordinate system world coordinate system intrinsic parameters extrinsic parameters
    • 13. Demo: Camera Calibration in Matlab J.-Y. Bouguet. Camera Calibration Toolbox for Matlab . http://www.vision.caltech.edu/bouguetj/calib_doc/
    • 14. Extrinsic Camera Calibration
    • 15. Demo: Mapping Pixels to Optical Rays <ul><li>How to map an image pixel to an optical ray? </li></ul><ul><li>Solution: Invert the calibrated camera projection model </li></ul><ul><li>But, also requires inversion of distortion model (which is non-linear) </li></ul><ul><li>Mapping implemented in Camera Calibration Toolbox with normalize.m </li></ul><ul><li> Result: After calibration, pixels can be converted to optical rays </li></ul>
    • 16. Shadow Plane Calibration
    • 17. Alternatives for Shadow Plane Calibration J.-Y. Bouguet and P. Perona. 3D photography on your desk . Intl. Conf. Comp. Vision , 1998
    • 18. <ul><li>Session I </li></ul><ul><li>Introduction </li></ul><ul><li>The Mathematics of 3D Triangulation </li></ul><ul><li>3D Scanning with Swept-Planes </li></ul><ul><li>Camera and Swept-Plane Light Source Calibration </li></ul><ul><li>Reconstruction and Visualization using Point Clouds </li></ul>Course Schedule
    • 19. Point Cloud Reconstruction
    • 20. Demo: Putting it All Together
    • 21. Additional Reconstruction Examples J.-Y. Bouguet and P. Perona. 3D photography on your desk . Intl. Conf. Comp. Vision , 1998 J. Kim and J. Wu. Scanning with Shadows . CSE 558 Project Report (U. Washington), 2001 P. Blaer, N. Hasan, C. Tripp, and L. Volchok. 3D Desktop Photography by Eclipse . Project Report (Columbia), 2001 J. Kubicky. Home-Brew 3-D Photography . EE 149 Project Report (Caltech), 1998
    • 22. Visualizing Point Clouds: Point-based Rendering via Splatting *See the SIGGRAPH 2009 course: Point Based Graphics – State of the Art and Recent Advances by Markus Gross. <ul><li>Swept-plane scanner produces a colored point cloud : a set of 3D points </li></ul><ul><li>Problem: how to render a point cloud to make it look like as a continuous surface? </li></ul><ul><li>Splatting: render points as overlapping colored disks </li></ul><ul><li>If normal vectors are measured as well, render points as shaded ellipses </li></ul>
    • 23. Visualizing Point Clouds: Splatting with normal vectors and colors
    • 24. Visualizing Point Clouds: File Formats <ul><li>No standard file format to store point clouds </li></ul><ul><li>Point = (x,y,z) plus (R,G,B) and/or (Nx,Ny,Nz) </li></ul><ul><li>It is easy to create an ad-hoc file format </li></ul><ul><li>Scene graph based file format: VRML </li></ul><ul><li>International standard: ISO/IEC 14772-1:97 VRML’97 </li></ul><ul><li>PointSet node includes coordinates (x,y,z) and optional colors (R,G,B), but no normals </li></ul>PointSet { coord Coordinate { point [ 0 -1 2, 1 0 0, -2 3 -1 ] } color Color { color [ 1 0 0, 0 1 0, 1 1 0 ] } }
    • 25. Visualizing Point Clouds: File Formats <ul><li>IndexedFaceSet node designed to store a polygon mesh can be used to store point clouds with optional colors and/or normal vectors </li></ul><ul><li>Store point coordinates as vertices </li></ul><ul><li>Store point colors as colors per vertex </li></ul><ul><li>Store point normal vectors as normals per vertex </li></ul><ul><li>Degenerate polygon mesh with no faces is valid VRML syntax </li></ul>IndexedFaceSet { coord Coordinate { point [ 0 -1 2, 1 0 0, -2 3 -1 ] } colorPerVertex TRUE color Color { color [ 1 0 0, 0 1 0, 1 1 0 ] } normalPerVertex TRUE normal Normal { vector [ 1 0 0, 0 1 0, 0 0 1 ] } }
    • 26. Visualizing Point Clouds: BYO3D Java Viewer
    • 27. Visualizing Point Clouds: Pointshop 3D [ Zwicker et al. 2002] M. Zwicker, M. Pauly, O. Knoll, M. Gross. Pointshop 3D: An Interactive System for Point-Based Surface Editing . ACM SIGGRAPH, 2002
    • 28. How to Get the Source Code http://mesh.brown.edu/byo3d
    • 29. For More Details http://mesh.brown.edu/byo3d
    • 30. Break Next Session: Structured Lighting and Mesh Processing http://mesh.brown.edu/byo3d

    ×