PLS Face Identification

This software, called PLS Face Identification (PFI), implements the one-against-all face identification method proposed in [1] and [2] (the second is an extension of the first by adding new feature descriptors). This software allows researchers to compare face identification methods to our method using datasets other than those considered in our papers.

To facilitate its usage, we provide a small data set (a subset of the FERET dataset), inside the directory SampleData in the software package.  Upon request (e-mail to william [at] dcc.ufmg.br), we will make available the cropped samples and partition files used during our experimental validation in [1] and [2] using the FERET and FRGC datasets. Note: the feature descriptors that will be extracted for the FERET example provided are different from those used in the papers. Please, contact me to obtain the feature configuration used in our papers.

This implementation has been used as part of the papers written by Schwartz et al. [1] and [2]. We kindly ask you to cite these references upon the use of this software. Please refer to the following bibtex entries.

[1] W. R. Schwartz, H. Guo, J. Choi, L. S. Davis. Face Identification Using Large Feature Sets. IEEE Transactions on Image Processing. vol. 21, n. 4, pp. 2245-2255, 2012. [pdf]

[2] W. R. Schwartz, H. Guo, L. S. Davis. A Robust and Scalable Approach to Face Identification. Proceedings of the European Conference on Computer Vision (ECCV'2010), Crete, Greece, 2010. [pdf] [poster]

Documentation

Information regarding the usage of the software can be found in its manual [pdf]. This software also provides an execution example inside the zip file.

Download

PFI version 0.0.1 is available only for windows. The zip file provides contains the executable and required libraries, the documentation and sample data to perform a small execution using samples from the FERET dataset.

filename size OS
PFI_0.0.1.zip 4,043KB

windows (32-bits)

PFI_0.0.1_64bits.zip 5,502KB windows (64-bits)

If you find bugs or problems in this software or you have suggestions to improve or make it more user friendly, please send an e-mail to william [at] dcc.ufmg.br. Note: this software cannot be used for commercial purposes.


Histogram of Shearlet Coefficients (HSC)

This library provides a C++ class called HSC to perform feature extraction using the histogram of shearlet coefficients (HSC), method proposed in [3].

Shearlet transforms provide a general framework for analyzing and representing data with anisotropic information at multiple scales. As a consequence, signal singularities, such as edges, can be precisely detected and located in images. Based on the idea of employing histograms to estimate the distribution of edge orientations and on the accurate multi-scale analysis provided by shearlet transforms, we propose a feature descriptor called Histograms of Shearlet Coefficients (HSC).

If you find bugs or problems in this software or you have suggestions to improve or make it more user friendly, please send an e-mail to williamrobschwartz [at] gmail.com.

This implementation has been used as part of the paper written by Schwartz et al. [3]. We kindly ask you to cite that reference upon the use of this code with the following bibtex entry.

[3] W.R. Schwartz, R.D. da Silva, Larry S. Davis, H. Pedrini, A Novel Feature Descriptor Based on the Shearlet Transform. IEEE International Conference on Image Processing (ICIP'2011). Brussels, Belgium, pp. 1053-1056, 2011. [pdf]

Documentation

The members of the C++ classes and an example regarding how to perform feature extraction using HSC are provided in the documentation manual [pdf].

Download

This code works either on Windows or on Linux and requires OpenCV version 1.0 or superior. In Windows, a project for Visual Studio 2005 is provided. A Makefile can be used to compile all files and generate an executable example, containing an example of usage. To incorporate this library in your project, copy every .cpp and .h file to your directory and compile them with your code. Then, call the methods provided by the class HSC.

filename size OS
hsc_0.0.1.zip 229KB

linux/windows



PLS NIPALS C++

This library provides a C++ class to execute Partial Least Squares (PLS) NIPALS method for a scalar response variable for both dimension reduction or regression. It provides a class composed of methods to build, load, and store a PLS model, project feature vectors onto the PLS model and retrieve its low dimensional representation.

PLS handles data in high dimensional feature spaces and can be employed as a dimensionality reduction technique. PLS is a powerful technique that provides dimensionality reduction for even hundreds of thousands of variables, considering the response variable in the process. The latter point is in contrast to traditional dimensionality reduction techniques such as Principal Component Analysis (PCA).

The implementation of the NIPALS algorithm provided in this library is a translation from the MATLAB version of the NIPALS algorithm written by Dr. Hervé Abdi from The University of Texas at Dallas. This code requires OpenCV version 1.0 or superior.

If you find bugs or problems in this software or you have suggestions to improve or make it more user friendly, please send an e-mail to williamrobschwartz [at] gmail.com.

This implementation has been used as part of the human detector approach developed by Schwartz et al. [4]. We kindly ask you to cite that reference upon the use of this code with the following bibtex entry.

[4] W.R. Schwartz, A. Kembhavi, D. Harwood, L.S. Davis. Human Detection Using Partial Least Squares Analysis. Proceedings of the International Conference on Computer Vision (ICCV'2009), Kyoto, Japan, September 27 - October 4, 2009. [pdf]

Documentation

The members of the C++ classes and examples regarding how to execute the PLS NIPALS are provided in the documentation manual [pdf].

Download

This code works either on Windows or on Linux. For Windows, a project for Visual Studio 2005 is provided. A Makefile can be used to compile all files and generate an executable main containing examples of usage. To incorporate this library in your project, copy every .cpp and .h file to your directory and compile them with your code. Then call the methods provided by the class Model. A Matlab implementation for PLS written by Dr. Hervé Abdi, from University of Texas at Dallas, can be found here.

filename size OS
pls_0.0.1.zip 523KB

linux/windows



DetectorPLS

DetectorPLS is an implementation of the paper Human Detection Using Partial Least Squares Analysis. W.R. Schwartz, A. Kembhavi, D. Harwood, L. S. Davis. In proceedings of the ICCV. Kyoto, Japan, 2009 [pdf] [project webpage].

The goal of this implementation is to allow researchers to perform detection using already learned models for applications such as human and face detection and also provide a simple way of learning new object models for detection by providing exemplars of the positive and negative samples. As described in our paper, the detection method is based on the extraction of a rich set of features based on edges, colors and textures analyzed by partial least squares (PLS).

The current implementation provides two modules: detection and learning. The detection module performs object detection in multiple scales where the user is allow to input a single image, a directory containing multiple images specified by a extension, or a video. While the learning module allows the user to perform training of new object models by providing directories containing negative and positive exemplars of an object class to be learned.

If you find bugs or problems in this software or you have suggestions to improve or make it more user friendly, please send an e-mail to williamrobschwartz [at] gmail.com.

Documentation

Some execution examples to perform detection using the PLS models are provided in README.txt in the zipfile. In addition, the README.txt shows examples of how the executable can be used to learn new PLS models with training sets provided by the user (examples are given to face detection using Caltech training set).

A more comprehensive documentation, explaining the set of command line parameters available can be found in the manual, also provided with the software.

A powerpoint presentation introducing the software is available in this link (presentation in [pdf]).

Download

DetectorPLS version 0.0.1 is available only for windows in two packages. The second package contains, in addition to the executable for detection, the training set used to learn the PLS model for face detection, so that one can follow the steps necessary to learn a new PLS model from samples of a class of objects.

filename size OS
DetectorPLS.v.0.1.1.zip 32,902KB

windows

DetectorPLS_faces.v.0.1.1.zip 127,676KB

windows

PLS Models for Download

Several PLS models learned using different datasets can be downloaded individually from here (each model has a configuration file to be used with parameter -c).

Name Application Det. Window size stages description
hd.INRIA.64x128.1s Human detection 64x128 1

Model learned using INRIA pedestrian dataset.

hd.INRIA.64x128.2s Human detection 64x128 2

Model learned using INRIA pedestrian dataset.

fd.Caltech.32x42.1s Face detection 32x42 1

Model learned using faces in Caltech 101 dataset and INRIA pedestrian dataset for negative samples.

Benchmarks for Human Detection

Next figure shows the Detection Error Tradeoff curve for INRIA Person dataset. These results were obtained using PLS models hd.INRIA.64x128.1s (single stage) and hd.INRIA.64x128.2s (two stages) using the same experimental setup described in our ICCV'09 paper Human Detection Using Partial Least Squares Analysis [pdf].

logo

Note: the PLS models hd.INRIA.64x128.1s and hd.INRIA.64x128.2s are slightly different from the ones used to obtain the results shown in the paper (here we use PLS models created for each block and the first stage is computed using a subset of blocks considering HOG features).

Detection Speed

In the next table we show some sample average speeds for human detection using model hd.INRIA.64x128.2s when a single core is considered (this model is provided with the software and can be used with option -c Config.hd.INRIA.64x128.2s.txt).

Processor Image size Scales sec/frame
Intel Xeon 5140 (2.33GHz) 640x480

16

120.2s
Intel i7 860 (2.80GHz) 640x480

16

69.0s