diff --git a/bob/bio/face/config/database/replay.py b/bob/bio/face/config/database/replay_licit.py similarity index 62% rename from bob/bio/face/config/database/replay.py rename to bob/bio/face/config/database/replay_licit.py index 3a424caa58ee9b6069286e16f56eb53e78d0feb4..a200303b2db973ffcf7d1e771f50552dcec811d1 100644 --- a/bob/bio/face/config/database/replay.py +++ b/bob/bio/face/config/database/replay_licit.py @@ -7,18 +7,14 @@ from bob.extension import rc replay_attack_directory = rc["bob.db.replay.directory"] -replay_licit = DatabaseConnector( +# Licit +database = DatabaseConnector( ReplayBioDatabase( original_directory=replay_attack_directory, original_extension=".mov", protocol="grandtest-licit", - ) + ), + annotation_type="bounding-box", + fixed_positions=None, ) -replay_spoof = DatabaseConnector( - ReplayBioDatabase( - original_directory=replay_attack_directory, - original_extension=".mov", - protocol="grandtest-spoof", - ) -) diff --git a/bob/bio/face/config/database/replay_spoof.py b/bob/bio/face/config/database/replay_spoof.py new file mode 100644 index 0000000000000000000000000000000000000000..2cdab86c2605311657e32e04e938df5964c35df4 --- /dev/null +++ b/bob/bio/face/config/database/replay_spoof.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +from bob.bio.face.database import ReplayBioDatabase +from bob.bio.base.pipelines.vanilla_biometrics import DatabaseConnector +from bob.extension import rc + + +replay_attack_directory = rc["bob.db.replay.directory"] + +database = DatabaseConnector( + ReplayBioDatabase( + original_directory=replay_attack_directory, + original_extension=".mov", + protocol="grandtest-spoof", + ), + annotation_type="bounding-box", + fixed_positions=None, + # Only compare with spoofs from the same target identity + allow_scoring_with_all_biometric_references=False, +) + diff --git a/bob/bio/face/config/database/replaymobile.py b/bob/bio/face/config/database/replaymobile_licit.py similarity index 61% rename from bob/bio/face/config/database/replaymobile.py rename to bob/bio/face/config/database/replaymobile_licit.py index 8a03024705bc2ebe768a81c86d781acf9f0c141b..1ed5205094b2b68525726bd499d837ab7fa0b36e 100644 --- a/bob/bio/face/config/database/replaymobile.py +++ b/bob/bio/face/config/database/replaymobile_licit.py @@ -7,18 +7,12 @@ from bob.extension import rc replay_mobile_directory = rc["bob.db.replay_mobile.directory"] -replaymobile_licit = DatabaseConnector( +database = DatabaseConnector( ReplayMobileBioDatabase( original_directory=replay_mobile_directory, original_extension=".mov", protocol="grandtest-licit", - ) -) - -replaymobile_spoof = DatabaseConnector( - ReplayMobileBioDatabase( - original_directory=replay_mobile_directory, - original_extension=".mov", - protocol="grandtest-spoof", - ) + ), + annotation_type="bounding-box", + fixed_positions=None, ) diff --git a/bob/bio/face/config/database/replaymobile_spoof.py b/bob/bio/face/config/database/replaymobile_spoof.py new file mode 100644 index 0000000000000000000000000000000000000000..3f9d75b70e04d8e42685b43681c50b15118b299c --- /dev/null +++ b/bob/bio/face/config/database/replaymobile_spoof.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python + +from bob.bio.face.database import ReplayMobileBioDatabase +from bob.bio.base.pipelines.vanilla_biometrics import DatabaseConnector +from bob.extension import rc + + +replay_mobile_directory = rc["bob.db.replay_mobile.directory"] + +database = DatabaseConnector( + ReplayMobileBioDatabase( + original_directory=replay_mobile_directory, + original_extension=".mov", + protocol="grandtest-spoof", + ), + annotation_type="bounding-box", + fixed_positions=None, + # Only compare with spoofs from the same target identity + allow_scoring_with_all_biometric_references=False, +) diff --git a/setup.py b/setup.py index b73abd8794d355a220e290140320ccef311e74ba..16511fd40c71d1fe83b726843d432c562666d949 100644 --- a/setup.py +++ b/setup.py @@ -35,7 +35,7 @@ from setuptools import setup, dist -dist.Distribution(dict(setup_requires=['bob.extension'])) +dist.Distribution(dict(setup_requires=["bob.extension"])) from bob.extension.utils import load_requirements, find_packages @@ -44,35 +44,29 @@ install_requires = load_requirements() # The only thing we do in this file is to call the setup() function with all # parameters that define our package. setup( - # This is the basic information about your project. Modify all this # information before releasing code publicly. - name='bob.bio.face', + name="bob.bio.face", version=open("version.txt").read().rstrip(), - description='Tools for running face recognition experiments', - - url='https://gitlab.idiap.ch/bob/bob.bio.face', - license='BSD', - author='Manuel Gunther', - author_email='siebenkopf@googlemail.com', - keywords='bob, biometric recognition, evaluation', - + description="Tools for running face recognition experiments", + url="https://gitlab.idiap.ch/bob/bob.bio.face", + license="BSD", + author="Manuel Gunther", + author_email="siebenkopf@googlemail.com", + keywords="bob, biometric recognition, evaluation", # If you have a better, long description of your package, place it on the # 'doc' directory and then hook it here - long_description=open('README.rst').read(), - + long_description=open("README.rst").read(), # This line is required for any distutils based packaging. packages=find_packages(), include_package_data=True, zip_safe=False, - # This line defines which packages should be installed when you "install" # this package. All packages that are mentioned here, but are not installed # on the current system will be installed locally and only visible to the # scripts of this package. Don't worry - You won't need administrative # privileges when using buildout. install_requires=install_requires, - # Your project should be called something like 'bob.<foo>' or # 'bob.<foo>.<bar>'. To implement this correctly and still get all your # packages to be imported w/o problems, you need to implement namespaces @@ -83,8 +77,6 @@ setup( # Our database packages are good examples of namespace implementations # using several layers. You can check them out here: # https://www.idiap.ch/software/bob/packages - - # This entry defines which scripts you will have inside the 'bin' directory # once you install the package (or run 'bin/buildout'). The order of each # entry under 'console_scripts' is like this: @@ -100,118 +92,99 @@ setup( # In this simple example we will create a single program that will print # the version of bob. entry_points={ - # scripts should be declared using this entry: - 'console_scripts': [ + "console_scripts": [], + "bob.bio.database": [ + "arface = bob.bio.face.config.database.arface:database", + "atnt = bob.bio.face.config.database.atnt:database", + "gbu = bob.bio.face.config.database.gbu:database", + "ijbc-11 = bob.bio.face.config.database.ijbc:database", + "lfw-restricted = bob.bio.face.config.database.lfw_restricted:database", + "lfw-unrestricted = bob.bio.face.config.database.lfw_unrestricted:database", + "mobio-male = bob.bio.face.config.database.mobio_male:database", + "mobio-all = bob.bio.face.config.database.mobio_all:database", + "multipie = bob.bio.face.config.database.multipie:database", + "multipie-pose = bob.bio.face.config.database.multipie_pose:database", + "replay-img-licit = bob.bio.face.config.database.replay:replay_licit", + "replay-img-spoof = bob.bio.face.config.database.replay:replay_spoof", + "replaymobile-img-licit = bob.bio.face.config.database.replaymobile:replaymobile_licit", + "replaymobile-img-spoof = bob.bio.face.config.database.replaymobile:replaymobile_spoof", + "fargo = bob.bio.face.config.database.fargo:database", ], - - 'bob.bio.database': [ - 'arface = bob.bio.face.config.database.arface:database', - 'atnt = bob.bio.face.config.database.atnt:database', - 'gbu = bob.bio.face.config.database.gbu:database', - - 'ijbc-11 = bob.bio.face.config.database.ijbc:database', - - 'lfw-restricted = bob.bio.face.config.database.lfw_restricted:database', - 'lfw-unrestricted = bob.bio.face.config.database.lfw_unrestricted:database', - 'mobio-male = bob.bio.face.config.database.mobio_male:database', - 'mobio-all = bob.bio.face.config.database.mobio_all:database', - 'multipie = bob.bio.face.config.database.multipie:database', - 'multipie-pose = bob.bio.face.config.database.multipie_pose:database', - 'replay-img-licit = bob.bio.face.config.database.replay:replay_licit', - 'replay-img-spoof = bob.bio.face.config.database.replay:replay_spoof', - 'replaymobile-img-licit = bob.bio.face.config.database.replaymobile:replaymobile_licit', - 'replaymobile-img-spoof = bob.bio.face.config.database.replaymobile:replaymobile_spoof', - 'fargo = bob.bio.face.config.database.fargo:database', + "bob.bio.annotator": [ + "facedetect = bob.bio.face.config.annotator.facedetect:annotator", + "facedetect-eye-estimate = bob.bio.face.config.annotator.facedetect_eye_estimate:annotator", + "flandmark = bob.bio.face.config.annotator.flandmark:annotator", + "mtcnn = bob.bio.face.config.annotator.mtcnn:annotator", ], - - 'bob.bio.annotator': [ - 'facedetect = bob.bio.face.config.annotator.facedetect:annotator', - 'facedetect-eye-estimate = bob.bio.face.config.annotator.facedetect_eye_estimate:annotator', - 'flandmark = bob.bio.face.config.annotator.flandmark:annotator', - 'mtcnn = bob.bio.face.config.annotator.mtcnn:annotator', + "bob.bio.transformer": [ + "facedetect-eye-estimate = bob.bio.face.config.annotator.facedetect_eye_estimate:transformer", + "facedetect = bob.bio.face.config.annotator.facedetect:transformer", + "flandmark = bob.bio.face.config.annotator.flandmark:annotator", + "mtcnn = bob.bio.face.config.annotator.mtcnn:transformer", + "facenet-sanderberg = bob.bio.face.config.baseline.facenet_sanderberg:transformer", + "inception-resnetv1-casiawebface = bob.bio.face.config.baseline.inception_resnetv1_casiawebface:transformer", + "inception-resnetv2-casiawebface = bob.bio.face.config.baseline.inception_resnetv2_casiawebface:transformer", + "inception-resnetv1-msceleb = bob.bio.face.config.baseline.inception_resnetv1_msceleb:transformer", + "inception-resnetv2-msceleb = bob.bio.face.config.baseline.inception_resnetv2_msceleb:transformer", + "arcface-insightface = bob.bio.face.config.baseline.arcface_insightface:transformer", + "gabor-graph = bob.bio.face.config.baseline.gabor_graph:transformer", + "lgbphs = bob.bio.face.config.baseline.lgbphs:transformer", + "dummy = bob.bio.face.config.baseline.dummy:transformer", ], - - 'bob.bio.transformer':[ - 'facedetect-eye-estimate = bob.bio.face.config.annotator.facedetect_eye_estimate:transformer', - 'facedetect = bob.bio.face.config.annotator.facedetect:transformer', - 'flandmark = bob.bio.face.config.annotator.flandmark:annotator', - 'mtcnn = bob.bio.face.config.annotator.mtcnn:transformer', - 'facenet-sanderberg = bob.bio.face.config.baseline.facenet_sanderberg:transformer', - 'inception-resnetv1-casiawebface = bob.bio.face.config.baseline.inception_resnetv1_casiawebface:transformer', - 'inception-resnetv2-casiawebface = bob.bio.face.config.baseline.inception_resnetv2_casiawebface:transformer', - 'inception-resnetv1-msceleb = bob.bio.face.config.baseline.inception_resnetv1_msceleb:transformer', - 'inception-resnetv2-msceleb = bob.bio.face.config.baseline.inception_resnetv2_msceleb:transformer', - 'arcface-insightface = bob.bio.face.config.baseline.arcface_insightface:transformer', - 'gabor-graph = bob.bio.face.config.baseline.gabor_graph:transformer', - 'lgbphs = bob.bio.face.config.baseline.lgbphs:transformer', - 'dummy = bob.bio.face.config.baseline.dummy:transformer', + # baselines + "bob.bio.pipeline": [ + "facenet-sanderberg = bob.bio.face.config.baseline.facenet_sanderberg:pipeline", + "inception-resnetv1-casiawebface = bob.bio.face.config.baseline.inception_resnetv1_casiawebface:pipeline", + "inception-resnetv2-casiawebface = bob.bio.face.config.baseline.inception_resnetv2_casiawebface:pipeline", + "inception-resnetv1-msceleb = bob.bio.face.config.baseline.inception_resnetv1_msceleb:pipeline", + "inception-resnetv2-msceleb = bob.bio.face.config.baseline.inception_resnetv2_msceleb:pipeline", + "gabor_graph = bob.bio.face.config.baseline.gabor_graph:pipeline", + "arcface-insightface = bob.bio.face.config.baseline.arcface_insightface:pipeline", + "lgbphs = bob.bio.face.config.baseline.lgbphs:pipeline", + "lda = bob.bio.face.config.baseline.lda:pipeline", + "dummy = bob.bio.face.config.baseline.dummy:pipeline", ], - - #baselines - 'bob.bio.pipeline':[ - 'facenet-sanderberg = bob.bio.face.config.baseline.facenet_sanderberg:pipeline', - 'inception-resnetv1-casiawebface = bob.bio.face.config.baseline.inception_resnetv1_casiawebface:pipeline', - 'inception-resnetv2-casiawebface = bob.bio.face.config.baseline.inception_resnetv2_casiawebface:pipeline', - 'inception-resnetv1-msceleb = bob.bio.face.config.baseline.inception_resnetv1_msceleb:pipeline', - 'inception-resnetv2-msceleb = bob.bio.face.config.baseline.inception_resnetv2_msceleb:pipeline', - 'gabor_graph = bob.bio.face.config.baseline.gabor_graph:pipeline', - 'arcface-insightface = bob.bio.face.config.baseline.arcface_insightface:pipeline', - 'lgbphs = bob.bio.face.config.baseline.lgbphs:pipeline', - 'lda = bob.bio.face.config.baseline.lda:pipeline', - 'dummy = bob.bio.face.config.baseline.dummy:pipeline', + "bob.bio.config": [ + "facenet-sanderberg = bob.bio.face.config.baseline.facenet_sanderberg", + "inception-resnetv1-casiawebface = bob.bio.face.config.baseline.inception_resnetv1_casiawebface", + "inception-resnetv2-casiawebface = bob.bio.face.config.baseline.inception_resnetv2_casiawebface", + "inception-resnetv1-msceleb = bob.bio.face.config.baseline.inception_resnetv1_msceleb", + "inception-resnetv2-msceleb = bob.bio.face.config.baseline.inception_resnetv2_msceleb", + "gabor_graph = bob.bio.face.config.baseline.gabor_graph", + "arcface-insightface = bob.bio.face.config.baseline.arcface_insightface", + "lgbphs = bob.bio.face.config.baseline.lgbphs", + "lda = bob.bio.face.config.baseline.lda", + "arface = bob.bio.face.config.database.arface", + "atnt = bob.bio.face.config.database.atnt", + "gbu = bob.bio.face.config.database.gbu", + "ijbc-11 = bob.bio.face.config.database.ijbc", + "lfw-restricted = bob.bio.face.config.database.lfw_restricted", + "lfw-unrestricted = bob.bio.face.config.database.lfw_unrestricted", + "mobio-male = bob.bio.face.config.database.mobio_male", + "mobio-all = bob.bio.face.config.database.mobio_all", + "multipie = bob.bio.face.config.database.multipie", + "multipie-pose = bob.bio.face.config.database.multipie_pose", + "replay-img-licit = bob.bio.face.config.database.replay_licit", + "replay-img-spoof = bob.bio.face.config.database.replay_spoof", + "replaymobile-img-licit = bob.bio.face.config.database.replaymobile_licit", + "replaymobile-img-spoof = bob.bio.face.config.database.replaymobile_spoof", + "fargo = bob.bio.face.config.database.fargo", ], - - 'bob.bio.config': [ - 'facenet-sanderberg = bob.bio.face.config.baseline.facenet_sanderberg', - 'inception-resnetv1-casiawebface = bob.bio.face.config.baseline.inception_resnetv1_casiawebface', - 'inception-resnetv2-casiawebface = bob.bio.face.config.baseline.inception_resnetv2_casiawebface', - 'inception-resnetv1-msceleb = bob.bio.face.config.baseline.inception_resnetv1_msceleb', - 'inception-resnetv2-msceleb = bob.bio.face.config.baseline.inception_resnetv2_msceleb', - 'gabor_graph = bob.bio.face.config.baseline.gabor_graph', - 'arcface-insightface = bob.bio.face.config.baseline.arcface_insightface', - 'lgbphs = bob.bio.face.config.baseline.lgbphs', - 'lda = bob.bio.face.config.baseline.lda', - - - - 'arface = bob.bio.face.config.database.arface', - 'atnt = bob.bio.face.config.database.atnt', - 'gbu = bob.bio.face.config.database.gbu', - - 'ijbc-11 = bob.bio.face.config.database.ijbc', - - 'lfw-restricted = bob.bio.face.config.database.lfw_restricted', - 'lfw-unrestricted = bob.bio.face.config.database.lfw_unrestricted', - 'mobio-male = bob.bio.face.config.database.mobio_male', - 'mobio-all = bob.bio.face.config.database.mobio_all', - 'multipie = bob.bio.face.config.database.multipie', - 'multipie-pose = bob.bio.face.config.database.multipie_pose', - 'replay-img-licit = bob.bio.face.config.database.replay', - 'replay-img-spoof = bob.bio.face.config.database.replay', - 'replaymobile-img-licit = bob.bio.face.config.database.replaymobile', - 'replaymobile-img-spoof = bob.bio.face.config.database.replaymobile', - - 'fargo = bob.bio.face.config.database.fargo', - ], - - 'bob.bio.cli': [ - 'display-face-annotations = bob.bio.face.script.display_face_annotations:display_face_annotations', + "bob.bio.cli": [ + "display-face-annotations = bob.bio.face.script.display_face_annotations:display_face_annotations", ], - - }, - # Classifiers are important if you plan to distribute this package through # PyPI. You can find the complete list of classifiers that are valid and # useful here (http://pypi.python.org/pypi?%3Aaction=list_classifiers). classifiers=[ - 'Framework :: Bob', - 'Development Status :: 3 - Alpha', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: BSD License', - 'Natural Language :: English', - 'Programming Language :: Python', - 'Topic :: Scientific/Engineering :: Artificial Intelligence', + "Framework :: Bob", + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Natural Language :: English", + "Programming Language :: Python", + "Topic :: Scientific/Engineering :: Artificial Intelligence", ], )