Coder Social home page Coder Social logo

facereclib's Introduction

http://img.shields.io/badge/docs-stable-yellow.png http://img.shields.io/badge/docs-latest-orange.png https://travis-ci.org/idiap/facereclib.svg?branch=master https://coveralls.io/repos/idiap/facereclib/badge.png?branch=master https://img.shields.io/badge/github-master-0000c0.png http://img.shields.io/pypi/v/facereclib.png http://img.shields.io/pypi/dm/facereclib.png

The Face Recognition Library

Welcome to the Face Recognition Library. This library is designed to perform a fair comparison of face recognition algorithms. It contains scripts to execute various kinds of face recognition experiments on a variety of facial image databases, and running baseline algorithms is as easy as going to the command line and typing:

$ bin/baselines.py --database frgc --algorithm eigenface

About

This library is developed at the Biometrics group at the Idiap Research Institute. The FaceRecLib is designed to run face recognition experiments in a comparable and reproducible manner.

Note

When you are working at Idiap, you might get a version of the FaceRecLib, where all paths are set up such that you can directly start running experiments. Outside Idiap, you need to set up the paths to point to your databases, please check Read Further on how to do that.

Databases

To achieve this goal, interfaces to many publicly available facial image databases are contained, and default evaluation protocols are defined, e.g.:

Algorithms

Together with that, a broad variety of traditional and state-of-the-art face recognition algorithms such as:

  • Eigenfaces [TP91]
  • Linear Discriminant Analysis [ZKC+98]
  • Probabilistic Linear Discriminant Analysis [ESM+13]
  • Local Gabor Binary Pattern Histogram Sequences [ZSG+05]
  • Graph Matching [GHW12]
  • Gaussian Mixture Modeling [MM09]
  • Inter-Session Variability Modeling [WMM+11]
  • Bayesian Intrapersonal/Extrapersonal Classifier [MWP98]

is provided. Furthermore, tools to evaluate the results can easily be used to create scientific plots, and interfaces to run experiments using parallel processes or an SGE grid are provided.

Extensions

On top of these already pre-coded algorithms, the FaceRecLib provides an easy Python interface for implementing new image preprocessors, feature types, face recognition algorithms or database interfaces, which directly integrate into the face recognition experiment. Hence, after a short period of coding, researchers can compare their new invention directly with already existing algorithms in a fair manner. Some of this code is provided as extensions of the FaceRecLib.

The CSU Face Recognition Resources

As a small example, we provide wrapper classes for the CSU face recognition resources, which you can download here in the xfacereclib.extension.CSU package. We have implemented wrappers for two face recognition algorithms:

To see how easy it is to use these tools to generate a publication, please have a look at the source code xfacereclib.paper.BeFIT2012, with the according Paper being published in [GWC12].

