Skip to content

2. Point Cloud Registration

sergeytulyakov edited this page Aug 14, 2015 · 3 revisions

Here I will detail a little bit the Iterative Closest Point Algorithm (ICP). If you want to know more, I highly encourage you to google, since there are many useful tutorials on it. Start from here and here

The goal of the algorithm is to register two point sets. By registering we mean matching, aligning, finding the transformation, that will bring the point clouds closer.

For example, consider two consecutive point clouds of a face. Although, they look similar, since they are taken from one face and very close in time, there will be some difference caused by facial expression, face or sensor movements. Now we put the clouds together and minimize the distance between the closest points of these two clouds. These closest points are sometimes referred to as correspondences.

Correspondences

Now if we find and apply the transformation that will minimize these distances, we obtain the registered point sets:

Registered clouds

On the last image, you can see how the consecutive point clouds complement each other.

In similar fashion, we can apply the same operation to a set of points cloud and obtain a scan of the face, or a personalized template. Since Kinect is a noisy sensor, one has to apply some filtering to reduce the noise. TemplateCreator.cpp does the following:

TemplateCreator Pipeline

And here are some examples of the generated templates:

Some templates

Clone this wiki locally