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

Recommend


More recommend