CSAIL logo

LIBPMK: A Pyramid Match Toolkit

About | Users | Downloads | Extensions | Documentation | FAQ | Links | Contact

Latest version: 2.5 (ChangeLog)


LIBPMK is a C++ implementation of Grauman and Darrell's Pyramid Match algorithm. This toolkit provides a flexible framework with which you can quickly match sets of image features and run experiments. LIBPMK has a wide range of features, including:

This toolkit is currently being actively maintained; please check back often for updates.

LIBPMK implements the algorithms described in the following papers (Show BibTeX entries):

  author    = {K. Grauman and T. Darrell},
  title     = {The Pyramid Match Kernel: Discriminative Classification with Sets of Image Features},
  booktitle = {IEEE International Conference on Computer Vision},
  year      = {2005},
  address   = {Beijing, China},
  month     = {October},

  author    = {K. Grauman and T. Darrell},
  title     = {Approximate Correspondences in High Dimensions},
  booktitle = {Advances in Neural Information Processing Systems 19},
  editor    = {B. Scholkopf and J.C. Platt and T. Hofmann},
  publisher = {MIT Press},
  address   = {Cambridge, MA},
  year      = {2007},
* This module of the software package includes a version of LIBSVM which handles the running of SVM experiments. For details, please see: When using this code, please cite LIBPMK as follows:
  author      = {John J. Lee},
  institution = {MIT Computer Science and Artificial Intelligence Laboratory},
  month       = {April},
  number      = {MIT-CSAIL-TR-2008-17},
  title       = {LIBPMK: A Pyramid Match Toolkit},
  year        = {2008},
  url         = {http://hdl.handle.net/1721.1/41070}

Projects that use LIBPMK

This list was made by searching Google for "libpmk"-- if you would like to link to your project from here, please contact me!


Source code

Download the latest version (2.5, released 2010-05-05): libpmk-2.5.tar.gz

Older versions are available at http://people.csail.mit.edu/jjl/libpmk/download.

Recent changes (full ChangeLog here):

Example code and data


LIBPMK is extensible and can be used for a variety of tasks. Below are some extension libraries I have written for LIBPMK. They include documentation and the full C++ source code. Each of these packages has a library component and a "tools" component, which shows examples of using the library. If you are interested in just using the code rather than writing your own applications using this library, the tools may be all you need and you will not have to write any code. Please see the included README files for details. Note: this section is obsolete and will go away soon. All of the extensions are now included with the main LIBPMK package as of version 2.5.


Tutorial: How to install, use, and write new code using libpmk. Includes a FAQ that addresses speed and performance issues.
Version 2.x class reference: Details, code specifications, and class hierarchy diagrams.
Version 1.x class reference: For those using libpmk-1.x (obsolete)


Pyramid Match project page: http://www.cs.utexas.edu/~grauman/research/projects/pmk/pmk_projectpage.htm
LIBSVM home page: http://www.csie.ntu.edu.tw/~cjlin/libsvm/


If you have any questions, suggestions, or bug reports about this implementation, please contact John Lee ()

To recieve updates about libpmk, please join the extremely low-volume (around once every few months) mailing list.