VLFeat -- Vision Lab Features Library
The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and local featurexs extraction and matching. Algorithms incldue Fisher Vector, VLAD, SIFT, MSER, k-means, hierarchical k-means, agglomerative information bottleneck, SLIC superpixes, quick shift superpixels, large scale SVM training, and many others. It is written in C for efficiency and compatibility, with interfaces in MATLAB for ease of use, and detailed documentation throughout. It supports Windows, Mac OS X, and Linux.
VLFeat is distributed under the BSD license (see the
The documentation is
available online and shipped with
the library as
doc/index.html. See also:
Quick start with MATLAB
To start using VLFeat as a MATLAB toolbox, download the latest VLFeat binary package. Note that the pre-compiled binaries require MATLAB 2009B and later. Unpack it, for example by using WinZIP (Windows), by double clicking on the archive (Mac), or by using the command line (Linux and Mac):
> tar xzf vlfeat-X.Y.Z-bin.tar.gz
Here X.Y.Z denotes the latest version. Start MATLAB and run the VLFeat setup command:
> run <VLFEATROOT>/toolbox/vl_setup
<VLFEATROOT> should be replaced with the path to the VLFeat
directory created by unpacking the archive. All VLFeat demos can now
be run in a row by the command:
Check out the individual demos by editing this file:
The toolbox should be laregly compatible with GNU Octave, an open source MATLAB equivalent. However, the binary distribution does not ship with pre-built GNU Octave MEX files. To compile them use
> cd <vlfeat directory> > make MKOCTFILE=<path to the mkoctfile program>
- 0.9.20 Maintenance release. Bugfixes.
- 0.9.19 Maintenance release. Minor bugfixes and fixes compilation with MATLAB 2014a.
- 0.9.18 Several bugfixes. Improved documentation, particularly of the covariant detectors. Minor enhancements of the Fisher vectors.
- 0.9.17 Rewritten SVM implementation, adding support for SGD and SDCA optimisers and various loss functions (hinge, squared hinge, logistic, etc.) and improving the interface. Added infrastructure to support multi-core computations using OpenMP (MATLAB 2009B or later required). Added OpenMP support to KD-trees and KMeans. Added new Gaussian Mixture Models, VLAD encoding, and Fisher Vector encodings (also with OpenMP support). Added LIOP feature descriptors. Added new object category recognition example code, supporting several standard benchmarks off-the-shelf.
VL_COVDET. This function implements the following detectors: DoG, Hessian, Harris Laplace, Hessian Laplace, Multiscale Hessian, Multiscale Harris. It also implements affine adaptation, estiamtion of feature orientation, computation of descriptors on the affine patches (including raw patches), and sourcing of custom feature frame.
VL_HOG(HOG features). Added
VL_SVMPEGASOSand a vastly improved SVM implementation. Added
VL_IHASHSUM(hashed counting). Improved INTHIST (integral histogram). Added
VL_CUMMAX. Improved the implementation of
VL_ROCand VL_PR(). Added VL_DET() (Detection Error Trade-off (DET) curves). Improved the verbosity control to AIB. Added support for Xcode 4.3, improved support for past and future Xcode versions. Completed the migration of the old test code in
toolbox/test, moving the functionality to the new unit tests
- 0.9.14 Added SLIC superpixels. Added VL_ALPHANUM(). Improved Windows binary package and added support for Visual Studio 2010. Improved the documentation layout and added a proper bibliography. Bugfixes and other minor improvements. Moved from the GPL to the less restrictive BSD license.
- 0.9.13 Fixed Windows binary package.
vl_compileand the architecture string on Linux 32 bit.
- 0.9.11 Fixes a compatibility problem on older Mac OS X versions. A few bugfixes are included too.
- 0.9.10 Improves the homogeneous kernel map. Plenty of small tweaks and improvements. Make maci64 the default architecture on the Mac.
- 0.9.9 Added: sift matching example. Extended Caltech-101 classification example to use kd-trees.
- 0.9.8 Added: image distance transform, PEGASOS, floating point K-means, homogeneous kernel maps, a Caltech-101 classification example. Improved documentation.
- 0.9.7 Changed the Mac OS X binary distribution to require a less recent version of Mac OS X (10.5).
- 0.9.6 Changed the GNU/Linux binary distribution to require a less recent version of the C library.
- 0.9.5 Added kd-tree and new SSE-accelerated vector/histogram comparison code. Improved dense SIFT (dsift) implementation. Added Snow Leopard and MATLAB R2009b support.
- 0.9.4 Added quick shift. Renamed dhog to dsift and improved implementation and documentation. Improved tutorials. Added 64 bit Windows binaries. Many other small changes.
- 0.9.3 Namespace change (everything begins with a vl_ prefix now). Many other changes to provide compilation support on Windows with MATLAB 7.
- beta-3 Completes to the ikmeans code.
- beta-2 Many additions.
- beta-1 Initial public release.