Package: antispoofing.crossdatabase
This package contains scripts that permit to make a cross database testing in face antispoofing countermeasures in order evaluate them generalization power.If you use this package and/or its results, please cite the following publications:The original paper with the fusion of countermesures explained in details:@inproceedings{FreitasPereira_ICB_2013,
  author = {de Freitas Pereira, Tiago and Anjos, Andr{\'{e}} and De Martino, Jos{\'{e}} Mario and Marcel, S{\'{e}}bastien},
  month = Jun,
  title = {Can face anti-spoofing countermeasures work in a real world scenario?},
  journal = {International Conference on Biometrics 2013},
  year = {2013},
}Bob as the core framework used to run the experiments:@inproceedings{Anjos_ACMMM_2012,
  author = {A. Anjos AND L. El Shafey AND R. Wallace AND M. G\"unther AND C. McCool AND S. Marcel},
  title = {Bob: a free signal processing and machine learning toolbox for researchers},
  year = {2012},
  month = oct,
  booktitle = {20th ACM Conference on Multimedia Systems (ACMMM), Nara, Japan},
  publisher = {ACM Press},
}InstallationNoteIf you are reading this page through our GitHub portal and not through PyPI,
notethe development tip of the package may not be stableor become
unstable in a matter of moments.Go tohttp://pypi.python.org/pypi/antispoofing.crossdatabaseto download the latest
stable version of this package.There are 2 options you can follow to get this package installed and
operational on your computer: you can use automatic installers likepip(oreasy_install) or manually download, unpack and
usezc.buildoutto create a
virtual work environment just for this package.Using an automatic installerUsingpipis the easiest (shell commands are marked with a$signal):$ pip install antispoofing.crossdatabaseYou can also do the same witheasy_install:$ easy_install antispoofing.crossdatabaseThis will download and install this package plus any other required
dependencies. It will also verify if the version of Bob you have installed
is compatible.This scheme works well with virtual environments byvirtualenvor if you have root access to your
machine. Otherwise, we recommend you use the next option.Usingzc.buildoutDownload the latest version of this package fromPyPIand unpack it in your
working area. The installation of the toolkit itself usesbuildout. You don’t need to understand its inner workings
to use this package. Here is a recipe to get you started:$ python bootstrap.py
$ ./bin/buildoutThese 2 commands should download and install all non-installed dependencies and
get you a fully operational test and development environment.NoteThe python shell used in the first line of the previous command set
determines the python interpreter that will be used for all scripts developed
inside this package. Because this package makes use ofBob, you must make sure that thebootstrap.pyscript is called with thesameinterpreter used to build Bob, or
unexpected problems might occur.If Bob is installed by the administrator of your system, it is safe to
consider it uses the default python interpreter. In this case, the above 3
command lines should work as expected. If you have Bob installed somewhere
else on a private directory, edit the filebuildout.cfgbeforerunning./bin/buildout. Find the section namedbuildoutand edit or add the
lineprefixesto point to the directory where Bob is installed or built. For example:[buildout]
...
prefixes=/Users/crazyfox/work/bob/build/libUser GuideFirst of all, it is necessary to be familiarized with the satellite packages:antispoofing.motionandantispoofing.lbptop.
The antispoofing.lbptop satellite package generates the scores of the LBP-TOP and LBP countermeasures.Crossdatabase testThe examples bellow show how to reproduce the performance using the inter-database protocol.For each countermeasure trained and tuned with the Replay Attack Database, to get the performance using the test set of the Casia FASD, just type:$ ./bin/crossdb_result_analysis.py --scores-dir <scores_replay_countermeasure_directory> -d replay -t casias_fasd:For each countermeasure trained and tuned with the Casia FASD, to get the performance using the test set of the Replay Attack Database, just type:$ ./bin/crossdb_result_analysis.py --scores-dir <scores_casia_countermeasure_directory> -d casia_fasd -t replayTraining all dataTo get the performance using a countermeasure trained and tuned with both databases (Replay Attack Database and Casia FASD) just type:To report the results using the Replay Attack Database:$ ./bin/crossdb_result_analysis.py --scores-dir <scores_all_countermeasures_directory> -d all -t replayTo report the results using the Casia FASD:$ ./bin/crossdb_result_analysis.py --scores-dir <scores_all_countermeasures_directory> -d all -t casia_fasdFrameworkFor each countermeasures, to get the performance using the Score Level Fusion based Framework just type:To report the results using the Replay Attack Database:$ ./bin/crossdb_fusion_framework.py --scores-dir <scores_trained_with_replay> <scores_trained_with_casia> -d all -t replay --normalizer MinMaxNorm --fusion-algorithm SUMTo report the results using the Casia FASD:$ ./bin/crossdb_fusion_framework.py --scores-dir <scores_trained_with_casia> <scores_trained_with_replay> -d all -t casia_fasd --normalizer MinMaxNorm --fusion-algorithm SUMProblemsIn case of problems, please contact any of the authors of the paper.