Home >Documents >Iterative Closest Point

Iterative Closest Point

Date post:05-Feb-2016
Category:
View:72 times
Download:0 times
Share this document with a friend
Description:
Iterative Closest Point. Ronen Gvili www.cs.tau.ac.il/~dcor/Graphics/adv-slides/ ICP .ppt. The Problem. Align two partially- overlapping meshes given initial guess for relative transform. Data Types. Point sets Line segment sets (polylines) Implicit curves : f(x,y,z) = 0 - PowerPoint PPT Presentation
Transcript:
  • Iterative Closest Point

    Ronen Gviliwww.cs.tau.ac.il/~dcor/Graphics/adv-slides/ICP.ppt

  • The ProblemAlign two partially- overlapping meshes given initial guess for relative transform

  • Data TypesPoint setsLine segment sets (polylines)Implicit curves : f(x,y,z) = 0Parametric curves : (x(u),y(u),z(u))Triangle sets (meshes)Implicit surfaces : s(x,y,z) = 0Parametric surfaces (x(u,v),y(u,v),z(u,v)))

  • MotivationShape inspectionMotion estimationAppearance analysisTexture MappingTracking

  • MotivationRange images registration

  • MotivationRange images registration

  • Range Scanners

  • Aligning 3D Data

  • Corresponding Point Set AlignmentLet M be a model point set. Let S be a scene point set.

    We assume :NM = NS.Each point Si correspond to Mi .

  • Corresponding Point Set AlignmentThe MSE objective function :

    The alignment is :

  • Aligning 3D DataIf correct correspondences are known, can find correct relative rotation/translation

  • Aligning 3D DataHow to find correspondences: User input? Feature detection? Signatures?Alternative: assume closest points correspond

  • Aligning 3D DataHow to find correspondences: User input? Feature detection? Signatures?Alternative: assume closest points correspond

  • Aligning 3D DataConverges if starting position close enough

  • Closest PointGiven 2 points r1 and r2 , the Euclidean distance is:

    Given a point r1 and set of points A , the Euclidean distance is:

  • Finding MatchesThe 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 :

  • Finding Matches C the closest point operatorY the set of closest points to S

  • Finding Matches Finding each match is performed in O(NM) worst case.Given Y we can calculate alignment

    S is updated to be :

  • The AlgorithmInit the error to Calculate correspondenceCalculate alignmentApply alignmentUpdate errorIf error > thresholdY = CP(M,S),e(rot,trans,d)S`= rot(S)+transd` = d

  • The Algorithmfunction ICP(Scene,Model)beginE` + ;(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| < Thresholdreturn (Rot,Trans);end

  • Convergence TheoremThe ICP algorithm always converges monotonically to a local minimum with respect to the MSE distance objective function.

  • Convergence TheoremCorrespondence error :

    Alignment error:

  • Convergence TheoremCalculate correspondenceCalculate alignmentEk+1Dk+1

  • Convergence TheoremProof :

  • Convergence TheoremProof : 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.

  • Convergence TheoremProof : After the last alignment, the closest point operator is applied :It is clear that:

    Thus :

  • Time analysisEach 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)

  • Optimizing the AlgorithmThe 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.

  • Optimizing the AlgorithmK-D Tree : Construction time: O(knlogn) Space: O(n) Region Query : O(n1-1/k+k )

  • Optimizing the AlgorithmThe Bounds Overlap Ball query :Function BOP Local d,sumbeginFor d = 1 to Kif 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 falsereturn true;

  • Optimizing the AlgorithmFunction SEARCH(node)Local p,d,tempBeginif node == leaf if ball within bounds update PQend d Disc[node] , p Part[node]If Xq[d]
  • Optimizing the AlgorithmOptimizing the K-D Tree :

    Motivation: In each internal node we can exclude the sub K-D tree if the distance to the partition is greater than the ball radius .Adjusting the discriminating number, the partition value , and the number of records in each bucket.

  • Optimizing the Algorithm

  • Optimizing the Algorithm

  • Optimizing the Algorithm

  • Optimizing the AlgorithmOptimizing the K-D Tree : We choose in each internal node the key with the largest spread values as the discriminator and the median as the partition value.

  • Optimizing the AlgorithmThe Optimized K-D Tree :Construction time : Tn = 2Tn/2+kN = O(KNlogN) Search time: O(logN) Expected.

  • Optimizing the AlgorithmThe Optimized K-D Tree :The algorithm can use the m-closest points to cache potentially closest points.

  • Optimizing the AlgorithmAs the ICP algorithm proceeds a sequence of vectors is generated : q1, q2, q3, q4

  • Optimizing the AlgorithmLet be a small angular tolerance.Suppose :

    Instead of 50 iterations in the ICP , this accelerated variant converges in less than 20 iterations.

  • Time analysisEach 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

    Variants on the following stages of ICP have been proposed:Selecting sample points (from one or both meshes)Matching to points in the other meshWeighting the correspondencesRejecting certain (outlier) point pairsAssigning an error metric to the current transformMinimizing the error metric w.r.t. transformation

  • Performance of VariantsCan analyze various aspects of performance:SpeedStabilityTolerance of noise and/or outliersMaximum initial misalignment

  • ICP VariantsSelecting sample points (from one or both meshes).Matching to points in the other mesh.Weighting the correspondences.Rejecting certain (outlier) point pairs.Assigning an error metric to the current transform.Minimizing the error metric w.r.t. transformation.

  • Selection of pointsUse all available points [Besl 92].Uniform subsampling [Turk 94].Random sampling in each iteration [Masuda 96].Ensure that samples have normals distributed as uniformly as possible [Rusinkiewicz 01].

  • Selection of pointsUniform SamplingNormal-Space Sampling

  • ICP VariantsSelecting sample points (from one or both meshes).Matching to points in the other mesh.Weighting the correspondences.Rejecting certain (outlier) point pairs.Assigning an error metric to the current transform.Minimizing the error metric w.r.t. transformation.

  • Points matchingClosest point in the other mesh [Besl 92].Normal shooting [Chen 91].Reverse calibration [Blais 95].Restricting matches to compatible points (color, intensity , normals , curvature ..) [Pulli 99].

  • Points matchingClosest point :

  • Points matchingNormal Shooting

  • Points matchingProjection (reverse calibration)Project the sample point onto the destination mesh , from the point of view of the destination meshs camera.

  • Points matching

  • ICP VariantsSelecting sample points (from one or both meshes).Matching to points in the other mesh.Weighting the correspondences.Rejecting certain (outlier) point pairs.Assigning an error metric to the current transform.Minimizing the error metric w.r.t. transformation.

  • Weighting of pairsConstant weight.Assigning lower weights to pairs with greater point-to-point distance :

    Weighting based on compatibility of normals : Scanner uncertainty

  • Weighting of pairsThe rectangles and circles indicate the scanner reflectance value.

  • ICP VariantsSelecting sample points (from one or both meshes).Matching to points in the other mesh.Weighting the correspondences.Rejecting certain (outlier) point pairs.Assigning an error metric to the current transform.Minimizing the error metric w.r.t. transformation.

  • Rejecting PairsCorresponding points with point to point distance higher than a given threshold.Rejection of worst n% pairs based on some metric. Pairs containing points on end vertices.Rejection of pairs whose point to point distance is higher than n*.Rejection of pairs that are not consistent with their neighboring pairs [Dorai 98] : (p1,q1) , (p2,q2) are inconsistent iff

  • Rejecting PairsDistance thresholding

  • Rejecting PairsPoints on end vertices

  • Rejecting PairsInconsistent Pairs

  • ICP VariantsSelecting sample points (from one or both meshes).Matching to points in the other mesh.Weighting the correspondences.Rejecting certain (outlier) point pairs.Assigning an error metric to the current transform.Minimizing the error metric w.r.t. transformation.

  • Error metric and minimizationSum of squared distances between corresponding points .There exist closed form solutions for rigid body transformation :SVDQuaternionsOrthonoraml matricesDual quaternions.

  • Error metric and minimizationSum of squared distances from each sample point to the plane containing the destination point (Point to Plane) [Chen 91]. No closed form solution available.

  • Error metric and minimizationUsing point-to-plane distance instead of point-to-point lets flat regions slide along each other [Chen & Medioni 91]

  • Error metric and minimizationClosest

Click here to load reader

Embed Size (px)
Recommended