LIBSVM-PARALLEL-CHI2 LIBRARY Fuxin Li, Joao Carreira and Cristian Sminchisescu

Version 1.0, released on January 17th, 2012

LIBSVM-PARALLEL-CHI2 aggregates several pieces of software to provide a highly optimized MATLAB SVM interface, especially for classifying the dense histograms in computer vision. Its extends the standard LIBSVM library by Chang and Lin, to include additional SUPPORT FOR:

1) MULTICORE ARCHITECTURE: LIBSVM-PARALLEL-CHI2 uses OpenMP(R) to parallelize the kernel computations in LIBSVM. Therefore it runs much faster than conventional LIBSVM on multi-core machines, for all kinds of kernels.

2) STACKING MULTIPLE KERNELS: LIBSVM-PARALLEL-CHI2 has a special feature to specify multiple chi-square kernels with different parameters and combination weights within one dataset. This facilitates efficient out-of-core training of multiple-kernel SVM for both classification and regression.

3) SINGLE-PRECISION FLOATING-POINT DATA AS INPUT: LIBSVM-PARALLEL-CHI2 has options to use either single-precision or double-precision data for training/test input. Using single-precision saves storage space by half and improves training and testing speed. In the meanwhile, it usually does not deteriorate performan

4) DENSE REPRESENTATION: LIBSVM-PARALLEL-CHI2 adopts the dense internal representation for the input matrix to store the train/test data by Weng and wraps it for MATLAB. Using dense representation instead of the standard sparse representation provides a speed improvement of at least 40% for vision problems where features are often fairly dense.

5) EXPONENTIATED CHI-SQUARE KERNEL: $exp(-\gamma \chi^2(x,y))$. LIBSVM-PARALLEL-CHI2 uses processor-intrinsics optimized code by Lampert, to compute the chi-square distance between the objects. It is at least 3 times faster than a naive implementation.

With all the features above, besides supporting the exponential chi-square kernels used in computer vision natively, LIBSVM-PARALLEL-CHI2 can also be 15-50 X faster than the original LIBSVM on an 8-core machine.

The system has been tested on MATLAB 7.9 and 7.10 on a Linux 64-bit machine with 8 Gb of memory. For details see the README file in the package below.