Professional Documents
Culture Documents
Ronen Gvili
The Problem
Data Types
Point sets
Line segment sets (polylines)
Implicit curves : f(x,y,z) = 0
Parametric curves : (x(u),y(u),z(u))
Triangle sets (meshes)
Implicit surfaces : s(x,y,z) = 0
Parametric surfaces
(x(u,v),y(u,v),z(u,v)))
Motivation
Shape inspection
Motion estimation
Appearance analysis
Texture Mapping
Tracking
Motivation
Range images
registration
Motivation
Range Scanners
Aligning 3D Data
We assume :
1.
NM = NS.
2.
NS
i 1
mi Rot ( si ) Trans
NS
m R(q
i 1
) si qT
The alignment is :
(rot , trans, d mse ) ( M , S )
Aligning 3D Data
Aligning 3D Data
Aligning 3D Data
Aligning 3D Data
Closest Point
d (r1 , r2 ) r1 r2 ( x1 x2 ) 2 ( y1 y2 ) 2 ( z1 z 2 ) 2
Finding Matches
d ( s, M ) min d m s
mM
Finding Matches
d ( s, M ) min d m s d ( s, y )
mM
yM
Y C (S , M )
Y M
C the closest point operator
Y the set of closest points to S
Finding Matches
(rot , trans, d ) ( S , Y )
S is updated to be :
The Algorithm
Init the error to
Y = CP(M,S),e
(rot,trans,d)
S`= rot(S)
+trans
d` = d
Calculate
correspondence
Calculate alignment
Apply alignment
Update error
If error > threshold
The Algorithm
function ICP(Scene,Model)
begin
E` + ;
(Rot,Trans) In Initialize-Alignment(Scene,Model);
repeat
E E`;
Aligned-Scene Apply-Alignment(Scene,Rot,Trans);
Pairs Return-Closest-Pairs(Aligned-Scene,Model);
(Rot,Trans,E`) Update-Alignment(Scene,Model,Pairs,Rot,Trans);
Until |E`- E| < Threshold
return (Rot,Trans);
end
Convergence Theorem
Convergence Theorem
Correspondence error :
1
ek
NS
NS
i 1
yik sik
Alignment error:
1
dk
NS
NS
i 1
Convergence Theorem
Ek
Dk
S`= rot(S)
+trans
Ek+1
Dk+1
Calculate
correspondence
Calculate alignment
Apply alignment
Calculate
correspondence
Calculate alignment
Convergence Theorem
Proof :
S k Rot k ( S 0 ) Trans k
Yk C ( M , sk )
NS
1
ek
NS
1
dk
NS
NS
i 1
i 1
yik sik
Convergence Theorem
Proof : d k ek
If not - the identity transform would
yield a smaller MSE than the least
square alignment.
Apply the alignmentqk on S0 Sk+1 .
Assuming the correspondences are
maintained : the MSE is still dk.
1 NM
2
dk
yik Sik
N M i 1
Convergence Theorem
Proof :
After the last alignment, the closest
point operator is applied : Y C ( M , S )
k 1
k 1
It is clear that:
yi ,k 1 Si ,k 1 yik Si ,k 1
ek 1 d k
Thus :
0 d k 1 ek 1 d k ek
Time analysis
Each iteration includes 3 main steps
A. Finding the closest points :
O(NM) per each point
O(NM*NS) total.
B. Calculating the alignment: O(NS)
C. Updating the scene: O(NS)
K-D Tree :
Construction time: O(knlogn)
Space: O(n)
Region Query : O(n1-1/k+k )
qk qk qk 1
qk qk 1
1
k cos
qk qk 1
k & k 1
vk 0, vk 1 qk , vk 2 qk 1 vk 1
Time analysis
Each iteration includes 3 main steps
A. Finding the closest points :
O(NM) per each point
O(NMlogNS) total.
B. Calculating the alignment: O(NS)
C. Updating the scene: O(NS)
ICP Variants
Performance of Variants
ICP Variants
1. Selecting sample points (from one or
both meshes).
2. Matching to points in the other mesh.
3. Weighting the correspondences.
4. Rejecting certain (outlier) point pairs.
5. Assigning an error metric to the
current transform.
6. Minimizing the error metric w.r.t.
transformation.
Selection of points
Selection of points
Uniform Sampling
Normal-Space Sampling
ICP Variants
1. Selecting sample points (from one or
both meshes).
2. Matching to points in the other mesh.
3. Weighting the correspondences.
4. Rejecting certain (outlier) point pairs.
5. Assigning an error metric to the
current transform.
6. Minimizing the error metric w.r.t.
transformation.
Points matching
Points matching
Closest point :
Points matching
Normal Shooting
Points matching
Points matching
ICP Variants
1. Selecting sample points (from one or
both meshes).
2. Matching to points in the other mesh.
3. Weighting the correspondences.
4. Rejecting certain (outlier) point pairs.
5. Assigning an error metric to the
current transform.
6. Minimizing the error metric w.r.t.
transformation.
Weighting of pairs
Constant weight.
Assigning lower weights to pairs
with greater point-to-point distance :
Weight 1
Dist ( p1 , p2 )
Dist max
Weighting of pairs
The rectangles and circles
indicate the scanner
reflectance value.
ICP Variants
1. Selecting sample points (from one or
both meshes).
2. Matching to points in the other mesh.
3. Weighting the correspondences.
4. Rejecting certain (outlier) point pairs.
5. Assigning an error metric to the
current transform.
6. Minimizing the error metric w.r.t.
transformation.
Rejecting Pairs
Rejecting Pairs
Distance thresholding
Rejecting Pairs
Points on end vertices
Rejecting Pairs
Inconsistent Pairs
q1
q2
p1
p2
ICP Variants
1. Selecting sample points (from one or
both meshes).
2. Matching to points in the other mesh.
3. Weighting the correspondences.
4. Rejecting certain (outlier) point pairs.
5. Assigning an error metric to the
current transform.
6. Minimizing the error metric w.r.t.
transformation.
SVD
Quaternions
Orthonoraml matrices
Dual quaternions.
Closest Point
Point to plane
Robust Simultaneous
Alignment of Multiple Range
Images
Motivation
Motivation
Motivation
Graph of the twentyseven registered scans
of the Cathedral data
set. The nodes
correspond to the
individual range scans.
The edges show pair
wise alignments.
The directed edges
show the paths from
each scan to the pivot
scan that is used as an
anchor.
Motivation
Motivation
Registering multiple
Images
1.
2.
3.
4.
Sequential :
Less memory is needed.
Cheap computation cost.
Each alignment step is not afected
by
number of images.
Less accurate.
Registering multiple
Images
Sequential :
as we progress in the alignment
the accumulated error is
noticeable.
Registering multiple
Images
1.
2.
Simultaneous
Difusively distribute the alignment
error over all overlaps of each range
images.
Large Computational cost.
Registering multiple
Images
Simultaneous
The total alignment error is
difusively distributed among all
pairs.
The Algorithm
Array KDTrees, Scenes, PointMates, Transforms
foreach r in AllRangeImages
foreach s in AllRangeImage-r
Scenes[s] = s
foreach i in Pointsof(r)
foreach s in Scenes
PointMates[i] += CorrespondenceSearch(i,KDTree[s])
Transforms[r] = TransformationStep(PointMates)
TransformAll(AllRangeImages, Transforms)
Speeding Up
Outliers Rejection
Outlier thresholding:
standard deviation of the error.
Eliminate matches with error > |k|
Some valid points might be classified as
outliers, and some outliers might be
classified as valid points.
Outliers Rejection
Median/Rank estimation:
Calculate the median, which is (almost
guaranteed) valid point and use its error
as estimation, i.e. Least Median of
Squares.
Requires exhaustive search.
Outliers Rejection
M-Estimators
Instead of minimizing the sum of square
residuals , the square residuals are
replaced by (ri).
Each point is assigned with a likelihood
probability (weight) and after each
iteration the probability is updated with
respect to the residual.
The End