{ "info": { "author": "Andre Anjos", "author_email": "andre.anjos@idiap.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Bob", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. vim: set fileencoding=utf-8 :\n.. Wed 14 Mar 14:41:21 2018 CET\n\n.. image:: https://gitlab.idiap.ch/bob/bob.hobpad2.veins/badges/v1.0.2/build.svg\n :target: https://gitlab.idiap.ch/bob/bob.hobpad2.veins/commits/v1.0.2\n.. image:: https://gitlab.idiap.ch/bob/bob.hobpad2.veins/badges/v1.0.2/coverage.svg\n :target: https://gitlab.idiap.ch/bob/bob.hobpad2.veins/commits/v1.0.2\n.. image:: https://img.shields.io/badge/gitlab-project-0000c0.svg\n :target: https://gitlab.idiap.ch/bob/bob.hobpad2.veins\n.. image:: https://img.shields.io/pypi/v/bob.hobpad2.veins.svg\n :target: https://pypi.python.org/pypi/bob.hobpad2.veins\n\n\n============================================================\n An Introduction to Vein Presentation Attacks and Detection\n============================================================\n\nThis package is part of the signal-processing and machine learning toolbox\nBob_. It reproduces results presented in Chapter 18 of the \"Handbook of\nBiometric Anti- Spoofing: Presentation Attack Detection 2nd Edition\".\n\n\nInstallation\n------------\n\nWe use conda_ to manage the software stack installation. To install this\npackage and all dependencies, first install conda_, and then run the\nfollowing command on your shell::\n\n $ conda create --name hobpad2-veins --override-channels -c https://www.idiap.ch/software/bob/conda -c defaults python=3 bob.hobpad2.veins\n $ conda activate hobpad2-veins\n (hobpad2-veins) $ #type all commands inside this \"activated\" environment\n\n\n.. note::\n\n At the present time, Bob_ only offers support to Linux and MacOS operating\n systems. Windows installations are **not** supported.\n\n\nThis will install all the required software to reproduce this paper.\n\nYou now need to procure the raw data to run the experiments. Visit the web page\nfor the `VERA FingerVein`_ and click on the \"Download\" link on that page.\nFollow the instructions to sign the End-User License Agreement (EULA) and then\nyou'll be able to access the package with the data. Download and uncompress it.\nAnnotate the directory leading to the root of the dataset. In this guide, we'll\nrefer to it using a generic path ``/path/to/verafinger``.\n\nOnce the data is downloaded and uncompressed, configure Bob_'s access to it by\nediting (or creating) a file called ``${HOME}/.bob_bio_databases.txt`` and set\nthe path to the dataset there. Here is an example::\n\n (hobpad2-veins) $ cat ~/.bob_bio_databases.txt\n [YOUR_VERAFINGER_DIRECTORY] = /path/to/verafinger\n\n\nYou're now all set. Proceed to the instructions to re-run algorithms and\nanalysis routines available in this package.\n\n\nRe-running Vulnerability Analysis\n---------------------------------\n\nTo re-run results for vulnerability analysis, first run the baseline\nexperiments based on Maximum Curvature and Miura Matching using the `Vera\nFingervein`_ \"Nom\" Protocol::\n\n (hobpad2-veins) $ verify.py mc_bio\n (hobpad2-veins) $ verify.py mc_pa\n\nThis should take about 2 hours to complete in a modest computer. If you have\nmore cores available, it is adviseable to run the jobs in parallel. Just\nexecute it like this instead::\n\n (hobpad2-veins) $ verify.py mc_bio parallel\n\n\nResults are stored in the ``results`` folder, which is created if it doesn't\nalready exist. Then, run the analysis script to produce the vulnerability\nanalysis merit figures for the algorithm/protocol above::\n\n (hobpad2-veins) $ bob vuln hist results/scores/mc/{Nom,Nom-va}/nonorm/scores-dev\n\n\nThe last script should produce a figure like Figure 10 in the book chapter,\ntogether with error rates you can quote. Repeat the above analysis for other\nprotocols like the following, for the \"Full\" protocol::\n\n (hobpad2-veins) $ verify.py --protocol='Full' mc_bio\n (hobpad2-veins) $ verify.py --protocol='Full-va' mc_pa\n\nThere is a total of 4 different `Vera Fingervein`_ protocols supported: \"Full\",\n\"Nom\" (the default), \"Fifty\" and \"B\". There is a total of 3 different baseline\nalgorithms that vary only on the feature extraction (binarisation) technique\nused. All baselines use pre-annotated regions of interest pre-processing and\nMiura Matching (correlation) for scoring: Maximum Curvature (configuration\n``mc_bio``), Repeated Line Tracking (configuration ``rlt_bio``) and Wide-Line\nDetector (configuration ``wld_bio``). You may refer to the documentation of\nbob.bio.vein_ for details on the implementation. You can list available\nbaselines using the following command::\n\n (hobpad2-veins) $ resources.py --types=config --packages=bob.hobpad2.veins\n\n\nOnce you ran all baselines, you should be able to reproduce Table 2 in the\nbook chapter.\n\nFor your reference, these are the EER values at the operation point:\n\n+-----------------------+----------+-----------+-----------+\n| **Protocol/Baseline** | **mc** | **rlt** | **wld** |\n+-----------------------+----------+-----------+-----------+\n| *Nom* | 2% | 19% | 7% |\n+-----------------------+----------+-----------+-----------+\n| *Full* | 1% | 11% | 4% |\n+-----------------------+----------+-----------+-----------+\n| *B* | 1% | 17% | 3% |\n+-----------------------+----------+-----------+-----------+\n| *Fifty* | 1% | 17% | 3% |\n+-----------------------+----------+-----------+-----------+\n\nThis is Impostor Attack Presentation Match Rate (IAPMR) for thresholds on the\nEER point for the baseline systems above:\n\n+-----------------------+----------+-----------+-----------+\n| **Protocol/Baseline** | **mc** | **rlt** | **wld** |\n+-----------------------+----------+-----------+-----------+\n| *Nom* | 83% | 38% | 76% |\n+-----------------------+----------+-----------+-----------+\n| *Full* | 89% | 34% | 80% |\n+-----------------------+----------+-----------+-----------+\n| *B* | 86% | 32% | 75% |\n+-----------------------+----------+-----------+-----------+\n| *Fifty* | 77% | 35% | 70% |\n+-----------------------+----------+-----------+-----------+\n\n\nRe-running Competition_ Baselines\n---------------------------------\n\nYou can re-run the baseline algorithm for presentation-attack detection\nprovided by Idiap during \"The 1st Competition_ on Counter Measures to Finger\nVein Spoofing Attacks\", presented on ICB 2018. To do so, run::\n\n (hobpad2-veins) $ #runs the FFT-based algorithm for the \"full\" PAD protocol\n (hobpad2-veins) $ spoof.py -vv verafinger-pad fourier\n (hobpad2-veins) $ # the same as above for the \"cropped\" protocol\n (hobpad2-veins) $ spoof.py -vv --protocol=cropped verafinger-pad fourier\n\n\nThe above commands should get your scores in the directory ``results``. You may\nthen run the analysis, which will lead you to results reported in Figure 11 in\nthe book chapter (see the last two plots of each PDF)::\n\n (hobpad2-veins) $ bob bio hist --output=idiap-full.pdf --eval results/scores/fourier/full/nonorm/scores-{dev,eval}\n (hobpad2-veins) # The next line dumps a table with the calculated metrics\n (hobpad2-veins) $ bob bio metrics --eval results/scores/fourier/full/nonorm/scores-{dev,eval}\n\n\nSome of the results reported rely on scores provided by other teams that\nparticipated on the competition_. Those scores are loaded from the folder\n``scores`` available within this package. You can find the directory containing\nthe scores with the following command::\n\n (hobpad2-veins) $ bob_hobpad2_veins_scores.py\n Scores are located at /path/to/bob.hobpad2.veins/bob/hobpad2/veins/scores\n (hobpad2-veins) $ ls -l /path/to/bob.hobpad2.veins/bob/hobpad2/veins/scores\n total 0\n drwxr-xr-x 6 foobar users 204 Apr 16 15:02 pad-competition/\n drwxr-xr-x 10 foobar users 340 Apr 16 15:02 mc/\n drwxr-xr-x 10 foobar users 340 Apr 16 15:02 rlt/\n drwxr-xr-x 10 foobar users 340 Apr 16 15:02 wld/\n\n\nResults from Table 3 in the book chapter can be reproduced with the following\nscript::\n\n mkdir competition-results\n SCORES_DIR=/path/to/bob.hobpad2.veins/bob/hobpad2/veins/scores\n\n for participant in idiap guc blab grip-priamus; do\n for protocol in full cropped; do\n plotfname=\"competition-results/${participant}-${protocol}.pdf\"\n logfname=\"competition-results/${participant}-${protocol}.txt\"\n echo \"PAD of '${participant}' on protocol '${protocol}' -> ${logfname}\"\n bob bio hist --output=${plotfname} --eval ${SCORES_DIR}/pad-competition/${participant}/${protocol}/scores-{dev,eval}\n bob bio metrics --output=${plotfname} --eval ${SCORES_DIR}/pad-competition/${participant}/${protocol}/scores-{dev,eval}\n done\n done\n\n\nBy looking at all log files generated from the metrics commands, you should be\nable to reconstruct the data on Table 1 relative to results published\nalongside the 1st. Competition on Counter Measures to Fingervein Spoofing.\nResults shown here correspond to the HTER on the test set for a threshold\nchosen *a priori* on the development set EER (in parenthesis):\n\n+--------------+-------------+-------------+-------------+------------------+\n| **Protocol** | **Idiap** | **GUC** | **B-Lab** | **Grip-Priamus** |\n+--------------+-------------+-------------+-------------+------------------+\n| *full* | 0% ( 0%) | 4% (0%) | 0% (0%) | 0% (0%) |\n+--------------+-------------+-------------+-------------+------------------+\n| *cropped* | 19% (24%) | 3% (0%) | 1% (0%) | 0% (0%) |\n+--------------+-------------+-------------+-------------+------------------+\n\n\nScores\n------\n\nTo improve reproducibility aspects, we include all pre-generated scores after\nrunning the systems described above, in the ``scores`` folder within this\npackage. The contents are the same as ``results/scores`` if you run all\nvariants described above. You may reproduce all analysis described in the book\nchapter only by using them, instead of running all baseline scripts. To do so,\njust replace the path on the relevant analysis command-line instructions above\nfrom ``results/scores`` to ``/path/to/scores``, which may obtained with the\nscript ``bob_hobpad2_veins_scores.py`` as described above.\n\nThe scores sub-directory also contains de-anonymized scores provided by\ncompetitors of our paper \"The 1st Competition_ on Counter Measures to Finger\nVein Spoofing Attacks\", presented on ICB 2018. You'll need these to reproduce\nsome of the figures shown in the book chapter. Notice we have not received\nsource code contributions for competitors and therefore cannot reproduce or\nprovide code to reproduce such results.\n\n\nExtending Functionality\n-----------------------\n\nTo extend functionality provided by this package, you'll need to develop new\ncomponents for either bob.bio.vein_ (our biometric vein recognition framework)\nor bob.pad.vein_ (our presentation-attack detection framework for vein\nrecognition systems). Start by reading their user guides.\n\n\nContact\n-------\n\nFor questions or reporting issues to this software package, contact our\ndevelopment `mailing list`_.\n\n\n.. Place your references here:\n.. _conda: https://conda.io/\n.. _bob: https://www.idiap.ch/software/bob\n.. _installation: https://www.idiap.ch/software/bob/install\n.. _bob.bio.vein: https://pypi.python.org/pypi/bob.bio.vein\n.. _bob.pad.vein: https://pypi.python.org/pypi/bob.pad.vein\n.. _vera fingervein: https://www.idiap.ch/software/bob/docs/bob/bob.db.verafinger/v1.0.2/index.html\n.. _vera fingervein dataset: https://www.idiap.ch/dataset/vera-fingervein\n.. _competition: http://publications.idiap.ch/index.php/publications/show/3095\n.. _mailing list: https://www.idiap.ch/software/bob/discuss", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.idiap.ch/bob/bob.hobpad2.veins", "keywords": "bob", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "bob.hobpad2.veins", "package_url": "https://pypi.org/project/bob.hobpad2.veins/", "platform": "", "project_url": "https://pypi.org/project/bob.hobpad2.veins/", "project_urls": { "Homepage": "https://gitlab.idiap.ch/bob/bob.hobpad2.veins" }, "release_url": "https://pypi.org/project/bob.hobpad2.veins/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "Software package to reproduce experiments of Chapter 18, \"An Introduction to Vein Presentation Attacks and Detection\" of the \"Handbook of Biometric Anti-Spoofing: Presentation Attack Detection 2nd Edition\" book", "version": "1.0.2" }, "last_serial": 4389547, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "97bc4ddf65bd1a8547c514ca1ef8723c", "sha256": "9aec52225ab16460c181c2cc46699307de7a491f256fa34843505af77adc1a47" }, "downloads": -1, "filename": "bob.hobpad2.veins-1.0.2.zip", "has_sig": false, "md5_digest": "97bc4ddf65bd1a8547c514ca1ef8723c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7107289, "upload_time": "2018-10-18T09:21:08", "url": "https://files.pythonhosted.org/packages/fd/66/9ca5709358ed57d1c1f1476faaaf3901ac88660426737b567409aa1e3618/bob.hobpad2.veins-1.0.2.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "97bc4ddf65bd1a8547c514ca1ef8723c", "sha256": "9aec52225ab16460c181c2cc46699307de7a491f256fa34843505af77adc1a47" }, "downloads": -1, "filename": "bob.hobpad2.veins-1.0.2.zip", "has_sig": false, "md5_digest": "97bc4ddf65bd1a8547c514ca1ef8723c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7107289, "upload_time": "2018-10-18T09:21:08", "url": "https://files.pythonhosted.org/packages/fd/66/9ca5709358ed57d1c1f1476faaaf3901ac88660426737b567409aa1e3618/bob.hobpad2.veins-1.0.2.zip" } ] }