Package for paper published in BTAS 2016 on ASV-PAD

If you use this package, please cite the following paper:

@inproceedings{KorshunovBtas2016c,
    author = {P. Korshunov AND S. Marcel},
    title = {Joint Operation of Voice Biometrics and Presentation Attack Detection},
    year = {2016},
    month = sep,
    booktitle = {IEEE International Conference on Biometrics: Theory, Applications and Systems (BTAS)},
    address = {Niagara Falls, NY, USA},
}

This package contains scripts to reproduce part of the results from the paper (other results are available directly online via BEAT platform). The package also provides score files for i-vector based automatic speaker verification (ASV) system, LBP-based presentation attack detection (PAD), which are used to produce the error rates and plots presented in the paper.

Reproducing results of the paper

Scores of ASV and PAD systems can be found in folder scores.

To create a joint ASV-PAD system, the scores can be fused using Logistic Regression classifier (as per the paper), resulting in another set of scores, by running the following:

$ ./fuse_asv_pad_scores.py -e scores/asv_scores -p scores/pad_scores - o fused_system

The script will generate fused scores inside the folder fused_system.

To plot histograms distribution for ASV system in licit scenario, as presented in Figure 4a of the paper, run the following:

$ ./bin/plot_asv_results.py -d scores/asv_scores/scores-dev-real -e scores/asv_scores/scores-eval-real
    -t scores/asv_scores/scores-dev-attack -f scores/asv_scores/scores-eval-attack --scenario licit

To plot histograms distribution for ASV system in spoof scenario, as presented in Figure 4b of the paper, run the following:

$ ./bin/plot_asv_results.py -d scores/asv_scores/scores-dev-real -e scores/asv_scores/scores-eval-real
    -t scores/asv_scores/scores-dev-attack -f scores/asv_scores/scores-eval-attack --scenario spoof

To plot histograms distribution for PAD system , as presented in Figure 4c of the paper, run the following:

$ ./bin/plot_pad_results.py -d scores/pad_system/scores-dev-real -e scores/pad_system/scores-eval-real
    -t scores/pad_system/scores-dev-attack -f scores/pad_system/scores-eval-attack

The script creates PDF files for DET curves, histogram distributions for dev and eval sets, and writes main statistics such as FAR, FRR, and EER into a text file.

To plot a scatter plot presented in Figure 5a of the paper, run the following:

$ bin/plot_scatter.py -e scores/asv_scores -p scores/pad_scores

The script will generate PDF scatter plots inside fused_score folder for Train, Dev, and Test sets.

To plot Figure 5b and Figure 5c, please run the following

To plot a scatter plot presented in Figure 5a of the paper, run the following:

$ ./bin/plot_on_demand.py scores/fused_system/scores-dev-fused-real scores/fused_system/scores-eval-fused-real
    scores/fused_system/scores-dev-fused-attack scores/fused_system/scores-eval-fused-attack -i 7 -c eer

Installation

To install this package – alone or together with other 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.