00001 /** \dir src/SIFT 00002 00003 \brief Image matching and object recognition using SIFT keypoints 00004 00005 This directory contains a suite of classes that aim at being able 00006 to match images and recognize objects in them. The general 00007 inspiration comes from David Lowe's work at the University of 00008 British Columbia, Canada. Most of the implementation was created 00009 here by carefully reading his 2004 IJCV paper. 00010 00011 Some of the code here is also based on the Hugin panorama software 00012 - see http://hugin.sourceforge.net - but substantial modifications 00013 have been made, espacially by carefully going over David Lowe's 00014 IJCV 2004 paper. Some of the code also comes from 00015 http://autopano.kolor.com/ but substantial debugging has also been 00016 made. 00017 00018 Given an image, a number of Scale-Invariant Feature Transform 00019 (SIFT) keypoints can be extracted. These keypoints mark the 00020 locations in the image which have pretty unique and distinctive 00021 local appearance; for example, the corner of a textured object, a 00022 letter, an eye, or a mouth. Many such keypoints exist in typical 00023 images, usually in the range of hundreds to thousands. 00024 00025 Given two images we can extract two lists of keypoints (class 00026 ScaleSpace, class Keypoint) and store them (class VisualObject, 00027 VisualObjectDB). We can then look for keypoints that have similar 00028 visual appearance between the two images (class KeypointMatch, 00029 class KDTree, VisualObjectMatch). Given a matching set of 00030 keypoints, we can try to recover the geometric transform that 00031 relates the first image to the second (class VisualObjectMatch). 00032 00033 This can be used to stitch two or more images together to form a 00034 mosaic or panorama. It can also be used to recognize attended 00035 locations as matching some known objects stored in an object 00036 database (see Neuro/Inferotemporal). 00037 00038 for dependency graphs: 00039 rankdir: TB 00040 */ 00041 00042 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/SIFT/README.dxy $ 00043 // $Id: README.dxy 4918 2005-07-14 00:48:51Z itti $ 00044 00045 // //////////////////////////////////////////////////////////////////// // 00046 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2001 by the // 00047 // University of Southern California (USC) and the iLab at USC. // 00048 // See http://iLab.usc.edu for information about this project. // 00049 // //////////////////////////////////////////////////////////////////// // 00050 // Major portions of the iLab Neuromorphic Vision Toolkit are protected // 00051 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency // 00052 // in Visual Environments, and Applications'' by Christof Koch and // 00053 // Laurent Itti, California Institute of Technology, 2001 (patent // 00054 // pending; application number 09/912,225 filed July 23, 2001; see // 00055 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status). // 00056 // //////////////////////////////////////////////////////////////////// // 00057 // This file is part of the iLab Neuromorphic Vision C++ Toolkit. // 00058 // // 00059 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can // 00060 // redistribute it and/or modify it under the terms of the GNU General // 00061 // Public License as published by the Free Software Foundation; either // 00062 // version 2 of the License, or (at your option) any later version. // 00063 // // 00064 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope // 00065 // that it will be useful, but WITHOUT ANY WARRANTY; without even the // 00066 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // 00067 // PURPOSE. See the GNU General Public License for more details. // 00068 // // 00069 // You should have received a copy of the GNU General Public License // 00070 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write // 00071 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, // 00072 // Boston, MA 02111-1307 USA. // 00073 // //////////////////////////////////////////////////////////////////// //