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