1 2 3SIFT Feature Detection implementation 4 5Copyright (C) 2004-2005, Sebastian Nowozin (nowozin@cs.tu-berlin.de) 6 7 8 9Introduction 10============ 11 12The SIFT feature detection algorithm has been invented and published by David 13Lowe at the University of British Columbia. A detailed account of the complete 14algorithm is available at http://www.cs.ubc.ca/~lowe/papers/ijcv03-abs.html 15 16 The algorithm provides the capability to identify key feature points within 17arbitrary images. It further extracts highly distinct information for each 18such point and allows to characterize the point invariant to a number of 19modifications to the image. It is invariant to contrast/brightness changes, to 20rotation, scaling and partially invariant to other kinds of transformations. 21The algorithm can be flexibly used to create input data for image matching, 22object identification and other computer vision related algorithms. 23 24 The use of the SIFT algorithm for automatic panorama creation has been 25developed by Matthew Brown and David Lowe in their paper "Recognising 26Panoramas" available at http://www.cs.ubc.ca/~mbrown/papers/iccv2003.pdf and 27examples of this application are available at 28http://www.cs.ubc.ca/~mbrown/panorama/panorama.html 29 30 This package provides an implementation of the SIFT algorithm and a set of 31utilities to utilize the algorithm to match two or more images. As output, a 32number of control points are created, which specify one and the same image 33location in two images. The output is created as project file for the hugin 34panorama stitching software, which is available at http://hugin.sf.net/ 35 36 37License 38======= 39 40 This program is free software; you can redistribute it and/or modify 41 it under the terms of the GNU General Public License as published by 42 the Free Software Foundation; version 2 of the License. 43 44 This program is distributed in the hope that it will be useful, 45 but WITHOUT ANY WARRANTY; without even the implied warranty of 46 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 47 GNU General Public License for more details. 48 49 You should have received a copy of the GNU General Public License 50 along with this program; if not, write to the Free Software 51 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 52 53 54WARNING: 55 56 "The University of British Columbia has applied for a patent on the SIFT 57 algorithm in the United States. Applications of this software may 58 require a license from the University of British Columbia." 59 60 61The detailed license for this package is available in the "LICENSE" file, 62please read and acknowledge it before using the software. The SIFT algorithm 63is patented in the United States and as such restricted in use within the 64United States. I believe it is safe to use the software for any purpose 65outside of the US, but I will not take any guarantee for doing so. Inside the 66US, please consult the licensing office of the University of British Columbia. 67 68 69Installation 70============ 71 72Unix/Linux 73---------- 74 75You need a .NET Framework implementation, under Unix/Linux I use Mono. 76 77 - Mono (http://www.go-mono.com/) 1.0 or later 78 - GTK# (http://gtk-sharp.sf.net/) 1.0 or later. 79 80 (if you want to build it yourself) 81 - GNU make, GNU bash. 82 83 84Sorry about introducing this dependancy-bloat, but I hope in the future every 85GNU/Linux system will have a .NET Framework installed. Gentoo, Ubuntu and 86Debian/unstable have the packages already available. For Debian you need 87(mono, mono-jit, libgtk-cil). 88 89NOTE: You do not need to recompile binaries from the source code, as binaries 90 are already included in this release tarball. 91 92 93You can choose between two installation methods, where the first is 94recommended: 95 96 a) Installation from the binaries: 97 98 Copy all the files in the bin/ directory to a favorite place, for example 99 /usr/local/bin/, /opt/autopano-sift/ or any place you like. Either this 100 directory has to be within the PATH variable, or you have to modify the 101 autopano-complete.sh script's AUTOPANO_PATH variable. 102 103 b) Installation from the sources: 104 105 After ensuring you have all the dependencies, run "make clean all" in the 106 src/ directory, then install it the same ways as the binaries. 107 108 109Windows 110------- 111 112Both the command line utilities, a native Windows GUI and a simple VBS wrapper 113script for drag-and-drop functionality are available. The Gtk# GUI might also 114be usable as the Gtk# Windows port improves. Please use the supplied Windows 115installer, which also includes a VBS script you can use with autopano-sift. 116 117For build instructions, see the BUILD_WINDOWS.txt file. 118 119 120Usage 121===== 122 123CLI 124--- 125 126For using this program you should have some basic experience with the hugin 127stitching program, available at http://hugin.sourceforge.net/. 128 129The most basic use is: 130 131 ./autopano-complete.sh -o /tmp/hugin.pto image1.jpg image2.jpg 132 133Then load the hugin.pto file into hugin and adjust the field-of-view. 134Afterwards proceed as normal (optimizing and panorama creation). 135 136 137GUI 138--- 139 140The GUI is not developed right now, so its a bit outdated. It does work 141though.) 142 143You can also use the GUI by invoking: 144 145 ./autopanog.exe 146 147 148Development 149=========== 150 151Further improved and fixed versions of this package may be available at 152http://cs.tu-berlin.de/~nowozin/autopano-sift/ 153 154Please send me patches, fixes and comments for this implementation, I would be 155glad to hear them. See the TODO file for cues what needs to be improved. 156 157 158Donations 159========= 160 161If you find this program useful and it saves you time, please consider 162donating a small amount of money to support its further development :-) 163There is a donation link at http://cs.tu-berlin.de/~nowozin/autopano-sift/ 164 165 166Contact 167======= 168 169I can be reached through this email: nowozin@cs.tu-berlin.de 170 171 172 173