From Tekkotsu Wiki

Revision as of 03:16, 5 November 2009 by (Talk)
Jump to: navigation, search

SIFT (Scale Invariant Feature Transform) is an algorithm for extracting features from an image for use in object recognition and tracking. SIFT was created by David Lowe of the University of British Columbia. The Tekkotsu SIFT Tool is an interactive program for training a SIFT-based object recognizer from sample images.


Installing the Tekkotsu SIFT Tool

Follow these steps to install the tool:

> cd /usr/local
> sudo cvs -d checkout -P sift-tool
> cd /usr/local/sift-tool
> sudo make

Note: the Makefile tries to find a directory containing a good copy of jni.h, which is required to compile the Java portion of the tool. If it cannot find jni.h you will have to edit the Makefile and manually point it to the directory containing this file.

If you would like to try the tool on a collection of sample images, do this:

> cd /usr/local/sift-tool
> sudo unzip

Running the SIFT Tool

To use the tool you will need a set of black-and-white training images. At present these must be ASCII PGM files. If you have GIF, PNG, or JPEG images, you can convert them to PGM format using common image processing tools such as Gimp or xv.

Start the SIFT tool by typing:

> /usr/local/sift-tool/sift-tool

The first time you run it, you will not have any pre-existing database to load, so create a new one. Then, to create a new object class, click on "Create object" and navigate to the directory where your PGM images are stored. Select an image and the tool will extract its features and make a new object model. To add additional examples of the same object class, click on "Add exemplar". You usually don't need to use the "Add model" feature; the system figures out for itself when it needs to add a new model for an object class. Save your database before exiting.

Background Information on SIFT

To Do List

  • Finish the Tekkotsu interface so we can call the matcher from inside Tekkotsu
  • Accept other image formats (GIF, PNG, JPEG)
  • Allow image capture from an attached webcam
  • Use a more compact file format to store the database