July 7, 2010

Image recognition using kernel methods

This past busy year of math spé (second year of 'classes préparatoires' - the thing I'm doing in France), I've spent a bit of time working on image recognition using kernel methods, for a school report (called TIPE).

So here's the report (it's in French, sorry... I might eventually make an English version) -- For French readers: Voici mon dossier/rapport de TIPE pour l'ENS. Apprentissage par méthodes à noyaux en reconnaissance d'images

The last page shows some results of a C++ program I wrote using OpenCV and the Eigen library (for linear algebra), which can be found here (here's a zip file with some images to test with). The program performs a binary image classification task, which can classify images into two classes or categories: interior vs. exterior in the example. The program loads from an 'imgs' folder some images listed in a 'list' file with their class (+/- 1), then creates a kernel matrix of these images using the histogram intersection kernel, and prints a match value for the image given as a command line argument. If it is positive, it should mean the image belongs to the +1 class, and if negative, to the -1 class.