Iterative closest point

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Iterative Closest Point (ICP) [1][2][3] 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 (especially when wheel odometry is unreliable due to slippery terrain), to co-register bone models, etc.

In the algorithm, 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 (combination of translation and rotation) needed to minimize the distance from the source to the reference point cloud.

Inputs: reference and source point clouds, initial estimation of the transformation to align the source to the reference (optional), criteria for stopping the iterations.

Output: refined transformation.

Essentially, the algorithm steps are:

  1. For each point in the source point cloud, find the closest point in the reference point cloud.
  2. Estimate the combination of rotation and translation using a mean squared error cost function that will best align each source point to its match found in the previous step.
  3. Transform the source points using the obtained transformation.
  4. Iterate (re-associate the points, and so on).

Zhang [3] 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 two ICP variants, point-to-point, and point-to-plane. The latter usually performs better in practice.[4][5]



  1. ^ Besl, Paul J.; N.D. McKay (1992). "A Method for Registration of 3-D Shapes". IEEE Trans. on Pattern Analysis and Machine Intelligence (Los Alamitos, CA, USA: IEEE Computer Society) 14 (2): 239–256. doi:10.1109/34.121791. 
  2. ^ Chen, Yang; Gerard Medioni (1991). "Object modelling by registration of multiple range images". Image Vision Comput. (Newton, MA, USA: Butterworth-Heinemann): 145–155. doi:10.1016/0262-8856(92)90066-C. 
  3. ^ a b Zhang, Zhengyou (1994). "Iterative point matching for registration of free-form curves and surfaces". International Journal of Computer Vision (Springer) 13 (12): 119–152. doi:10.1007/BF01427149. 
  4. ^
  5. ^ François Pomerleau, Francis Colas, Roland Siegwart, and Stéphane Magnenat. Comparing ICP Variants on Real-World Data Sets. In Autonomous Robots, 34(3), pages 133–148, DOI: 10.1007/s10514-013-9327-2, April 2013.

External links[edit]