Demo Software: SIFT Keypoint Detector
This page provides access to a demo version of David Lowe's SIFT
keypoint detector in the form of compiled binaries that can run under
Linux or Windows. The demo software uses PGM format for image input.
It can output keypoints and all information needed for matching them
to a file in a simple ASCII format. A Matlab program and sample C
code are provided that can read the keypoints and match them between
The image on the right shows an example of matching produced by the
demo software. Features are extracted from each of the two images,
and lines are drawn between features that have close matches.
In this example, many matches are found and only a small fraction
The demo program can be accessed from the following link in the form of a
zip file containing the compiled binaries and demo code. To unpack,
use "unzip siftDemoV4.zip" from Linux or an unzip utility in Windows.
The code comes with a file README giving full details.
SIFT demo program (Version 4, July 2005)
This demo software is provided for research purposes only. A
license must be obtained from the University of British Columbia for
any commercial applications. The sofware is protected under a US
patent as listed below. See the
LICENSE file provided with the demo software.
- Version 4 (July 2005)
There is now a Windows binary as well as one for Linux. The Matlab
scripts have been improved and include code for matching keypoints
- Version 3 (August 2004)
This fixes a bug in the displayed orientation of arrows drawn for each
keypoint when using the "-display" option. This affects only arrow
display and not the keypoint features themselves (thanks to Yannik
Fournier, Tom Stepleton, and Rob Sim for identifying the bug).
In addition, a Matlab program is now provided for running the binary
and loading the keypoints into Matlab when running under Linux (thanks
to D. Alvaro and J.J. Guerrero for the Matlab program).
- Version 2 (September 2003)
Fixes a bug in Version 1 of the sample code for doing matching (not
the keypoints themselves) that incorrectly declared "unsigned char" as "char"
(thanks to Yongqin Xiao and Suresh Lodha for their assistance in reporting
this bug). This new version now finds more correct matches.
The new version also contains more test data and raises the
- Version 1 (June 2003)
Initial demo release.
The most complete and up-to-date reference for the SIFT feature
detector is given in the following journal paper:
- David G. Lowe,
"Distinctive image features from scale-invariant keypoints,"
International Journal of Computer Vision,
60, 2 (2004), pp. 91-110.
The SIFT approach to invariant keypoint detection was first
described in the following ICCV 1999 conference paper, which also
gives some more information on the applications to object recognition:
- David G. Lowe,
"Object recognition from local scale-invariant features,"
International Conference on Computer Vision,
Corfu, Greece (September 1999), pp. 1150-1157.
The following paper gives methods for performing 3D object recognition by
interpolating between 2D views. It also provides a probabilistic
model for verification of recognition.
- David G. Lowe,
"Local feature view clustering for 3D object recognition,"
IEEE Conference on Computer Vision and Pattern Recognition,
Kauai, Hawaii (December 2001), pp. 682-688.
- Method and apparatus for identifying scale
invariant features in an image and use of same for locating an
object in an image
- David G. Lowe, US Patent 6,711,293 (March 23, 2004). Provisional
application filed March 8, 1999. Asignee:
The University of British Columbia.