libHIK: clustering and classifying histograms

libHIK is a collection of functions relating to histograms, which are arguably the most popular representation in computer vision.

Changed to v 2.07 on Apr 27, 2012--updated for compile with opencv 2.3 and Windows compatibility.


When examples are represented / encoded as histograms in a problem or dataset, the histogram intersection kernel (HIK) is proved to be very effective in both clustering and classification of such datasets. The libHIK software package provides utilities that perform HIK-based kernel clustering, SVM classification, and the generation of  bag-of-visual-words (BOV) representations of images.


There are four components within libHIK:
  • (Since version 2.0) ICD (Intersection Coordinate Descent), a fast, reliable, and scalable HIK SVM solver.
    • Only slightly slower than linear SVM
    • Scales to millions of examples and tens of thousands of feature dimensions
    • (Since version 2.05) support for exponential HIK.
  • A kernel k-means clustering method that uses the Histogram Intersection Kernel (HIK);
    • K-means and K-median clustering are also implemented in libHIK;
  • A method that makes applying HIK SVM models extremely fast on histograms that are integers;
    • We also provided ways to convert real-valued histograms to integer ones. Our experiments show that there are no obvious difference between these two – the integer version works better in many cases;
  • Use the clustering and classification methods in the bag-of-visual-words (BOV) model;
    • An implementation of the CENTRIST visual descriptor;
    • Common visual codebook generation methods used in a BOV model , e.g. k-means or Gaussian Mixture Model, use the Euclidean distance to cluster features into visual code words. However, most popular visual descriptors are histograms of image measurements. It has been shown that the HIK is more effective than the Euclidean distance in supervised learning tasks with histogram features.
    • In libHIK, we demonstrate that HIK can also be used in an unsupervised manner to significantly improve the generation of visual codebooks;
    • In addition, we propose a one-class SVM formulation to create more effective visual code words which can achieve even higher accuracy.
    • (Since version 2.06) The output values are normalized to the range [0, 1].

Source code and Manual

libHIK is written in C++, and can be built in both Linux and Windows.

The current version is 2.07, which can be downloaded from here. The file is compressed in the 7z format.

Install and usage instruction are available as a PDF (libHIK-2.06/libHIK/libHIK_v2.pdf) file in the compressed software package.

libHIK v 1.0 was published July 30 2009, updated to v 1.5 on August 10, 2009,  to version 2.0 on June 17, 2010, to version 2.01 on July 30, 2010, to version 2.05 on Sept. 26, 2010, to version 2.06 on Apr 22, 2012, to version 2.07 on Apr 27, 2012.

Please check the ChangLog file for changes in editions. A license file is also provided in libHIK.

Technical papers

Technical details are explained in the following papers.

Efficient and Effective Visual Codebook Generation Using Additive Kernels [pdf]
Jianxin Wu, Wei-Chian Tan, and James M. Rehg
Journal of Machine Learning Research, 12(Nov), 2011: pp. 3097−3118.
CENTRIST: A Visual Descriptor for Scene Categorization [pdf]
Jianxin Wu and James M. Rehg
IEEE Transactions on Pattern Analysis and Machine Intelligence, 33(8), 2011: pp. 1489-1501.
A Fast Dual Method for HIK SVM Learning [pdf]
Jianxin Wu
In: Proc. The 11th European Conference on Computer Vision (ECCV 2010), Crete, Greece, Sep. 2010, LNCS vol. 6312, pp. 552-565.
Beyond the Euclidean distance: Creating effective visual codebooks using the histogram intersection kernel [pdf]
Jianxin Wu and James M. Rehg
In: Proc. The 12th International Conference on Computer Vision (ICCV 2009), Kyoto, Japan, Sep 2009, pp. 630-637.

If you use the libHIK software, please cite appropriate paper(s) from the above.


For bug reports, inquiries, and / or suggestions, please send to me through wujx2001 AT
Jianxin Wu,
Apr 22, 2012, 3:38 AM
Jianxin Wu,
Apr 26, 2012, 9:45 PM