反垃圾邮件跨数据库测试
antispoofing.crossdatabase的Python项目详细描述
此包包含允许在face antispoofing对策中进行跨数据库测试的脚本,以便评估它们的泛化能力
如果您使用此软件包和/或其结果,请引用以下出版物:
原版论文结合反措施进行了详细说明:
@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作为运行实验的核心框架:
@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}, }
安装
注意
如果您是通过我们的github门户而不是通过pypi阅读此页面, 注意包的开发提示可能不稳定或 瞬间不稳定的
转到http://pypi.python.org/pypi/antispoofing.crossdatabase下载最新的 这个包的稳定版本。
有两个选项可用于安装此软件包和 在计算机上运行:可以使用自动安装程序,如pip(或easy_install),也可以手动下载、解包和 使用zc.buildout创建 虚拟工作环境仅用于此包。
使用自动安装程序
使用pip是最简单的(shell命令用$信号标记):
$ pip install antispoofing.crossdatabase
您也可以使用easy_install:
$ easy_install antispoofing.crossdatabase
这将下载并安装此软件包以及任何其他需要的 依赖关系。它还将验证您安装的bob版本 是兼容的
此方案可以通过virtualenv或根访问 机器。否则,我们建议您使用下一个选项。
使用zc.buildout
从PyPI下载此包的最新版本,并将其解压缩到 工作区。工具包本身的安装使用buildout。你不需要了解它的内部工作原理 使用这个包裹下面是一个让你开始的食谱:
$ python bootstrap.py $ ./bin/buildout
这两个命令应该下载并安装所有未安装的依赖项和 为您提供一个完全可操作的测试和开发环境。
注意
在前一个命令集的第一行中使用的python shell 确定将用于开发的所有脚本的python解释器 在这个包裹里。因为这个包使用Bob,所以必须确保bootstrap.py 使用用于构建bob的解释器调用脚本,或者 可能会出现意外问题
如果系统管理员安装了bob,则可以安全地 假设它使用默认的python解释器在这种情况下,上述3 命令行应按预期工作如果你在某个地方安装了鲍勃 否则,在私有目录中,在buildout.cfg之前编辑文件 正在运行./bin/buildout。找到名为buildout的节并编辑或添加 第prefixes行指向安装或构建Bob的目录例如:
[buildout] ... prefixes=/Users/crazyfox/work/bob/build/lib
用户指南
首先,需要熟悉卫星包:antispoofing.motion和antispoofing.lbptop。 antispoofing.lbp top卫星包生成lbp-top和lbp对策的分数。
跨数据库测试
下面的示例演示了如何使用数据库间协议再现性能。
对于使用重放攻击数据库训练和调整的每个对策,要使用casia fasd的测试集获得性能,只需键入:
$ ./bin/crossdb_result_analysis.py --scores-dir <scores_replay_countermeasure_directory> -d replay -t casias_fasd:
对于使用casia fasd训练和调整的每个对策,要使用重放攻击数据库的测试集获得性能,只需键入:
$ ./bin/crossdb_result_analysis.py --scores-dir <scores_casia_countermeasure_directory> -d casia_fasd -t replay
训练所有数据
要使用经过训练并使用两个数据库(重放攻击数据库和Casia FASD)调整的对策获得性能,只需键入:
要使用重播攻击数据库报告结果,请执行以下操作:
$ ./bin/crossdb_result_analysis.py --scores-dir <scores_all_countermeasures_directory> -d all -t replay
使用casia fasd报告结果:
$ ./bin/crossdb_result_analysis.py --scores-dir <scores_all_countermeasures_directory> -d all -t casia_fasd
对于每个对策,要使用基于分数级融合的框架获得性能,只需键入:
要使用重播攻击数据库报告结果,请执行以下操作:
$ ./bin/crossdb_fusion_framework.py --scores-dir <scores_trained_with_replay> <scores_trained_with_casia> -d all -t replay --normalizer MinMaxNorm --fusion-algorithm SUM
使用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 SUM
问题
如有问题,请与论文作者联系。