bob.bio.base merge requestshttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests2020-05-25T16:21:55Zhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/188Score normalizations2020-05-25T16:21:55ZTiago de Freitas PereiraScore normalizationsThis is a long MR with the following features:
- [ ] Proper checkpointing of scores (BioAlgCheckpointWrapper). Still in pickle, though
- [ ] Moved the score-writer outside of the VanillaBiometricsPipeline
- [ ] Simplified the sco...This is a long MR with the following features:
- [ ] Proper checkpointing of scores (BioAlgCheckpointWrapper). Still in pickle, though
- [ ] Moved the score-writer outside of the VanillaBiometricsPipeline
- [ ] Simplified the scoring by `BioAlgorithm`. Also made once SampleSet, dump one score.
- [ ] Implemented a new pipeline that does Z, T and ZT score normalizations. Also created wrappers for Checkpointing and Dask this pipeline. Such pipeline has to wrap a VanillaBiometricsPipeline to work.
- [ ] Adapted the CLI command, `bob pipelines vanilla-biometrics` to work with ZNorm. Now, if you want to ztnorm a pipeline, just do `bob pipelines vanilla-biometrics --ztnorm`
Don't know if someone is willing to review this one.
Tiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/187Remove vstack_features -> use the one in bob.pipelines2020-05-12T10:20:49ZAmir MOHAMMADIRemove vstack_features -> use the one in bob.pipelinesTiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/185Wrappers and aggregators2020-05-05T12:34:36ZTiago de Freitas PereiraWrappers and aggregatorsHi guys, follow an awesome update of this MR that is ready to be merged to `dask-pipelines`.
Follow below the list of features:
- Ported the legacy transformers with the new aggregators API (Preprocessor, Extractor and Algorithm)
- ...Hi guys, follow an awesome update of this MR that is ready to be merged to `dask-pipelines`.
Follow below the list of features:
- Ported the legacy transformers with the new aggregators API (Preprocessor, Extractor and Algorithm)
- Created some easy to use wrappers to wrap these legacy objects
- Removed all traces of **non picklable** stuff in our design. It was a terrible idea and this brings more problems than solve. It's a lesson learned that shouldn't be repeated.
- Making an effort to make stuff picklable in the most relevant packages (bob.bio.face, bob.learn.em, bob.learn.linear,....)
- Rewrote part of the `BiometricAlgorithm` class and created aggregators to handle dask and checkpoint support (https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/wrapper-api/bob/bio/base/pipelines/vanilla_biometrics/wrappers.py#L122 and https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/wrapper-api/bob/bio/base/pipelines/vanilla_biometrics/wrappers.py#L12 respectively)
- Detached the score writing mechanism from BiometricAlgorithm. This is useful if we want to write scores for different "analyzers". Now we have 2 score writers.
* FourColumnsWriter: This one is our link to the past (e.g. our plotting scripts)
* CSVWriter: In one line writes: i-Metadata from biometric reference, ii-Metada from probe, iii-the score. This is useful when you want to analyze certain cohorts based on metadata (e.g demographics, device model, etc,..). Even the vulnerability test can benefit from it. We could write one protocol containing all probes (genuines and PAs) and make an analyzer that filters this information from the CSV.
* ... you could imagine writing a SQLWriter in case you have large scale datasets and want to leverage from some SQL features (indexes, optimized aggregation functions, etc...)
- Created better tests
Things to be done:
- A user guide is still missing, but I have an idea for it to make things more understandable.
- I still need to move forward with this package for my work. For instance, I have stashed here a pipeline for score normalization.
I think that's ithttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/186Some fixes to wrapper API2020-05-04T14:02:46ZAmir MOHAMMADISome fixes to wrapper APITiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/184WIP: Serialization2020-04-30T18:03:19ZTiago de Freitas PereiraWIP: SerializationThis probably will become obsolete, but in this MR I basically solved some serialization issues.
We no longer need to use `functools.partial` as callables in the legacy classes.This probably will become obsolete, but in this MR I basically solved some serialization issues.
We no longer need to use `functools.partial` as callables in the legacy classes.https://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/170Explain how new databases are configured2020-04-24T07:49:59ZZohreh MOSTAANIExplain how new databases are configuredusing bob's global configuration systemusing bob's global configuration systemGuillaume HEUSCHGuillaume HEUSCHhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/173WIP: Compute the norm minDCF and fix the floating-point precision2020-04-23T14:59:23ZSaeed SARFJOOWIP: Compute the norm minDCF and fix the floating-point precisionChange the default floating-point precision for minDCFChange the default floating-point precision for minDCFSaeed SARFJOOSaeed SARFJOOhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/183Remove usage of numpy.testing.decorators2020-04-02T15:21:01ZAmir MOHAMMADIRemove usage of numpy.testing.decoratorsFixes #132Fixes #132Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/182New processor API2020-03-25T09:02:37ZTiago de Freitas PereiraNew processor APIWorking with the new `bob.pipelines` API in `bob.bio.base`.Working with the new `bob.pipelines` API in `bob.bio.base`.https://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/181WIP: New processing API2020-03-05T15:25:13ZTiago de Freitas PereiraWIP: New processing APINew processing APINew processing APITiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/177WIP: This is an experiment to approach bob.bio.base#1062020-02-17T13:44:59ZTiago de Freitas PereiraWIP: This is an experiment to approach bob.bio.base#106**THIS IS AN EXPERIMENT**
1. Removed the keyword argument "extractor_file" from Extractor.train
so we remove the model persistence from it
2. Create the method Extractor.save to handle the persistence task
3. Make tools.extractor s...**THIS IS AN EXPERIMENT**
1. Removed the keyword argument "extractor_file" from Extractor.train
so we remove the model persistence from it
2. Create the method Extractor.save to handle the persistence task
3. Make tools.extractor save the model.https://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/176Add bob bio annotate-samples command2020-02-14T16:15:23ZAmir MOHAMMADIAdd bob bio annotate-samples commandThis command works very similar to bob bio annotate
except that works without a db interface. Instead,
it requires a list of samples and two functions to
do the job.This command works very similar to bob bio annotate
except that works without a db interface. Instead,
it requires a list of samples and two functions to
do the job.Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/179Separate semilogx and TPR options in ROC plots2020-02-14T16:15:23ZAmir MOHAMMADISeparate semilogx and TPR options in ROC plotsDepends on https://gitlab.idiap.ch/bob/bob.measure/merge_requests/98Depends on https://gitlab.idiap.ch/bob/bob.measure/merge_requests/98Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/178Fixed issue with numpy.ndarray.resize py372020-02-14T16:15:23ZTiago de Freitas PereiraFixed issue with numpy.ndarray.resize py37https://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/174Adds a sort command and small fixes2019-06-07T14:43:14ZAmir MOHAMMADIAdds a sort command and small fixeshttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/175small fix in help message2019-06-07T13:34:57ZAmir MOHAMMADIsmall fix in help messageAmir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/172Fix the tests after legend loc option change in bob.measure!892018-08-27T16:52:52ZAmir MOHAMMADIFix the tests after legend loc option change in bob.measure!89Depends on bob.measure!89Depends on bob.measure!89Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/171Implemented multiple subjects score generation, unknown probes and fixed issues2018-08-27T15:00:09ZTiago de Freitas PereiraImplemented multiple subjects score generation, unknown probes and fixed issuesHi,
I found some issues with `bob bio gen`.
First, the probes are inconsistently assigned to wrong subject ids. For instance, if you do `bob bio gen scores` you will have lines like this `x y s5 8.193197` and `x x s5 10.347785` where t...Hi,
I found some issues with `bob bio gen`.
First, the probes are inconsistently assigned to wrong subject ids. For instance, if you do `bob bio gen scores` you will have lines like this `x y s5 8.193197` and `x x s5 10.347785` where the probe `s5` belongs to the `x` and `y` at the same time.
Second, `bob bio gen` is limited to two subjects only. This is ok when you want to plot a ROC, DET, EPC or histograms, but is not ok if you want to generate a CMC plot.
Finally, it is not possible to generate scores for open set scenarios, where there are probes from unknown clients (with no associated model).
This MR solves all these aforementioned issues.
If you do `bob bio gen --help` you will see:
```
Usage: bob bio gen [OPTIONS] OUTDIR
Generate random scores. Generates random scores in 4col or 5col format.
The scores are generated using Gaussian distribution whose mean is an
input parameter. The generated scores can be used as hypothetical
datasets.
Options:
-mm, --mean-match FLOAT Mean for the positive scores distribution
[default: 10]
-mnm, --mean-non-match FLOAT Mean for the negative scores distribution
[default: -10]
-p, --n-probes-per-subjects INTEGER
Number of probes per subject [default: 5]
-s, --n-subjects INTEGER Number of subjects [default: 5]
-p, --sigma-positive FLOAT Variance for the positive score
distributions [default: 10]
-n, --sigma-negative FLOAT Variance for the negative score
distributions [default: 10]
-u, --n-unknown-subjects INTEGER
Number of unknown subjects (useful for
openset plots) [default: 0]
--five-col / --four-col [default: False]
-v, --verbose Increase the verbosity level from 0 (only
error messages) to 1 (warnings), 2 (log
messages), 3 (debug information) by adding
the --verbose option as often as desired
(e.g. '-vvv' for debug).
-?, -h, --help Show this message and exit.
```https://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/169Change assert to assert_click_runner_result2018-07-12T07:45:43ZTheophile GENTILHOMMEChange assert to assert_click_runner_resultTheophile GENTILHOMMETheophile GENTILHOMMEhttps://gitlab.idiap.ch/bob/bob.bio.base/-/merge_requests/151Created the Baselines Concept2018-07-10T11:57:45ZTiago de Freitas PereiraCreated the Baselines ConceptGuys,
In this MR I'm just formalizing what we have discussed here https://gitlab.idiap.ch/bob/bob.bio.face/merge_requests/49
I'm moving the concept of baselines to `bob.bio.base`.
I also added some documentation.
Now we can do
...Guys,
In this MR I'm just formalizing what we have discussed here https://gitlab.idiap.ch/bob/bob.bio.face/merge_requests/49
I'm moving the concept of baselines to `bob.bio.base`.
I also added some documentation.
Now we can do
```
bob bio baseline --help
```
Feedback please.Tiago de Freitas PereiraTiago de Freitas Pereira