Skip to content
Snippets Groups Projects
Commit 40c437e1 authored by Tiago de Freitas Pereira's avatar Tiago de Freitas Pereira
Browse files

Updated the examples

parent b3de3b07
No related branches found
No related tags found
1 merge request!180[dask] Preparing bob.bio.base for dask pipelines
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)
......@@ -53,6 +53,8 @@ transformer = make_pipeline(
),
)
algorithm = CheckpointDistance(features_dir="./example/")
# algorithm = Distance()
......
......@@ -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,
)
......
......@@ -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)
......@@ -52,3 +52,4 @@ from bob.bio.base.pipelines.vanilla_biometrics.mixins import (
transformer = estimator_dask_it(transformer)
algorithm = mix_me_up([BioAlgDaskMixin], algorithm)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment