From LadypackWiki
So the first implementation to mention is David Lowe's binary that he distributes off his website.
http://www.cs.ubc.ca/~lowe/keypoints/This is fine, but not very flexible. David also confirmed that he is unable to share the source code for his implementation, although someone in RVSN seems to have gotten their hands on a copy and passed it on to me.
Andrea Vedaldi has a C (mex) matlab implemenation here:
http://www.cs.ucla.edu/~vedaldi/sift/sift.htmlNext, are the shared libraries.
Rob Hess distributes a C implementation of SIFT that uses OpenCV.
http://web.engr.oregonstate.edu/~hess/work/index.htmlI've taken a look at Rob Hess's code, and it allows for pretty detailed parameter tweaking (e.g. histogram size, DoG thresholds, etc.) If you need flexibility, this is pretty good.
Roman Stanchak distributes C++ wrappers around OpenCV, along with a SIFT implementation.
http://www.cs.wustl.edu/~rstancha/oss.phpThere is also libsift, a C# implementation that's used in autopanosift for generating panoramas.
http://www.cs.tu-berlin.de/~nowozin/libsift/David Moore and a few others are also working on a C shared library of SIFT that is optimized for recent processors. Ask him (dcm@mit.edu) for details.
Finally, if you're hard core and want super fast SIFT, Sudipta Sinha et al have implemented SIFT on a GPU. If you're not familiar with this, the idea is to offload computation onto your swank graphics card. I wasn't able to find any source distribution on his web site, but you could email him and ask.
http://cs.unc.edu/~ssinha/pubs/SinhaEDGE06.pdf"Sudipta N Sinha, Jan-Michael Frahm, Marc Pollefeys and Yakup Genc", GPU-Based Video Feature Tracking and Matching", EDGE 2006, workshop on Edge Computing Using New Commodity Architectures, Chapel Hill, May 2006.