diff --git a/bob/bio/base/config/examples/gabor_mobio-male.py b/bob/bio/base/config/examples/gabor_mobio-male.py new file mode 100644 index 0000000000000000000000000000000000000000..8bfd2a07e96f182b0c83c1a6730ec5502585827f --- /dev/null +++ b/bob/bio/base/config/examples/gabor_mobio-male.py @@ -0,0 +1,82 @@ +from bob.bio.base.pipelines.vanilla_biometrics.implemented import CheckpointDistance +from bob.bio.base.pipelines.vanilla_biometrics.legacy import ( + DatabaseConnector, + Preprocessor, + Extractor, + AlgorithmAsBioAlg, +) +from bob.bio.face.database.mobio import MobioBioDatabase +from bob.bio.face.preprocessor import FaceCrop +from bob.extension import rc +from bob.pipelines.transformers import CheckpointSampleLinearize, CheckpointSamplePCA +from sklearn.pipeline import make_pipeline +import functools +import os +import bob.bio.face +import math + +base_dir = "example" + + +database = DatabaseConnector( + MobioBioDatabase( + original_directory=rc["bob.db.mobio.directory"], + annotation_directory=rc["bob.db.mobio.annotation_directory"], + original_extension=".png", + protocol="mobile0-male", + ) +) + +# Using face crop +CROPPED_IMAGE_HEIGHT = 80 +CROPPED_IMAGE_WIDTH = CROPPED_IMAGE_HEIGHT * 4 // 5 +# eye positions for frontal images +RIGHT_EYE_POS = (CROPPED_IMAGE_HEIGHT // 5, CROPPED_IMAGE_WIDTH // 4 - 1) +LEFT_EYE_POS = (CROPPED_IMAGE_HEIGHT // 5, CROPPED_IMAGE_WIDTH // 4 * 3) + +# FaceCrop +preprocessor = functools.partial( + bob.bio.face.preprocessor.INormLBP, + face_cropper=functools.partial( + bob.bio.face.preprocessor.FaceCrop, + cropped_image_size=(CROPPED_IMAGE_HEIGHT, CROPPED_IMAGE_WIDTH), + cropped_positions={"leye": LEFT_EYE_POS, "reye": RIGHT_EYE_POS}, + color_channel="gray", + ), +) + +extractor = functools.partial( + bob.bio.face.extractor.GridGraph, + # Gabor parameters + gabor_sigma=math.sqrt(2.0) * math.pi, + # what kind of information to extract + normalize_gabor_jets=True, + # setup of the fixed grid + node_distance=(8, 8), +) + + +transformer = make_pipeline( + Preprocessor(preprocessor, features_dir=os.path.join(base_dir, "face_cropper")), + Extractor(extractor, features_dir=os.path.join(base_dir, "gabor_graph")), +) + + +## algorithm + +gabor_jet = functools.partial( + bob.bio.face.algorithm.GaborJet, + gabor_jet_similarity_type="PhaseDiffPlusCanberra", + multiple_feature_scoring="max_jet", + gabor_sigma=math.sqrt(2.0) * math.pi, +) + +algorithm = AlgorithmAsBioAlg(callable=gabor_jet, features_dir=base_dir) + + +# comment out the code below to disable dask +from bob.pipelines.mixins import estimator_dask_it, mix_me_up +from bob.bio.base.pipelines.vanilla_biometrics.mixins import BioAlgDaskMixin + +# transformer = estimator_dask_it(transformer) +# algorithm = mix_me_up([BioAlgDaskMixin], algorithm) diff --git a/bob/bio/base/config/examples/lda_atnt_legacy.py b/bob/bio/base/config/examples/lda_atnt_legacy.py index 2df28fd7ece87a847ca889024212e652aea99e20..4ad30b856f56079a5037b029c1f7f2ef9152be22 100644 --- a/bob/bio/base/config/examples/lda_atnt_legacy.py +++ b/bob/bio/base/config/examples/lda_atnt_legacy.py @@ -53,6 +53,8 @@ transformer = make_pipeline( ), ) + + algorithm = CheckpointDistance(features_dir="./example/") # algorithm = Distance() diff --git a/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py b/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py index 469e9c9552388ac814c6671c4d2518fda17078e4..6bedb447b6efd21de7be6022a81ed633a8874e38 100644 --- a/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py +++ b/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py @@ -2,21 +2,21 @@ from bob.bio.face.database import AtntBioDatabase from bob.bio.base.algorithm import LDA from bob.bio.face.preprocessor import FaceCrop from sklearn.pipeline import make_pipeline -from bob.bio.base.mixins.legacy import ( - LegacyPreprocessor, - LegacyAlgorithmAsTransformer, - LegacyAlgorithmAsBioAlg, -) from bob.pipelines.transformers import CheckpointSampleLinearize -from bob.bio.base.pipelines.vanilla_biometrics.legacy import LegacyDatabaseConnector +from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector, Preprocessor, AlgorithmAsTransformer, AlgorithmAsBioAlg import functools +from bob.bio.base.pipelines.vanilla_biometrics.implemented import ( + Distance, + CheckpointDistance, +) +import os # DATABASE - -database = LegacyDatabaseConnector( +database = DatabaseConnector( AtntBioDatabase(original_directory="./atnt", protocol="Default"), ) +base_dir = "example" # PREPROCESSOR LEGACY @@ -47,19 +47,19 @@ lda = functools.partial(LDA, use_pinv=True, pca_subspace_dimension=0.90) transformer = make_pipeline( - LegacyPreprocessor(callable=face_cropper, features_dir="./example/transformer0"), - CheckpointSampleLinearize(features_dir="./example/transformer1"), - LegacyAlgorithmAsTransformer( - callable=lda, features_dir="./example/transformer2", model_path="./example/" + Preprocessor(callable=face_cropper, features_dir=os.path.join(base_dir,"transformer0")), + CheckpointSampleLinearize(features_dir=os.path.join(base_dir,"transformer1")), + AlgorithmAsTransformer( + callable=lda, features_dir=os.path.join(base_dir,"transformer2"), model_path=os.path.join(base_dir, "lda.hdf5") ), ) -algorithm = LegacyAlgorithmAsBioAlg(callable=lda, features_dir="./example/") + +algorithm = AlgorithmAsBioAlg(callable=lda, features_dir="./example/") -# comment out the code below to disable dask from bob.pipelines.mixins import estimator_dask_it, mix_me_up -from bob.bio.base.pipelines.vanilla_biometrics.biometric_algorithm import ( +from bob.bio.base.pipelines.vanilla_biometrics.mixins import ( BioAlgDaskMixin, ) diff --git a/bob/bio/base/config/examples/pca_atnt.py b/bob/bio/base/config/examples/pca_atnt.py index e14a8e86b0b6fedd45f66b5f2031406880f4bd8f..7ae7531361be68462a563f1ae2b35fae126e1e67 100644 --- a/bob/bio/base/config/examples/pca_atnt.py +++ b/bob/bio/base/config/examples/pca_atnt.py @@ -8,22 +8,24 @@ from bob.bio.face.database import AtntBioDatabase import os -database = DatabaseConnector( - AtntBioDatabase(original_directory=os.environ.get("ATNT_DATABASE_DIRECTORY")), protocol="Default" -) +base_dir = "example" + +database = DatabaseConnector(AtntBioDatabase(original_directory="./atnt", protocol="Default")) + transformer = make_pipeline( - CheckpointSampleLinearize(features_dir="./example/extractor0"), + CheckpointSampleLinearize(features_dir=os.path.join(base_dir, "linearize")), CheckpointSamplePCA( - features_dir="./example/extractor1", model_path="./example/pca.pkl" + features_dir=os.path.join(base_dir, "pca_features"), model_path=os.path.join(base_dir, "pca.pkl") ), ) -algorithm = CheckpointDistance(features_dir="./example/") +algorithm = CheckpointDistance(features_dir=base_dir) # # comment out the code below to disable dask -# from bob.pipelines.mixins import estimator_dask_it, mix_me_up -# from bob.bio.base.pipelines.vanilla_biometrics.mixins import ( -# BioAlgDaskMixin, -# ) +from bob.pipelines.mixins import estimator_dask_it, mix_me_up +from bob.bio.base.pipelines.vanilla_biometrics.mixins import ( + BioAlgDaskMixin, +) + +transformer = estimator_dask_it(transformer) +algorithm = mix_me_up([BioAlgDaskMixin], algorithm) -# transformer = estimator_dask_it(transformer) -# algorithm = mix_me_up(BioAlgDaskMixin, algorithm) diff --git a/bob/bio/base/config/examples/pca_mobio-male.py b/bob/bio/base/config/examples/pca_mobio-male.py index a581b591900941ff240accd6cc5fd10826247b8f..45fc2049b45226045d17db9de5f5c500eb454b6c 100644 --- a/bob/bio/base/config/examples/pca_mobio-male.py +++ b/bob/bio/base/config/examples/pca_mobio-male.py @@ -52,3 +52,4 @@ from bob.bio.base.pipelines.vanilla_biometrics.mixins import ( transformer = estimator_dask_it(transformer) algorithm = mix_me_up([BioAlgDaskMixin], algorithm) +