Research Group for Applied Software Engineering
Forschungsgruppe für Angewandte Softwaretechnik

Image Recognition: Centroidal Profile

 

About the algorithm

The centroidal profile algorithm is described in the paper Recognising Objects by their Silhouette. A short summary follows.

 

Profile generation

A centroidal profile is generated as follows.

 

  • You calculate the center, orientation, and circumference of the region.
  • You go around the circumference of the region, starting at the point closest to the main axis. If there is more than one point (can happen for concave regions), you take the one farthest from the center. You take n equidistant points from the circumference.
  • For each of those points you calculate the distance to the center.
  • The centroidal profile consists of the normalized distances.

 

Profile comparison

 

  • You can only compare profiles with the same number n of points.
  • Sum up the squares of the differences of the sample points. This yields a number 0

 

New: Centroidal profile framework

 

 

ImageTest

Here is an application for testing the centroidal profile algorithm.

Get the following files:

 

and install the application on your iBook as described in this text file:

For a short introduction, read this:

 

PostureRecognizerTest

This is an extended version of ImageTest. It has a simple segmentor built in that can deal with some test images I have made. These test images are real photos of me taken with the iSight. I tried to be really white in front of a green background, so that segmentation would be easy. 

The installation procedure is analogous to that of ImageTest.

Get the following files:

and basically do the same as for ImageTest:

The UI looks almost the same, with the following differences:

  • You can use the open dialog to load a set of models. You can still drag them onto the model display. For test images, this is the only way to get them into the program.
  • You can now choose whether to display the original image or the result of the segmentation, which is actually used to do the comparison.

I really hope this is useable.