New User Guide
Compare changes
+ 1
− 129
@@ -11,137 +11,9 @@ This work is heavily based on `dask <https://dask.org/>`_. Hence, have a look in
- Input: an iterable over `Sample` objects. Each `Sample` (implementation: `Sample <bob/pipelines/bob_bio/blocks.py#L61>`_ object defines **at least** a `data` attribute that contains the actual data that is available with such a sample. `data` can be of any type, for as long as the algorithm for background modelling can consume it.
- Input: Various `SampleSet` objects, each representing a new biometric reference to be created. Each `SampleSet` (implementation: `SampleSet <bob/pipelines/bob_bio/blocks.py#L88>`_ may be decorated with as much metadata as necessary (via Python's object-attribute attachment), that is copied to generated models (implementation: `attribute copying <bob/pipelines/bob_bio/blocks.py#L15>`_.
- Output: Various objects with at least 1 attribute named `data` that represent each, one enrolled biometric reference. The actual data type may be any supported by the next processing phases (i.e., probing). Metadata for each enrolled model is copied from the parent's `SampleSet` to the generated using the attribute copying procedure.
In this phase, a set of biometric probes is provided. Each probe should indicate to which models they should be matched against. Each probe is composed of at least one, but possible many `Sample` objects. Such information will be used by the matching algorithm to filter down (if required) model-probe matching pairs.
- Output: A number of score objects, which is the result of probing each `Sample` in the `SampleSet`for each probe object to all required references. Each returned `SampleSet` is decorated with metadata concerning the original probe. Each `Sample` in this set is decorated with metadata concerning the original reference. By inspection, it is possible to associate references to probe identities, provided they are included in the original `Sample` attributes.
To sort this out, we provided a `DatabaseConnector <bob/pipelines/bob_bio/blocks.py#L98>`_, whose responsibility is to provide the required iterables for each of our pipeline's 3 processing stages above, wrapping the original Bob loading methods and `File` objects so their `load()` methods can be called parameterlessly.
After storing the processed sample on disk, the processor returns a `DelayedSample` indicating to the next processing phases it may eventually need to load the data from disk. The loading mechanism of this `DelayedSample` is now provided by the processor itself, which is the **only** agent that knows how to serialize and deserialize the processed samples.