Running Biometric Recognition Experiments

The bob.bio packages provide open source tools to run comparable and reproducible biometric recognition experiments. To design a biometric recognition experiment, one has to choose:

  • a databases containing the original data, and a protocol that defines how to use the data,
  • a data preprocessing algorithm, i.e., face detection for face recognition experiments or voice activity detection for speaker recognition
  • the type of features to extract from the preprocessed data,
  • the biometric recognition algorithm to employ, and
  • the way to evaluate the results

For any of these parts, several different types are implemented in the bob.bio packages, and basically any combination of the five parts can be executed. For each type, several meta-parameters can be tested. This results in a nearly infinite amount of possible experiments that can be run using the current setup. But it is also possible to use your own database, preprocessor, feature extractor, or biometric recognition algorithm and test this against the baseline algorithms implemented in the our packages.

Note

The bob.bio packages are derived from the former FaceRecLib, which is herewith outdated.

This package bob.bio.base includes the basic definition of a biometric recognition experiment, as well as a generic script, which can execute the full biometric experiment in a single command line. Changing the employed tolls such as the database, protocol, preprocessor, feature extractor or recognition algorithm is as simple as changing a command line parameter.

The implementation of (most of) the tools is separated into other packages in the bob.bio namespace. All these packages can be easily combined. Here is a growing list of derived packages:

  • bob.bio.spear Tools to run speaker recognition experiments, including voice activity detection, Cepstral feature extraction, and speaker databases
  • bob.bio.face Tools to run face recognition experiments, such as face detection, facial feature extraction and comparison, and face image databases
  • bob.bio.video An extension of face recognition algorithms to run on video data, and the according video databases
  • bob.bio.gmm Algorithms based on Gaussian Mixture Modeling (GMM) such as Inter-Session Variability modeling (ISV) or Total Variability modeling (TV, aka. I-Vector)
  • bob.bio.csu Wrapper classes for the CSU Face Recognition Resources to be run with bob.bio.

If you are interested, please continue reading:

References

[TP91]M. Turk and A. Pentland. Eigenfaces for recognition. Journal of Cognitive Neuroscience, 3(1):71-86, 1991.
[ZKC+98]W. Zhao, A. Krishnaswamy, R. Chellappa, D. Swets and J. Weng. Discriminant analysis of principal components for face recognition, pages 73-85. Springer Verlag Berlin, 1998.
[Pri07]S. J. D. Prince. Probabilistic linear discriminant analysis for inferences about identity. Proceedings of the International Conference on Computer Vision. 2007.
[ESM+13]L. El Shafey, Chris McCool, Roy Wallace and Sébastien Marcel. A scalable formulation of probabilistic linear discriminant analysis: applied to face recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 35(7):1788-1794, 7/2013.
[MWP98]B. Moghaddam, W. Wahid and A. Pentland. Beyond eigenfaces: probabilistic matching for face recognition. IEEE International Conference on Automatic Face and Gesture Recognition, pages 30-35. 1998.
[GW09]M. Günther and R.P. Würtz. Face detection and recognition using maximum likelihood classifiers on Gabor graphs. International Journal of Pattern Recognition and Artificial Intelligence, 23(3):433-461, 2009.

ToDo-List

This documentation is still under development. Here is a list of things that needs to be done:

Todo

complete this list, once the other packages are documented as well.

(The original entry is located in /home/travis/build/bioidiap/bob.bio.base/doc/implementation.rst, line 197.)

Todo

Add more documentation for the PLDA constructor, i.e., by explaining the parameters

(The original entry is located in /home/travis/build/bioidiap/bob.bio.base/bob/bio/base/algorithm/__init__.py:docstring of bob.bio.base.algorithm.PLDA, line 3.)

Todo

Check if the None protocol is supported.

(The original entry is located in /home/travis/build/bioidiap/bob.bio.base/bob/bio/base/database/__init__.py:docstring of bob.bio.base.database.Database, line 28.)

Todo

Find a way that this class’ methods get correctly documented, instead of the bob.bio.base.Singleton wrapper class.

(The original entry is located in /home/travis/build/bioidiap/bob.bio.base/bob/bio/base/tools/FileSelector.py:docstring of bob.bio.base.tools.FileSelector, line 5.)

Indices and tables