skip to navigation
skip to content

xbob.thesis.elshafey2014 0.0.1a0

Experiments of Laurent El Shafey's Ph.D. thesis

This package contains scripts to reproduce the experiments of my Ph.D. thesis at Ecole Polytechnique Fédérale de Lausanne (EPFL). It was developed when I was working in the Biometrics group at the Idiap Research Institute:

  title = {Scalable Probabilistic Models for Face and Speaker Recognition},
  author = {Laurent El Shafey},
  month = {April},
  year = {2014},
  school = {Ecole Polytechnique F{\'e}d{\'e}rale de Lausanne (EPFL)},
  url = {},

In particular, this package provides instructions to combine code (see Bob, which contains the implementations of machine learning algorithms and signal processing tools) and data to generate the plots depicted in my thesis.


To download the xbob.thesis.elshafey2014 package, please go to, click on the download button and extract the .zip file to a folder of your choice.

The xbob.thesis.elshafey2014 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.


You will need a copy of Bob in version 1.2.2 to run the algorithms. Please download Bob from its webpage. After downloading, you should go to the console and write:

$ python
$ bin/buildout

This will download all required dependencies and install them locally. If you don’t want all the database packages to be downloaded, please remove the xbob.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 face recognition 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 them, please call:

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

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


Experiments are conducted on several databases. They should be downloaded and extracted manually to be able to reproduce the plots.

Once you have installed the databases, you should set the path to raw data into some configuration files. For instance, for running experiments on the BANCA database, you should set the variable ‘banca_directory’ in the file to your directory that contains the images of this database. This is explained in more details in the complete documentation.

Running experiments

If you have set up everything mentioned above, you are ready to run the recognition experiments.

This process is split into two different steps:

1. Generation of raw scores from raw data (image/audio files [and possibly annotations]) of the databases

2. Generation of plots from these raw scores

There is a single exception with the plots generated on the M-iris synthetic dataset. In this case, the experiments does not require any external data and can be reproduced in one step. In practice, the first step has high computational requirements, which depend on the database considered.

Read further

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

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

and read further instructions on how to use this package.

Cite our paper

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

  title = {Scalable Probabilistic Models for Face and Speaker Recognition},
  author = {Laurent El Shafey},
  month = {April},
  year = {2014},
  school = {Ecole Polytechnique F{\'e}d{\'e}rale de Lausanne (EPFL)},
  url = {},


In case of problems, please contact me (Laurent El Shafey).

If you are facing technical issues to be able to run the scripts of this package, you can send a message on the Bob’s mailing list.

Please follow these guidelines when (or even better before) reporting any bug.

File Type Py Version Uploaded on Size (md5) Source 2014-04-28 228KB