3D Global Registration

advertisement
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 pp)
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
Download