vlfeat

An open library of computer vision algorithms

BSD-2-CLAUSE License

Stars
1.6K
Committers
22

VLFeat -- Vision Lab Features Library

Version 0.9.21

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 COPYING file).

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

Here <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:

> vl_demo

Check out the individual demos by editing this file: edit vl_demo.

Octave support

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>

Changes

  • 0.9.21 Maintenance release. Bugfixes.
  • 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.
  • 0.9.16 Added 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.
  • 0.9.15 Added VL_HOG (HOG features). Added VL_SVMPEGASOS and
    a vastly improved SVM implementation. Added VL_IHASHSUM (hashed
    counting). Improved INTHIST (integral histogram). Added
    VL_CUMMAX. Improved the implementation of VL_ROC and
    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
    toolbox/xtest.
  • 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.
  • 0.9.12 Fixes vl_compile and 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.