3d fusion 3d photography course schedule
play

3D Fusion 3D photography course schedule Topic Feb 21 Introduction - PowerPoint PPT Presentation

3D Registration 3D Fusion 3D photography course schedule Topic Feb 21 Introduction Feb 28 Lecture: Geometry, Camera Model, Calibration Mar 7 Lecture: Features & Correspondences Mar 14 Project Proposals Mar 21 Lecture: Epipolar


  1. 3D Registration 3D Fusion

  2. 3D photography course schedule Topic Feb 21 Introduction Feb 28 Lecture: Geometry, Camera Model, Calibration Mar 7 Lecture: Features & Correspondences Mar 14 Project Proposals Mar 21 Lecture: Epipolar Geometry Mar 28 Depth Estimation + 2 papers Apr 4 Single View Geometry + 2 papers Apr 11 Active Ranging and Structured Light + 2 papers Apr 18 Project Updates Apr. 25 --- Easter --- May 2 SLAM + 2 papers May 9 3D & Registration + 2 papers May 16 SfM/Self Calibration + 2 papers May 23 Shape from Silhouettes + 2 papers May 30 Final Projects (if not demo day)

  3. 3D modeling • Aligning range images • Pairwise • Globally • Surface reconstruction • Single range image • Merged (some slides from S. Rusinkiewicz, J. Ponce,…)

  4. Aligning 3D Data • If correct correspondences are known, it is possible to find correct relative rotation/translation

  5. Intermezzo : quaternions q is a quaternion, q = a +  a  R is its real part, and   R 3 is its imaginary part. Operations on quaternions: • Sum of quaternions: • Multiplication by a scalar: • Quaternion product: • Conjugate: ) • Norm: Note:

  6. Intermezzo : quaternions and rotations Let R denote the rotation of angle  about the unit vector u . Define Then for any vector  , Reciprocally, if q = a + ( b , c , d ) T is a unit quaternion, the corresponding rotation matrix is:

  7. Estimate rigid transformation Problem: Find the rotation matrix R and the vector t that minimize n E =  | x i ’ – R x i – t | 2 . i=1 n At a minimum: 0 =  E /  t = – 2  ( x i ’ – R x i – t ) . i=1 Or.. t = x ’ – R x . If y i = x i – x and y i ’ = x i ’ – x ’, the error is (at a minimum): n n n E =  | y i ’ – R y i | 2 =  | y i ’ q – q y i | 2 =  | y i ’ – q y i q| 2 |q| 2 i=1 i=1 i=1 Or E = Linear least squares !!

  8. Aligning 3D Data • How to find corresponding points? • Previous systems based on user input, feature matching, surface signatures, etc.

  9. Spin Images • Johnson and Hebert • “Signature” that captures local shape • Similar shapes  similar spin images

  10. Computing Spin Images • Start with a point on a 3D model • Find (averaged) surface normal at that point • Define coordinate system centered at this point, oriented according to surface normal and two (arbitrary) tangents • Express other points (within some distance) in terms of the new coordinates

  11. Computing Spin Images • Compute histogram of locations of other points, in new coordinate system, ignoring rotation around normal:    p  p   ˆ ˆ n n “radial dist.”    p  p   ˆ ˆ n n “elevation”

  12. Computing Spin Images “elevation” “radial dist.”

  13. Spin Image Parameters • Size of neighborhood • Determines whether local or global shape is captured • Big neighborhood: more discriminatory power • Small neighborhood: resistance to clutter • Size of bins in histogram: • Big bins: less sensitive to noise • Small bins: captures more detail

  14. Alignment with Spin Image • Compute Spin Image for each point / subset of points in both sets • Find similar spin images => potential correspondences • Compute alignment from correspondences  Same problems as with image matching: - Robustness of descriptor vs. discriminative power - Mismatches => robust estimation required

  15. Solving 3D puzzles with VIPs SIFT features VIP features • Extracted from 2D images • Extracted from 3D model • Variation due to viewpoint • Viewpoint invariant (Wu et al., CVPR08) Presented afterwards ! 15

  16. Aligning 3D Data Alternative: assume closest points correspond to each other, compute the best transform…

  17. Aligning 3D Data … and iterate to find alignment Iterated Closest Points (ICP) [Besl & McKay 92] Converges if starting position “close enough“

  18. ICP Variant – Point-to-Plane Error Metric • Using point-to-plane distance instead of point-to- point lets flat regions slide along each other more easily [Chen & Medioni 91]

  19. Finding Corresponding Points • Finding closest point is most expensive stage of ICP • Brute force search – O(n) • Spatial data structure (e.g., k-d tree) – O(log n) • Voxel grid – O(1), but large constant, slow preprocessing

  20. Finding Corresponding Points • For range images, simply project point [Blais 95] • Constant-time, fast • Does not require precomputing a spatial data structure

  21. Efficient ICP • “Efficient Variants of the ICP algorithm” [Rusinkiewicz & Levoy, 3DIM 2001] => Presented afterwards

  22. 3D Global Registration

  23. 3D Global registration The problem: • Given: n scans around an object • Goal: align them all • First attempt: ICP each scan to one other

  24. 3D Global registration • Want method for distributing accumulated error among all scans

  25. Approach #1: Avoid the Problem • In some cases have 1 scan that covers large part of surface (e.g., cylindrical scan) • Align all other scans to this “anchor” • Disadvantage: not always practical to obtain anchor scan

  26. Approach #2: The Greedy Solution • Align each new scan to all previous scans • Disadvantages: • Order dependent • Doesn’t spread out error

  27. Approach #3: Brute-Force Solution • While not converged: • For each scan: • For each point: – For every other scan » Find closest point • Minimize error w.r.t. transforms of all scans • Disadvantage: • Solve ( np )  ( np ) matrix equation, where n is number of scans and p is number of points per scan

  28. Approach #3a: Slightly Less Brute- Force • While not converged: • For each scan: • For each point: – For every other scan » Find closest point • Minimize error w.r.t. transform of this scan • Faster than previous method (matrices are p  p )

  29. Graph Methods • Many globalreg algorithms create a graph of pairwise alignments between scans Scan 3 Scan 3 Scan 5 Scan 5 Scan 1 Scan 1 Scan 2 Scan 2 Scan 4 Scan 4 Scan 6 Scan 6

  30. Pulli’s Algorithm • Perform pairwise ICPs, record sample (e.g. 200) of corresponding points • For each scan, starting w. most connected • Align scan to existing set • While (change in error) > threshold • Align each scan to others

  31. Sharp et al. Algorithm • Perform pairwise ICPs, record only optimal rotation/translation for each • Decompose alignment graph into cycles • While (change in error) > tolerance • For each cycle: • Spread out error equally among all scans in the cycle • For each scan belonging to more than 1 cycle: • Assign average transform to scan

  32. Lu and Milios Algorithm • Perform pairwise ICPs, record optimal rotation/translation and covariance for each • Least squares simultaneous minimization of all errors (covariance-weighted) • Requires linearization of rotations

  33. Open Questions in Global Registration • Best way to do correctly-weighted globalreg without linearizing rotations? • How to prevent bias (if many scans in one area, few scans in another)? • Robust outlier detection • One bad ICP can throw off the entire model

  34. Surface Reconstruction

  35. Problems With Reconstruction from General Point Clouds

  36. Surface Reconstruction from Range Images • Often an easier problem than reconstruction from arbitrary point clouds • Implicit information about adjacency, connectivity • Roughly uniform spacing

  37. Surface Reconstruction From Range Images • First, construct surface from each range image • Then, merge resulting surfaces • Obtain average surface in overlapping regions • Control point density

  38. Range Image Tesselation • Given a range image, connect up the neighbors

  39. 3D surface model Depth image Texture image Triangle mesh Textured 3D Wireframe model

  40. Range Image Tesselation • Caveat #1: can’t be too aggressive • Introduce distance threshold for tesselation

  41. Range Image Tesselation • Caveat #2: Which way to triangulate? • Possible heuristics: • Shorter diagonal • Dihedral angle closer to 180  • Maximize smallest angle in both triangles • Always the same way (best triangle strips)

  42. Scan Merging Using Zippering • Turk & Levoy, 1994 • Erode geometry in overlapping areas • Stitch scans together along seam • Re-introduce all data • Weighted average

  43. Zippering

  44. Point Weighting • Higher weights to points facing the camera • Favor higher sampling rates

  45. Point Weighting • Lower weights (tapering to 0) near boundaries • Smooth blends between views

  46. Volumetric Reconstruction • Implicit function defined volumetrically • Usually stored sampled on a 3D grid • Can be compressed (e.g., using RLE) • Another possibility: hierarchical data structures • Can extract isosurface (i.e., subset of space where implicit function = some constant)

  47. Volumetric Reconstruction Overview • Generate signed distance function (or something close to it) for each scan • Compute average (possibly weighted) • Extract isosurface

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend