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

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

Date post:22-Dec-2015
Category:
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