3D Global Registration The Problem • Given: n scans around an object • Goal: align them all • First attempt: ICP each scan to one other The Problem • Want method for distributing accumulated error among all scans 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 Approach #2: The Greedy Solution • Align each new scan to all previous scans • Disadvantages: – Order dependent – Doesn’t spread out error Approach #3: The 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 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 pp) Graph Methods • Many globalreg algorithms create a graph of pairwise alignments between scans Scan 3 Scan 5 Scan 1 Scan 2 Scan 4 Scan 6 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 • All alignments during globalreg phase use precomputed corresponding points 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 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 – Worse than the ICP case, since don’t converge to (incremental rotation) = 0 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 – For graph methods, pairwise ICP often automated – One bad ICP can throw off the entire model Bad ICP in Globalreg • One bad ICP can throw off the entire model Correct Globalreg Globalreg Including Bad ICP Huber’s Automatic Modeling System • Start with unaligned cans • Generate candidate pairwise alignments using spin images • Incrementally add scans, checking consistency – ICP error in overlapping regions – Free space consistency – Occupied space consistency Spin Images • Johnson and Hebert • “Signature” that captures local shape • Similar shapes similar spin images 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 Computing Spin Images • Compute histogram of locations of other points, in new coordinate system, ignoring rotation around normal: p n̂ p n̂ Computing Spin Images 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, less storage Using Spin Images for Identification Range Image Model in Database Using Spin Images for Identification Detected Models Using Spin Images for Alignment • Not robust Verification – Overlap Distance Views 1 and 2: 48%, 2.1 mm Views 1 and 9: 15%, 3.1 mm Verification – Visibility Consistency surfaces are close S1 S2 C1 C2 consistent surfaces S2 blocks S1 S1 S2 C1 C2 free space violation S1 is not observed S1 S2 C1 C2 occupied space violation Automatically Modeling the Angel 14 14 8 8 6 15 6 13 4 15 7 10 13 4 7 10 5 9 5 9 3 top view 3 12 12 11 11 2 1 initial model (bad matches in red) 2 1 connectivity after local verification horizontal slice Inferring New Pose Relations 6 14 14 6 8 8 4 4 15 13 15 13 7 7 10 10 5 9 5 3 9 3 12 12 11 11 1 2 30% overlap 1 2 1% overlap The Final Angel Model top view horizontal slice