of 84/84

Iterative Closest Point Ronen Gvili

Home >Documents >Iterative Closest Point Ronen Gvili. The Problem Align two partially- overlapping meshes given...

Date post: | 22-Dec-2015 |

Category: | ## Documents |

View: | 222 times |

Download: | 2 times |

Share this document with a friend

Transcript:

- Slide 1
- Iterative Closest Point Ronen Gvili
- Slide 2
- The Problem Align two partially- overlapping meshes given initial guess for relative transform
- Slide 3
- 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)))
- Slide 4
- Motivation Shape inspection Motion estimation Appearance analysis Texture Mapping Tracking
- Slide 5
- Motivation Range images registration
- Slide 6
- Motivation Range images registration
- Slide 7
- Range Scanners
- Slide 8
- Aligning 3D Data
- Slide 9
- Corresponding Point Set Alignment Let M be a model point set. Let S be a scene point set. We assume : 1. N M = N S. 2. Each point S i correspond to M i.
- Slide 10
- Corresponding Point Set Alignment The MSE objective function : The alignment is :
- Slide 11
- Aligning 3D Data If correct correspondences are known, can find correct relative rotation/translation
- Slide 12
- Aligning 3D Data How to find correspondences: User input? Feature detection? Signatures? Alternative: assume closest points correspond
- Slide 13
- Aligning 3D Data How to find correspondences: User input? Feature detection? Signatures? Alternative: assume closest points correspond
- Slide 14
- Aligning 3D Data Converges if starting position close enough
- Slide 15
- Closest Point Given 2 points r 1 and r 2, the Euclidean distance is: Given a point r 1 and set of points A, the Euclidean distance is:
- Slide 16
- Finding Matches The scene shape S is aligned to be in the best alignment with the model shape M. The distance of each point s of the scene from the model is :
- Slide 17
- Finding Matches C the closest point operator Y the set of closest points to S
- Slide 18
- Finding Matches Finding each match is performed in O(N M ) worst case. Given Y we can calculate alignment S is updated to be :
- Slide 19
- The Algorithm Init the error to Calculate correspondence Calculate alignment Apply alignment Update error If error > threshold Y = CP(M,S),e (rot,trans,d) S`= rot(S)+trans d` = d
- Slide 20
- 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
- Slide 21
- Convergence Theorem The ICP algorithm always converges monotonically to a local minimum with respect to the MSE distance objective function.
- Slide 22
- Convergence Theorem Correspondence error : Alignment error:
- Slide 23
- Convergence Theorem Calculate correspondence Calculate alignment Apply alignment EkEk DkDk S`= rot(S)+trans Calculate correspondence Calculate alignment E k+1 D k+1
- Slide 24
- Convergence Theorem Proof :
- Slide 25
- Convergence Theorem Proof : If not - the identity transform would yield a smaller MSE than the least square alignment. Apply the alignmentq k on S 0 S k+1. Assuming the correspondences are maintained : the MSE is still d k.
- Slide 26
- Convergence Theorem Proof : After the last alignment, the closest point operator is applied : It is clear that: Thus :
- Slide 27
- Time analysis Each iteration includes 3 main steps A. Finding the closest points : O(N M ) per each point O(N M *N S ) total. B. Calculating the alignment: O(N S ) C. Updating the scene: O(N S )
- Slide 28
- Optimizing the Algorithm The best match/nearest neighbor problem : Given N records each described by K real values (attributes), and a dissimilarity measure D, find the m records closest to a query record.
- Slide 29
- Optimizing the Algorithm K-D Tree : Construction time: O(knlogn) Space: O(n) Region Query : O(n 1-1/k +k )
- Slide 30
- Slide 31
- Slide 32
- Optimizing the Algorithm The Bounds Overlap Ball query : Function BOP Local d,sum begin For d = 1 to K if Xq[d] < B-[d] sum += dist(d,Xq[d],B-[d]) else if Xq[d] > B+[d] sum += dist(d,Xq[d],B+[d]) if sum > PQ[0] return false return true;
- Slide 33
- Optimizing the Algorithm Function SEARCH(node) Local p,d,temp Begin if node == leaf if ball within bounds update PQ end d Disc[node], p Part[node] If Xq[d]
- 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.
- Slide 84
- 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.
- Slide 85
- Outliers Rejection M-Estimators Instead of minimizing the sum of square residuals, the square residuals are replaced by (r i ). Each point is assigned with a likelihood probability (weight) and after each iteration the probability is updated with respect to the residual.
- Slide 86
- The End

of 84/84

Iterative Closest Point Ronen Gvili

Embed Size (px)

Recommended