Iterative Closest Point

Slides:



Advertisements
Similar presentations
Principal Component Analysis Based on L1-Norm Maximization Nojun Kwak IEEE Transactions on Pattern Analysis and Machine Intelligence, 2008.
Advertisements

Automatic 3D modeling from range images Daniel Huber Carnegie Mellon University Robotics Institute.
Searching on Multi-Dimensional Data
PCA + SVD.
Automatic Feature Extraction for Multi-view 3D Face Recognition
Chapter 6 Feature-based alignment Advanced Computer Vision.
Implementation of ICP Variants Pavan Ram Piratla Janani Venkateswaran.
Semi-automatic Range to Range Registration: A Feature-based Method Chao Chen & Ioannis Stamos Computer Science Department Graduate Center, Hunter College.
Nearest Neighbor. Predicting Bankruptcy Nearest Neighbor Remember all your data When someone asks a question –Find the nearest old data point –Return.
Reverse Engineering Niloy J. Mitra.
Registration of two scanned range images using k-d tree accelerated ICP algorithm By Xiaodong Yan Dec
Content Based Image Clustering and Image Retrieval Using Multiple Instance Learning Using Multiple Instance Learning Xin Chen Advisor: Chengcui Zhang Department.
Mesh Alignment Algorithms General and the Craniofacial Standard 1.
Final Class: Range Data registration CISC4/689 Credits: Tel-Aviv University.
Iterative closest point algorithms
Speed and Robustness in 3D Model Registration Szymon Rusinkiewicz Princeton University.
© University of Minnesota Data Mining for the Discovery of Ocean Climate Indices 1 CSci 8980: Data Mining (Fall 2002) Vipin Kumar Army High Performance.
1 GEOMETRIE Geometrie in der Technik H. Pottmann TU Wien SS 2007.
Scan Matching Pieter Abbeel UC Berkeley EECS
Efficient Variants of the ICP Algorithm
Detecting and Tracking Moving Objects for Video Surveillance Isaac Cohen and Gerard Medioni University of Southern California.
CS CS 175 – Week 2 Processing Point Clouds Registration.
Stereo Computation using Iterative Graph-Cuts
What is Cluster Analysis?
3D full object reconstruction from kinect Yoni Choukroun Elie Semmel Advisor: Yonathan Afflalo.
Robust estimation Problem: we want to determine the displacement (u,v) between pairs of images. We are given 100 points with a correlation score computed.
Iterative Closest Point Ronen Gvili. The Problem Align two partially- overlapping meshes given initial guess for relative transform.
כמה מהתעשייה? מבנה הקורס השתנה Computer vision.
3D Global Registration. The Problem Given: n scans around an objectGiven: n scans around an object Goal: align them allGoal: align them all First attempt:
CSE 185 Introduction to Computer Vision
CSE554AlignmentSlide 1 CSE 554 Lecture 8: Alignment Fall 2014.
CSE554AlignmentSlide 1 CSE 554 Lecture 5: Alignment Fall 2011.
7.1. Mean Shift Segmentation Idea of mean shift:
ALIGNMENT OF 3D ARTICULATE SHAPES. Articulated registration Input: Two or more 3d point clouds (possibly with connectivity information) of an articulated.
A Method for Registration of 3D Surfaces ICP Algorithm
Enforcing Constraints for Human Body Tracking David Demirdjian Artificial Intelligence Laboratory, MIT.
Forward-Scan Sonar Tomographic Reconstruction PHD Filter Multiple Target Tracking Bayesian Multiple Target Tracking in Forward Scan Sonar.
CSE554AlignmentSlide 1 CSE 554 Lecture 8: Alignment Fall 2013.
Adaptive Rigid Multi-region Selection for 3D face recognition K. Chang, K. Bowyer, P. Flynn Paper presentation Kin-chung (Ryan) Wong 2006/7/27.
EFFICIENT VARIANTS OF THE ICP ALGORITHM
Using simplified meshes for crude registration of two partially overlapping range images Mercedes R.G.Márquez Wu Shin-Ting State University of Matogrosso.
CSE 185 Introduction to Computer Vision Feature Matching.
Course14 Dynamic Vision. Biological vision can cope with changing world Moving and changing objects Change illumination Change View-point.
Mesh Resampling Wolfgang Knoll, Reinhard Russ, Cornelia Hasil 1 Institute of Computer Graphics and Algorithms Vienna University of Technology.
Example Apply hierarchical clustering with d min to below data where c=3. Nearest neighbor clustering d min d max will form elongated clusters!
Registration and Alignment Speaker: Liuyu
CSCI 631 – Foundations of Computer Vision March 15, 2016 Ashwini Imran Image Stitching.
11/25/03 3D Model Acquisition by Tracking 2D Wireframes Presenter: Jing Han Shiau M. Brown, T. Drummond and R. Cipolla Department of Engineering University.
April 21, 2016Introduction to Artificial Intelligence Lecture 22: Computer Vision II 1 Canny Edge Detector The Canny edge detector is a good approximation.
CSE 554 Lecture 8: Alignment
Data Transformation: Normalization
CENG 789 – Digital Geometry Processing 08- Rigid-Body Alignment
Line Fitting James Hayes.
Data Mining K-means Algorithm
Haim Kaplan and Uri Zwick
Geometrically Stable Sampling for the ICP Algorithm
A special case of calibration
Fitting Curve Models to Edges
Presented by: Cindy Yan EE6358 Computer Vision
Enumerating Distances Using Spanners of Bounded Degree
3D Scan Alignment Using ICP
Segmentation by fitting a model: robust estimators and RANSAC
Image Registration 박성진.
CSE 185 Introduction to Computer Vision
Shape-based Registration
Clustering.
Linear Discrimination
EM Algorithm and its Applications
Calibration and homographies
Presentation transcript:

