Iterative closest point


Iterative closest point is an algorithm employed to minimize the difference between two clouds of points. ICP is often used to reconstruct 2D or 3D surfaces from different scans, to localize robots and achieve optimal path planning, to co-register bone models, etc.

Overview

In the Iterative Closest Point or, in some sources, the Iterative Corresponding Point, one point cloud, the reference, or target, is kept fixed, while the other one, the source, is transformed to best match the reference. The algorithm iteratively revises the transformation needed to minimize an error metric, usually a distance from the source to the reference point cloud, such as the sum of squared differences between the coordinates of the matched pairs. ICP is one of the widely used algorithms in aligning three dimensional models given an initial guess of the rigid body transformation required.
The ICP algorithm was first introduced by Chen and Medioni, and Besl and McKay.
The Iterative Closest Point algorithm contrasts with the Kabsch algorithm and other solutions to the orthogonal Procrustes problem in that the Kabsch algorithm requires correspondence between point sets as an input where-as Iterative Closest Point treats correspondence as a variable to be estimated.
Inputs: reference and source point clouds, initial estimation of the transformation to align the source to the reference, criteria for stopping the iterations.
Output: refined transformation.
Essentially, the algorithm steps are:
  1. For each point in the source point cloud, match the closest point in the reference point cloud.
  2. Estimate the combination of rotation and translation using a root mean square point to point distance metric minimization technique which will best align each source point to its match found in the previous step. This step may also involve weighting points and rejecting outliers prior to alignment.
  3. Transform the source points using the obtained transformation.
  4. Iterate.
Zhang proposes a modified k-d tree algorithm for efficient closest point computation. In this work a statistical method based on the distance distribution is used to deal with outliers, occlusion, appearance, and disappearance, which enables subset-subset matching.
There exist many ICP variants, from which point-to-point and point-to-plane are the most popular. The latter usually performs better in structured environments.

Implementations