1. OPEN SURF :http://www.chrisevansdev.com/computer-vision-opensurf.html
-----------------------------------------------------------------------------------------------------------------------------------
The task of finding point correspondences between two images of the same scene or object is an integral part of many machine vision or computer vision systems. The algorithm aims to find salient regions in images which can be found under a variety of image transformations. This allows it to form the basis of many vision based tasks; object recognition, video surveillance, medical imaging, augmented reality and image retrieval to name a few.
This section contains links to computer vision papers referencing the OpenSURF library along with the library rewritten in other languages. Among them are comparisons of open source computer vision algorithms along with novel applications to face recognition.
If you've done any work which is based on or provides a reference to OpenSURF and wish for it to appear in this page, pleasecontact me for details.
Please also link to this page if you have found OpenSURF useful!
-----------------------------------------------------------------------------------------------------------
2. PCA-SIFT: http://www.cs.cmu.edu/~yke/pcasift/
Stable local feature detection and representation is a fundamental component of many image registration and object recognition algorithms. Mikolajczyk and Schmid recently evaluated a variety of approaches and identified the SIFT algorithm as being the most resistant to common image deformations. This paper examines (and improves upon) the local image descriptor used by SIFT. Like SIFT, our descriptors encode the salient aspects of the image gradient in the feature point's neighborhood; however, instead of using SIFT's smoothed weighted histograms, we apply Principal Components Analysis (PCA) to the normalized gradient patch. Our experiments demonstrate that the PCA-based local descriptors are more distinctive, more robust to image deformations, and more compact than the standard SIFT representation. We also present results showing that using these descriptors in an image retrieval application results in increased accuracy and faster matching.
Y. Ke and R. Sukthankar, Computer Vision and Pattern Recognition, 2004.[PDF 670KB]
PCA-SIFT (calculates representation only) source code: pcasift-0.91nd.tar.gz (700KB). You'll need the netpbm development libraries to compile this code. If you want to train PCA on your own patches, here's the Matlab code for it.training-matlab.tgz
Keypoint detection as Linux binary and modified matching program as source code from David Lowe. Works on PCA-SIFT keys and Lowe's SIFT keys. Includes example images for matching.mod_lowe_demoV2.tar.gz (430KB)
Source code for PCA-SIFT with integrated Difference of Gaussian (DoG) interest point detector can be obtained for research purposes. However, before you ask me for it, please note that the PCA-SIFT code supplied above is sufficient for most cases. If you are simply looking for the DoG interest point detector, there are many other sources online.
Dataset used in the experiments: testimages.tgz (550KB) for recall-precision curves and objects.tgz (9 MB) for image retrieval.
Links:
Parts based image retrieval
David Lowe's Keypoints
--------------------------------------------------------------------------------------------------------------------------------------
3. SIFT: http://www.cs.ubc.ca/~lowe/keypoints/
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 images.
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 are incorrect.
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.
The most complete and up-to-date reference for the SIFT feature detector is given in the following journal paper:
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:
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.
------------------------------------------------------------------------------------------------------------------------------------------------------------------
4. CUDA SURF: http://www.d2.mpi-inf.mpg.de/surf
5. GPU SIFT : http://cs.unc.edu/~ccwu/siftgpu/download.html