Lecture_04_1_ICP
Lecture_04_1_ICP
2
What is missing?
Given correspondences, we can find the optimal rigid alignment with
Procrustes.
PROBLEMS:
• How do we find the correspondences between shapes ?
• How do we align shapes non-rigidly ?
3
ICP and alignment based on optimisation
• Optimising alignment and correspondences using Iterative Closest
Point (ICP).
4
How do we find correspondences?
5
How do we find correspondences?
6
How do we find correspondences?
7
How do we find correspondences?
?
8
How do we find correspondences?
The idea was to minimise the sum of distances between the one set of
points and the other set, transformed
?
9
Ideas
The idea was to minimise the sum of distances between the one set of
points and the other set, transformed
10
Solution: Iteratively find correspondences
The idea was to minimise the sum of distances between the one set of
points and the other set, transformed
11
Alternate between finding correspondences
and finding the optimal transformation
The idea was to minimise the sum of distances between the one set of
points and the other set, transformed
12
Make up reasonable correspondences
13
Make up reasonable correspondences
Neutral initialization.
Initializing t to align centroids
should work better!
14
Make up reasonable correspondences
15
Solve for the best transformation
17
and iterate!
18
and iterate!
19
and iterate!
20
and iterate!
21
and iterate!
22
Iterative Closest Point (ICP)
1. Initialize
23
Iterative Closest Point (ICP)
1. Initialize
24
Iterative Closest Point (ICP)
1. Initialize
25
Iterative Closest Point (ICP)
1. Initialize
26
Iterative Closest Point (ICP)
1. Initialize
• apply transformation
29
Closest points
• Tree based methods (e.g. kdtree) have avg. complexity log(n)
31
A much better objective: Point-to-surface
distance
y2 2 Y
<latexit sha1_base64="tZWfSSSaqlE76QU68gPmAB+fPSA=">AAACBHicbVDLSsNAFJ34rPUVddnNYBFclaT46LLgxmUF+5AmhMl00g6dTMLMRAghCzf+ihsXirj1I9z5N07aCNp64MLhnHu59x4/ZlQqy/oyVlbX1jc2K1vV7Z3dvX3z4LAno0Rg0sURi8TAR5IwyklXUcXIIBYEhT4jfX96Vfj9eyIkjfitSmPihmjMaUAxUlryzJoTIjXxgyzNvSZ0KIc/wl3umXWrYc0Al4ldkjoo0fHMT2cU4SQkXGGGpBzaVqzcDAlFMSN51UkkiRGeojEZaspRSKSbzZ7I4YlWRjCIhC6u4Ez9PZGhUMo09HVncaFc9ArxP2+YqKDlZpTHiSIczxcFCYMqgkUicEQFwYqlmiAsqL4V4gkSCCudW1WHYC++vEx6zYZ90Ti/Oau3W2UcFVADx+AU2OAStME16IAuwOABPIEX8Go8Gs/Gm/E+b10xypkj8AfGxzevzZgb</latexit>
y1 2 Y
<latexit sha1_base64="9ia0P+7dh12ye8rI1ceEXCaJDDU=">AAACBHicbVDLSsNAFJ3UV62vqMtuBovgqiTio8uCG5cV7EOaECbTSTt0MgkzEyGELNz4K25cKOLWj3Dn3zhpI2jrgQuHc+7l3nv8mFGpLOvLqKysrq1vVDdrW9s7u3vm/kFPRonApIsjFomBjyRhlJOuooqRQSwICn1G+v70qvD790RIGvFblcbEDdGY04BipLTkmXUnRGriB1maezZ0KIc/wl3umQ2rac0Al4ldkgYo0fHMT2cU4SQkXGGGpBzaVqzcDAlFMSN5zUkkiRGeojEZaspRSKSbzZ7I4bFWRjCIhC6u4Ez9PZGhUMo09HVncaFc9ArxP2+YqKDlZpTHiSIczxcFCYMqgkUicEQFwYqlmiAsqL4V4gkSCCudW02HYC++vEx6p037onl+c9Zot8o4qqAOjsAJsMElaINr0AFdgMEDeAIv4NV4NJ6NN+N93loxyplD8AfGxzeuOpga</latexit>
y0 2 Y
<latexit sha1_base64="mRy+IT2Eizo45Cpp6cu/op1+a3Y=">AAACBHicbVDLSsNAFJ3UV62vqMtuBovgqiTio8uCG5cV7EOaECbTSTt0MgkzEyGELNz4K25cKOLWj3Dn3zhpI2jrgQuHc+7l3nv8mFGpLOvLqKysrq1vVDdrW9s7u3vm/kFPRonApIsjFomBjyRhlJOuooqRQSwICn1G+v70qvD790RIGvFblcbEDdGY04BipLTkmXUnRGriB1maexZ0KIc/wl3umQ2rac0Al4ldkgYo0fHMT2cU4SQkXGGGpBzaVqzcDAlFMSN5zUkkiRGeojEZaspRSKSbzZ7I4bFWRjCIhC6u4Ez9PZGhUMo09HVncaFc9ArxP2+YqKDlZpTHiSIczxcFCYMqgkUicEQFwYqlmiAsqL4V4gkSCCudW02HYC++vEx6p037onl+c9Zot8o4qqAOjsAJsMElaINr0AFdgMEDeAIv4NV4NJ6NN+N93loxyplD8AfGxzesp5gZ</latexit>
32
Closest points: avoid local minima
Point-to-point distance
33
Closest points: avoid local minima
Point-to-surface distance
34
Is ICP the best we can do?
Iteration j:
• compute closest points
• apply transformation
36
Iterative Closest Point (ICP)
Iteration j:
• compute closest points è Which direction to move?
• apply transformation
42
Why is convergence on the left less smooth?
44
Gradient-based ICP
• Gradient: derivative of the sum of squared
distances with respect to transformation f
parameters
45
Gradient-based ICP
• Gradient: derivative of the sum of squared
distances with respect to transformation f
parameters
46
Gradient-based ICP
• Gradient: derivative of the sum of squared
distances with respect to transformation f
parameters
47
Automatic differentiation
48
Gradient-based ICP
• Energy:
49
Why Gradient-based ICP?
• Formulation is much more generic: the energy can incorporate other
terms, more parameters, etc
• A lot of available software for solving this least squares problem (cvx,
ceres, …)
• However, the resulting energy is non-convex for general deformation
models. Optimisation can get trapped in local minima.
50
Take-home message
• Procrustes is optimal for rigid alignment problems with known
correspondences. For other problems:
51
Slide credits
• Javier Romero