Iterative Closest Point Ronen Gvili

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 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 images registration

Range Scanners

Aligning 3D Data

Corresponding Point Set Alignment Let 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 Alignment The MSE objective function : The alignment is :

Aligning 3D Data If correct correspondences are known, can find correct relative rotation/translation

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

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

Aligning 3D Data Converges if starting position “close enough“

Closest Point Given 2 points r1 and r2 , the Euclidean distance is: Given a point r1 and set of points A , the Euclidean distance is:

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 :

Finding Matches C – the closest point operator Y – 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 Algorithm Init the error to ∞ Calculate correspondence Y = CP(M,S),e Calculate correspondence (rot,trans,d) Calculate alignment S`= rot(S)+trans Apply alignment d` = d 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 The ICP algorithm always converges monotonically to a local minimum with respect to the MSE distance objective function.

Convergence Theorem Correspondence error : Alignment error:

Convergence Theorem Calculate correspondence Calculate alignment Apply alignment Ek Dk S`= rot(S)+trans Ek+1 Calculate correspondence Dk+1 Calculate alignment

Convergence Theorem Proof :

Convergence Theorem Proof : 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 Theorem Proof : After the last alignment, the closest point operator is applied : It is clear that: Thus :

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)

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.

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

Optimizing the Algorithm Optimizing 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 Algorithm Optimizing 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 Algorithm The Optimized K-D Tree : Construction time : Tn = 2Tn/2+kN = O(KNlogN) Search time: O(logN) Expected.

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

Optimizing the Algorithm As the ICP algorithm proceeds a sequence of vectors is generated : q1, q2, q3, q4 …

Optimizing the Algorithm Let be a small angular tolerance. Suppose : Instead of 50 iterations in the ICP , this accelerated variant converges in less than 20 iterations.

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 Variants on the following stages of ICP have been proposed: Selecting 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

Performance of Variants Can analyze various aspects of performance: Speed Stability Tolerance of noise and/or outliers Maximum initial misalignment

ICP Variants Selecting 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 points Use 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].

Normal-Space Sampling Selection of points Uniform Sampling Normal-Space Sampling

ICP Variants Selecting 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 matching Closest 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 matching Closest point :

Points matching Normal Shooting

Points matching Projection (reverse calibration) Project the sample point onto the destination mesh , from the point of view of the destination mesh’s camera.

Points matching

ICP Variants Selecting 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 pairs Constant weight. Assigning lower weights to pairs with greater point-to-point distance : Weighting based on compatibility of normals : Scanner uncertainty

Weighting of pairs The rectangles and circles indicate the scanner reflectance value.

ICP Variants Selecting 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 Pairs Corresponding 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 Pairs Distance thresholding

Rejecting Pairs Points on end vertices

Rejecting Pairs Inconsistent Pairs p1 p2 q2 q1

ICP Variants Selecting 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 minimization Sum of squared distances between corresponding points . There exist closed form solutions for rigid body transformation : SVD Quaternions Orthonoraml matrices Dual quaternions.

Error metric and minimization Sum 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 minimization Using point-to-plane distance instead of point-to-point lets flat regions slide along each other [Chen & Medioni 91]

Error metric and minimization Closest Point

Error metric and minimization Point to plane

Error metric and minimization Search for alignment : Repeatedly generating set of corresponding points using the current transformations and finding new transformations that minimizes the error metric [Chen 91]. The above method combined with extrapolation in transform space [Besl 92].

Real Time ICP

Robust Simultaneous Alignment of Multiple Range Images

Motivation

Motivation

Motivation Graph of the twenty-seven 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 Sequential : Less memory is needed. Cheap computation cost. Each alignment step is not affected by number of images. Less accurate.

Registering multiple Images Sequential : as we progress in the alignment the accumulated error is noticeable.

Registering multiple Images Simultaneous Diffusively distribute the alignment error over all overlaps of each range images. Large Computational cost.

Registering multiple Images Simultaneous The total alignment error is diffusively 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 During the first iterations it is more important to bring the sets of points closer to each other than to accurately calculate the transform . Random sub sampling of the points.

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