C++

This package is a C++ implementation of adaptive vocabulary trees. It provides a framework for running indexing and category learning experiments using adaptive vocabulary trees.

This package consists of four sub-packages, which need to be compiled separately. Each sub-package has its own directory:

  • avt: Implementation of adaptive vocabulary trees.
  • avt_demo: Toy demo giving examples of avt usage.
  • features: Keypoint detection and feature extraction.
  • libpmk-2.1: Core library (also available as a separate download)

All of this code depends on the standard GNU/Linux C++ libraries. The only exception is avt_demo, which has an additional dependency on libxmlrpc, which is not included in this package. libxmlrpc is available for download here.

Download: libavt-1.0.tar.gz

Compilation instructions:

1. Compile libpmk

From the libpmk-2.1 directory, type the following commands:

make libpmk
make libpmk_util

This will create the libraries that the other sub-packages depend on. Newer version of libpmk may be available at the libpmk website.

2. Compile avt

From the avt directory, compile the incremental vocabulary tree code by:

make library

This and libpmk are all that is needed to begin making your own AVT-based experiments. Examples on how to use this are given in avt_demo, which is a simple start-to-finish implementation (beginning from images, all the way up to retrieval tasks).

3. Compile features (optional)

This library is only needed for the avt_demo package. It is simply a wrapper around the binaries provided by the Oxford Visual Geometry Group (please see their download page or the README in the ‘features’ directory).

To compile this, run the following command from the features directory.

make library

4. Compile avt_demo (optional)

This package implements a server which maintains a vocabulary tree, and a client that can send data to it via XML-RPC. This requires libxmlrpc to be installed, and will require you to edit the Makefile. You will need to fill in the include path to the libxmlrpc header files. This package has been tested with libxmlrpc version 1.06.18.

To compile this, run the following two commands from the avt_directory:

 make server
 make client