Finally, all parts of the FaceRecLib are well documented and thoroughly tested to assure usability, stability and comparability.

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.
[ESM+13]L. El Shafey, C. McCool, R. Wallace and S. 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.
[ZSG+05]W. Zhang, S. Shan, W. Gao, X. Chen and H. Zhang. Local Gabor binary pattern histogram sequence (LGBPHS): a novel non-statistical model for face representation and recognition. Computer Vision, IEEE International Conference on, 1:786-791, 2005.
[GHW12]M. Guenther, D. Haufe and R.P. Wuertz. Face recognition with disparity corrected Gabor phase differences. In Artificial neural networks and machine learning, volume 7552 of Lecture Notes in Computer Science, pages 411-418. 9/2012.
[MM09]C. McCool, S. Marcel. Parts-based face verification using local frequency bands. In Advances in biometrics, volume 5558 of Lecture Notes in Computer Science. 2009.
[WMM+11]R. Wallace, M. McLaren, C. McCool and S. Marcel. Inter-session variability modelling and joint factor analysis for face authentication. International Joint Conference on Biometrics. 2011.
[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.
[PBD+11]P.J. Phillips, J.R. Beveridge, B.A. Draper, G. Givens, A.J. O'Toole, D.S. Bolme, J. Dunlop, Y.M. Lui, H. Sahibzada and S. Weimer. An introduction to the Good, the Bad, & the Ugly face recognition challenge problem. Automatic Face Gesture Recognition and Workshops (FG 2011), pages 346-353. 2011.
[LBP+12]Y.M. Lui, D.S. Bolme, P.J. Phillips, J.R. Beveridge and B.A. Draper. Preliminary studies on the Good, the Bad, and the Ugly face recognition challenge problem. Computer Vision and Pattern Recognition Workshops (CVPRW), pages 9-16. 2012.
[GWC12]M. Guenther, R. Wallace and S. Marcel. An Open Source Framework for Standardized Comparisons of Face Recognition Algorithms. Computer Vision - ECCV 2012. Workshops and Demonstrations, LNCS, 7585, 547-556, 2012.

Installation

To download the FaceRecLib, please go to http://pypi.python.org/pypi/facereclib, click on the download button and extract the .zip file to a folder of your choice.

The FaceRecLib is a satellite package of the free signal processing and machine learning library Bob, and some of its algorithms rely on the CSU Face Recognition Resources. These two dependencies have to be downloaded manually, as explained in the following.

Bob

This version of the FaceRecLib relies on Bob version 2 or greater. To install Packages of Bob, please read the Installation Instructions. For Bob to be able to work properly, some dependent packages are required to be installed. Please make sure that you have read the Dependencies for your operating system.

The most simple solution is to download and extract this package, go to the console and write:

$ python bootstrap.py
$ bin/buildout

This will download all required dependent packages and install them locally. If you don't want all the database packages to be downloaded, please remove the bob.db.[database] lines from the eggs section of the file buildout.cfg in the main directory before calling the three commands above.

The CSU Face Recognition Resources

Two open source algorithms are provided by the CSU Face Recognition Resources, namely the LRPCA and the LDA-IR (a.k.a. CohortLDA) algorithm. For these algorithms, optional wrapper classes are provided in the xfacereclib.extension.CSU satellite package. By default, this package is disabled. To enable the two algorithms, please call:

$ bin/buildout -c buildout-with-csu.cfg

after downloading and patching the CSU resources, and updating the csu-dir in the buildout-with-csu.cfg file -- as explained in xfacereclib.extension.CSU.

Test your installation

To verify that your installation worked as expected, you might want to run our test utilities:

$ bin/nosetests

Usually, all tests should pass, if you use the latest packages of Bob. With other versions of Bob, you might find some failing tests, or some errors might occur.

Read further

For further documentation on this package, please read the Stable Version or the Latest Version of the documentation. For a list of tutorials on this or the other packages ob Bob, or information on submitting issues, asking questions and starting discussions, please visit its website.

Generate a local documentation

There are several file links in the documentation, which won't work correctly in the online documentation. To generate the documentation locally, type:

$ bin/sphinx-build doc sphinx
$ firefox sphinx/index.html

and read further instructions on how to use this library.

Note

Some links in the documentation require that the documentation is generated exactly with the command line bin/sphinx-build doc sphinx (see above). If you generated the documentation using another command line, please be aware that file links might not be found either.

Cite our paper

If you use the FaceRecLib in any of your experiments, please cite the following paper:

@inproceedings{Guenther_BeFIT2012,
       author = {G{\"u}nther, Manuel AND Wallace, Roy AND Marcel, S{\'e}bastien},
       editor = {Fusiello, Andrea AND Murino, Vittorio AND Cucchiara, Rita},
     keywords = {Biometrics, Face Recognition, Open Source, Reproducible Research},
        month = oct,
        title = {An Open Source Framework for Standardized Comparisons of Face Recognition Algorithms},
    booktitle = {Computer Vision - ECCV 2012. Workshops and Demonstrations},
       series = {Lecture Notes in Computer Science},
       volume = {7585},
         year = {2012},
        pages = {547-556},
    publisher = {Springer Berlin},
     location = {Heidelberg},
          url = {http://publications.idiap.ch/downloads/papers/2012/Gunther_BEFIT2012_2012.pdf}
}

Trouble shooting

In case of further question or problems, feel free to start a new discussion in our Mailing List. When you have identified a clear bug, please go ahead and open a new ticket in our Issue Tracker.

facereclib's People

Contributors

khoury avatar tiagofrepereira2012 avatar ivana7c avatar

Watchers

James Cloos avatar chongbingbao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.