ICP Registration using Efficient Variants and Multi-Resolution Scheme

A fast, robust ICP, which is designed to work in hard scenarios e.g. clutter or bad initializations
Updated 3 Dec 2015

View License

This sample implements a very efficient and robust variant of the iterative closest point (ICP) algorithm. The task is to register a 3D model (or point cloud) against a set of noisy target data. The variants are put together by myself after certain tests. The task is to be able to match partial, noisy point clouds in cluttered scenes, quickly. You will find that my emphasis is on the performance, while retaining the accuracy.
There is some more text within the documentation file, which is provided along with the zip. Although, the documentation misses the references, they will put there after the update. I hope this would be useful to many, because despite the quantity of the papers, I was unable to find a quality implementation.
The main contributions come from:
1. Picky ICP:
2. Efficient variants of the ICP Algorithm:
3. Geometrically Stable Sampling for the ICP Algorithm: https://graphics.stanford.edu/papers/stabicp/stabicp.pdf
4. Multi-resolution registration:
5. Linearization of Point-to-Plane metric by Kok Lim Low:
Note that the test function requires Gabriel Peyré's read_ply m-file in here:

Cite As

Tolga Birdal (2024). ICP Registration using Efficient Variants and Multi-Resolution Scheme (https://www.mathworks.com/matlabcentral/fileexchange/47152-icp-registration-using-efficient-variants-and-multi-resolution-scheme), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Fixed a bug when no pose is found in a level of a pyramid.
movepoints added.

A bug in the normalization of the scene and the model is fixed. They are now normalized with the same parameters.

updated summary

changed the title