bob.measure issueshttps://gitlab.idiap.ch/bob/bob.measure/-/issues2018-02-19T18:37:26Zhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/27FAR and FRR thresholds are computed even when there is no data support2018-02-19T18:37:26ZManuel Günthersiebenkopf@googlemail.comFAR and FRR thresholds are computed even when there is no data supportI have lately come across a situation, where FAR (and FRR) thresholds were computed, although they should not have been.
Imagine the negative score distribution `[0.5, 0.6, 0.7, 0.8, 0.9, 1., 1., 1., 1., 1.]`. A threshold should now be c...I have lately come across a situation, where FAR (and FRR) thresholds were computed, although they should not have been.
Imagine the negative score distribution `[0.5, 0.6, 0.7, 0.8, 0.9, 1., 1., 1., 1., 1.]`. A threshold should now be computed for `FAR=0.1`. Our current implementation of `bob.measure.far_threshold` will return the threshold `1`. However, this threshold does not give us a false acceptance rate of `0.1`, but of `0.5`. In fact, there is no (data-driven) threshold that would provide a false acceptance rate of `0.1`.
A similar issue arises, when the number of data points is not sufficient for a given threshold to be computed.
From only 10 data points, you cannot provide a (data-driven) threshold for `FAR=0.05`, while our current implementation happily provides one.
There are two possible solutions for this issue.
First, we can simply return a threshold that is *just slightly higher* than the largest negative (or slightly lower than the largest positive when computing FRR threshold). This will indeed provide a solution, but this is not justified by data point and might be arbitrarily wrong, i.e., when applied to other test data.
Instead, we should just return `NaN`, since we really cannot compute a justified threshold for the requested FAR or FRR values.May 2017 HackathonAmir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/26ROC and DET plots are calculated incorrectly sometimes2018-01-16T16:56:34ZAmir MOHAMMADIROC and DET plots are calculated incorrectly sometimesFollowing the discussion here: https://groups.google.com/forum/#!topic/bob-devel/EIp1nvw5-vQ
Looks like we have a corner case where the scores have a very large peak in their distribution:
![hist_data](/uploads/ee0071522224130f9fa7be...Following the discussion here: https://groups.google.com/forum/#!topic/bob-devel/EIp1nvw5-vQ
Looks like we have a corner case where the scores have a very large peak in their distribution:
![hist_data](/uploads/ee0071522224130f9fa7be7b8508f2e4/hist_data.png)
The scores are also available: [fusion_all_200_datatset.npy](/uploads/fa88359dfdb4d66cdbc54f3e4a677149/fusion_all_200_datatset.npy)
To load them:
```python
>>> scores = numpy.load('fusion_all_200_datatset.npy')
... positives = scores[0]
... negatives = scores[1]
# The negatives are mostly 0
>>> sum(negatives < 9e-16)
51911
>>> sum(negatives < 9e-17)
51525
>>> sum(negatives < 9e-18)
51029
>>> sum(negatives < 9e-20)
49675
>>> sum(negatives < 9e-22)
47543
>>> sum(negatives < 9e-30)
27487
>>> sum(negatives < 9e-60)
0
```
@tiago.pereira may be able to provide a set of smaller scores to debug this.
When I calculate the EER, I get `2.7%`:
```python
>>> scores = numpy.load('fusion_all_200_datatset.npy')
... positives = scores[0]
... negatives = scores[1]
...
>>> threshold = bob.measure.eer_threshold(negatives, positives)
... FAR, FRR = bob.measure.farfrr(negatives, positives, threshold)
...
>>> FAR, FRR
(0.02762483029114497, 0.027626084163186636)
>>> negatives.mean(), negatives.std(), positives.mean(), positives.std()
(3.0290521114232657e-06, 0.00067550514259906739, 0.20795613959959214, 0.32512541269459205)
>>> 100*(FAR+FRR)/2
2.76254572271658
>>> bob.measure.plot.roc(negatives, positives, npoints)
[<matplotlib.lines.Line2D object at 0x7f472a8bed10>]
>>> bob.measure.plot.det(negatives, positives, npoints, color=(0,0,0), linestyle='-', label='test')
... bob.measure.plot.det_axis([0.1, 80, 0.1, 80])
...
[-3.090232246772911, 0.8416212348748217, -3.090232246772911, 0.8416212348748217]
# plot the EER point on the DET curve
>>> pyplot.plot(bob.measure.ppndf(FAR), bob.measure.ppndf(FAR), 'ro')
[<matplotlib.lines.Line2D object at 0x7f472a4dc510>]
```
But when I plot the ROC and DET curves, I get curves with EER of `6%` or more than `20%`:
DET CURVE with around `6%` EER:
![wrong_det](/uploads/6c8c93c1c994f0c256ca1b90087a1484/wrong_det.png)
ROC CURVE with more than `20%` EER:
![wrong_roc](/uploads/4730c633a9c7a6ae0ef0d56227e79e41/wrong_roc.png)May 2017 HackathonAmir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/25Moving biometrics-related functionality to bob.bio.base2018-10-16T06:34:31ZAndré AnjosMoving biometrics-related functionality to bob.bio.baseAs Bob keeps its trajectory to serve more types of systems, it becomes less and less obvious to keep biometrics-related functionality inside this package. I'm proposing we move those into `bob.bio.base`, which is the place they should ha...As Bob keeps its trajectory to serve more types of systems, it becomes less and less obvious to keep biometrics-related functionality inside this package. I'm proposing we move those into `bob.bio.base`, which is the place they should have been in the first place.
A few things that come to mind:
* All score loading/saving functionality
* OpenBR exchange support
* The scripts, which are tunned for Biometrics-style reporting (and can only load biometric score files)
* Not sure about all the identification stuff, maybe generic enough to keep here?
Thanks for your feedback.May 2017 HackathonGuillaume HEUSCHGuillaume HEUSCHhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/71No API / function to plot a histogram with scores in memory2024-02-15T13:53:03ZYannick DAYERNo API / function to plot a histogram with scores in memoryThere is no way of creating a score histogram (like `bob bio hist` from bob.bio.base) from code without saving the scores to a file.
`det`, `roc` and other plots commands have a function that allows feeding negative and positive scores ...There is no way of creating a score histogram (like `bob bio hist` from bob.bio.base) from code without saving the scores to a file.
`det`, `roc` and other plots commands have a function that allows feeding negative and positive scores as lists, but `hist` does all the plotting in the Figure class.
We should consider moving the plotting part of the `bob.measure.script.figure.Hist` class in an `hist` function in the `bob.measure.plot` module.https://gitlab.idiap.ch/bob/bob.measure/-/issues/70Output of metrics is confusing when not using an eval set2023-10-17T10:34:57ZYannick DAYEROutput of metrics is confusing when not using an eval setWhen evaluating one file (or multiple files without the `-e`/`--eval` option), the `metrics` option assumes this is a development set (it prints `[Min. criterion: EER ] Threshold on Development set <...>`).
This can be confusing if we w...When evaluating one file (or multiple files without the `-e`/`--eval` option), the `metrics` option assumes this is a development set (it prints `[Min. criterion: EER ] Threshold on Development set <...>`).
This can be confusing if we want to score one file on its own which could not be a development set file (e.g. to get the EER metrics of only an eval set).
suggestions:
- Change the line [script/figure.py:330](https://gitlab.idiap.ch/bob/bob.measure/-/blob/v6.1.0/src/bob/measure/script/figure.py?ref_type=tags#L330) and [342](https://gitlab.idiap.ch/bob/bob.measure/-/blob/v6.1.0/src/bob/measure/script/figure.py?ref_type=tags#L342) to something like `Threshold on file '%s': %s`, and keep the notion of `Development set` only when `self._eval == True`.
- Allow changing the set name with a new option.https://gitlab.idiap.ch/bob/bob.measure/-/issues/69Switch to new CI/CD configuration2022-11-10T10:14:15ZYannick DAYERSwitch to new CI/CD configurationWe need to adapt this package to the new CI/CD and package format using citools:
- [x] Modify `pyproject.toml`:
- [x] Add information from `setup.py`,
- [x] Add version from `version.txt`,
- [x] Add requirements from `requir...We need to adapt this package to the new CI/CD and package format using citools:
- [x] Modify `pyproject.toml`:
- [x] Add information from `setup.py`,
- [x] Add version from `version.txt`,
- [x] Add requirements from `requirements.txt` and `conda/meta.yaml`,
- [x] Empty `setup.py`:
- Leave the call to `setup()` for compatibility,
- [x] Remove `version.txt`,
- [x] Remove `requirements.txt`,
- [x] Modify `conda/meta.yaml`,
- [x] Import data from `pyproject.toml` (`name`, `version`, ...),
- [x] Add the `source.path` field with value `..`,
- [x] Add the `build.noarch` field with value `python`,
- [x] Edit the `build.script` to only contain `"{{ PYTHON }} -m pip install {{ SRC_DIR }} -vv"`,
- [x] Remove test and documentation commands and comments,
- [x] Modify `.gitlab-ci.yml` to point to citools' `python.yml`,
- Use the fields format instead of the URL,
- [x] Move files to follow the `src` layout:
- [x] the whole `bob` folder to `src/bob/`,
- [x] all the tests in `tests/`,
- [x] the test data files in `tests/data`,
- [x] Edit the tests to load the data correctly, either with `os.path.join(os.path.basename(__file__), "data/xxx.txt")` or `pkg_resources.resource_filename(__name__, "data/xxx.txt")`,
- [x] Activate the `packages` option in `settings -> general -> visibility` in the Gitlab project,
- [x] Edit the latest doc badges to point to the `sphinx` directory in `doc/[...]/master`:
- [x] in README.md,
- [x] in the GitLab project settings,
- [x] Edit the coverage badges to point to the doc's coverage directory:
- [x] in README.md,
- [x] in the GitLab project settings,
- [x] Ensure the CI pipeline passes.
You can look at [bob.learn.em](https://gitlab.idiap.ch/bob/bob.learn.em) for an example of a ported package.Roadmap to the major version of Bob 12https://gitlab.idiap.ch/bob/bob.measure/-/issues/68bob.measure.plot.det() yields points out of bounds in some cases2022-05-31T09:21:15ZAlex UNNERVIKbob.measure.plot.det() yields points out of bounds in some casesIt seems that `bob.measure.plot.det()` yields incorrect plots where the values are outside of the expected [0,1] range in at least certain cases.
It becomes impossible to plot correctly as a result.
Example code to reproduce the issue:
...It seems that `bob.measure.plot.det()` yields incorrect plots where the values are outside of the expected [0,1] range in at least certain cases.
It becomes impossible to plot correctly as a result.
Example code to reproduce the issue:
```
import bob.measure
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
l1 = bob.measure.plot.det([1, 2, 3], [2, 2.5, 4], npoints=200) # works for apparently any number of points, including 3 and 2000
print(np.max((l1[0].get_ydata()))) # yields 8.126357928110227
print(np.min((l1[0].get_ydata()))) # yields -8.126357928110227
print(np.max((l1[0].get_xdata()))) # yields 8.126357928110227
print(np.min((l1[0].get_xdata()))) # yields -8.126357928110227
```
These values are inconsistent with expected values in the range of [0,1].
The image shows the result of the plot of the above code, simply adding `plt.show()`.![bob_det_plot](/uploads/9f7eb0264fac5629eeee1d4c4c633c6a/bob_det_plot.png)https://gitlab.idiap.ch/bob/bob.measure/-/issues/67rocch and calibration implementations are missing2022-05-12T13:36:56ZAmir MOHAMMADIrocch and calibration implementations are missingsince we removed bob.math in https://gitlab.idiap.ch/bob/bob.measure/-/merge_requests/106since we removed bob.math in https://gitlab.idiap.ch/bob/bob.measure/-/merge_requests/106The Great Deprecationhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/66Issue with ROC curve2021-11-29T11:24:22ZTiago de Freitas PereiraIssue with ROC curveHi @andre.anjos,
You've mentioned in our last Bob meeting that there's an issue with the ROC plot in some special cases.
Do you have any file containing the true values and prediction scores that triggers the issue?
ThanksHi @andre.anjos,
You've mentioned in our last Bob meeting that there's an issue with the ROC plot in some special cases.
Do you have any file containing the true values and prediction scores that triggers the issue?
Thankshttps://gitlab.idiap.ch/bob/bob.measure/-/issues/65Error margins on cross validation protocols2021-08-02T08:10:25ZAmir MOHAMMADIError margins on cross validation protocolsMany experiments come with K-Fold cross validation protocols.
Currently, we only have support for displaying the numerical metrics using the `multi-metrics` command.
However, support for plotting ROC and DET curves with proper error marg...Many experiments come with K-Fold cross validation protocols.
Currently, we only have support for displaying the numerical metrics using the `multi-metrics` command.
However, support for plotting ROC and DET curves with proper error margins are missing.
Scikit-learn has an example for ROC with +-1 std in https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc_crossval.html
but this might not be the best approach.
Moreover, in our multi-metrics, we also use mean and std to show errors.https://gitlab.idiap.ch/bob/bob.measure/-/issues/64Partially missing documentation2021-10-29T15:34:56ZLaurent COLBOISPartially missing documentationHi, I noticed the docstrings of many `bob.measure` functions disappeared from the doc between Bob 8 and now, e.g.:
Bob 8
![image](/uploads/30049b39551cd51a5015b20548ee9fd3/image.png)
Current
![image](/uploads/a65659b231b22762783138c1fe...Hi, I noticed the docstrings of many `bob.measure` functions disappeared from the doc between Bob 8 and now, e.g.:
Bob 8
![image](/uploads/30049b39551cd51a5015b20548ee9fd3/image.png)
Current
![image](/uploads/a65659b231b22762783138c1fe541b7e/image.png)
I am pretty suspicious it's linked to the functions that have been wrapped with `@array_jit`, I am guessing the docstring is not transmitted after applying the decorator.
ping @amohammadiAmir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/63bob measure pure python2021-06-10T11:11:12ZTiago de Freitas Pereirabob measure pure pythonHi @bob,
Following our renovation efforts for Bob, shall we make an effort to port this package to be pure python?
The benefits would be:
- Pure python is more convenient (no platform-dependent) than having a compiled one
- More read...Hi @bob,
Following our renovation efforts for Bob, shall we make an effort to port this package to be pure python?
The benefits would be:
- Pure python is more convenient (no platform-dependent) than having a compiled one
- More readable code. Hence, more people would be willing to contribute
- We would get rid of a blitz dependency (that will die at some point)
The drawbacks:
- We would lose the C++ API (does anyone need that?)
- Extra work
Follow bellow all the functions that would need to be ported.
- bob::measure::farfrr
- bob::measure::precision_recall
- bob::measure::f_score
- bob::measure::correctlyClassifiedPositives
- bob::measure::correctlyClassifiedNegatives
- bob::measure::minimizingThreshold
- bob::measure::eerThreshold
- bob::measure::eerRocch
- bob::measure::minWeightedErrorRateThreshold
- bob::measure::minHterThreshold
- bob::measure::farThreshold
- bob::measure::frrThreshold
- bob::measure::log_values
- bob::measure::meaningfulThresholds(
- bob::measure::roc
- bob::measure::precision_recall_curve
- bob::measure::rocc
- hbob::measure::rocch2eer
- bob::measure::roc_for_far
- bob::measure::ppndf
- bob::measure::det
- bob::measure::epc
Thankshttps://gitlab.idiap.ch/bob/bob.measure/-/issues/62Visualization in a plot with several curves2020-08-07T08:20:18ZHatef OTROSHIVisualization in a plot with several curvesHi,
I was trying to plot ROC curves of several models with `bob bio roc`. Since there are many curves in a plot, it is hard to understand each one and distinguish them. Below, you can find a sample of such plot:
![magma](/uploads/dc3090...Hi,
I was trying to plot ROC curves of several models with `bob bio roc`. Since there are many curves in a plot, it is hard to understand each one and distinguish them. Below, you can find a sample of such plot:
![magma](/uploads/dc30907b6bc6a3cbbf6c4a13e2d4f08a/magma.png)
I was wondering how I can achieve a better visualization. If we use `--line-styles` option in `bob bio roc` we will have a result as below which is still not clear:
![magma_line](/uploads/6b9e27f89c35dd54c946a0fd5ba48290/magma_line.png)
I was searching if I could find a better color map and change the color map of `matplotlib`. Inspired by [this plot](https://stackoverflow.com/a/35971096), I changed the color map by replacing [this line](https://gitlab.idiap.ch/bob/bob.measure/-/blob/master/bob/measure/utils.py#L141) in `bob.measure` with `cmap = pyplot.cm.get_cmap(name='gist_ncar')`- only changing the color map. Here is the result:
![gist_ncar](/uploads/fb6e7a5b3a442c1c355e6b92ded0cef8/gist_ncar.png)
And if I use `--line-styles` option as well, it results the following plot while the above plot is still more clear:
![gist_ncar_line](/uploads/988767d0c726939fad088b31e7c0ead4/gist_ncar_line.png)https://gitlab.idiap.ch/bob/bob.measure/-/issues/61absolute numbers for errors are wrong2020-02-14T16:15:23ZGuillaume HEUSCHabsolute numbers for errors are wrongHi @amohammadi,
As already pointed in the mailing-list (https://groups.google.com/forum/#!topic/bob-devel/RXsX2kgjs1M), the numbers of misclassified and total examples are wrong. Here's an illustration:
```
============== ============...Hi @amohammadi,
As already pointed in the mailing-list (https://groups.google.com/forum/#!topic/bob-devel/RXsX2kgjs1M), the numbers of misclassified and total examples are wrong. Here's an illustration:
```
============== =============== ================
.. Development Evaluation
============== =============== ================
APCER (attack) 7.7% 13.1%
APCER 7.7% 13.1%
BPCER 1.0% 9.7%
ACER 4.3% 11.4%
FTA 0.7% 0.6%
FPR 7.7% (451/1321) 13.1% (749/1571)
FNR 1.0% (13/5880) 9.7% (153/5729)
HTER 4.3% 11.4%
FAR 7.6% 13.0%
FRR 1.7% 10.3%
PRECISION 0.7 0.7
RECALL 1.0 0.9
F1_SCORE 0.8 0.8
```
When you look at FPR on Evaluation set for instance, 749/1571 * 100 = 47.1, which is different from 13.1%. Actually, the total number of examples have been swapped, since 749/5729 * 100 = 13.1 and 153/1571 * 100 = 9.7Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/60ROC plots are not shown correctly sometimes2019-08-19T13:56:42ZAmir MOHAMMADIROC plots are not shown correctly sometimesI have a set of dev and eval scores and currently plotting an roc of them looks like this:
![roc-1](/uploads/4277668b4562f846dd1727b362fde519/roc-1.png)
![roc-2](/uploads/30e83f603e102a8fe46bc0b5d98c5848/roc-2.png)
Here is the command...I have a set of dev and eval scores and currently plotting an roc of them looks like this:
![roc-1](/uploads/4277668b4562f846dd1727b362fde519/roc-1.png)
![roc-2](/uploads/30e83f603e102a8fe46bc0b5d98c5848/roc-2.png)
Here is the command I used: `bin/bob measure roc -vvve scores-{dev,eval} --lines-at 1e-2` and here are the score files: [scores-.zip](/uploads/65459456a61267bb175b7beb555f16cd/scores-.zip)
As you can see the dot in the eval set does not fall on the roc line.Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/59MinDCF problem in negative sets with outlier scores2019-02-22T14:14:38ZSaeed SARFJOOMinDCF problem in negative sets with outlier scoresWhen we have an outlier score in negative set, the selected threshold in `bob.measure.min_weighted_error_rate_threshold` function is wrong. For example:
``` python
from bob.measure import min_weighted_error_rate_threshold, farfrr
co...When we have an outlier score in negative set, the selected threshold in `bob.measure.min_weighted_error_rate_threshold` function is wrong. For example:
``` python
from bob.measure import min_weighted_error_rate_threshold, farfrr
cost = 0.99
negatives = [-3, -2, -1, -0.5, 4]
positives = [0.5, 3]
th = min_weighted_error_rate_threshold(negatives, positives, cost, True)
print("threshold: " + str(th))
far, frr = farfrr(negatives, positives, th)
mindcf = (cost*far + (1-cost)*frr)*100
print ("minDCF : " + str(mindcf))
```
In this condition the output will be:
```
threshold: 0.0
minDCF : 19.8
```
minDCF can not be more than 1. In this condition a threshold higher than maximum score must be chosen. e.g., with threshold 5 minDCF will be 1.Saeed SARFJOOSaeed SARFJOOhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/58ROC --no-semilogx plots are broken2019-08-19T13:56:42ZAmir MOHAMMADIROC --no-semilogx plots are brokenIn ROC plots, when --no-semilogx is provided the y axis values change from `1-FRR` to `FRR` and the plot looks very similar to a DET curve which is the expected behavior.
However, the dots shown on the plot (activated using --lines-at 1...In ROC plots, when --no-semilogx is provided the y axis values change from `1-FRR` to `FRR` and the plot looks very similar to a DET curve which is the expected behavior.
However, the dots shown on the plot (activated using --lines-at 1e-3,1e-4,...) are still drawn using the `1-FRR` values. Hence the dots do not fall on the ROC plots.
![roc-1](/uploads/9b4f42423d0d6b5b60abc4034f299411/roc-1.png)
![roc-2](/uploads/47172700f57876cae4185373578d6969/roc-2.png)
I have observed this behavior in `bob bio roc` but since it's implemented here, I suspect the bug is in here.https://gitlab.idiap.ch/bob/bob.measure/-/issues/57The test bob.measure.test_script.test_hist_legends stuck the nightlies2018-10-16T08:23:27ZTiago de Freitas PereiraThe test bob.measure.test_script.test_hist_legends stuck the nightliesVery often the test `bob.measure.test_script.test_hist_legends` get stuck in the nightlies build no matter the platform.
Check:
- https://gitlab.idiap.ch/bob/bob.nightlies/-/jobs/150561
- https://gitlab.idiap.ch/bob/bob.nightlies/-/jo...Very often the test `bob.measure.test_script.test_hist_legends` get stuck in the nightlies build no matter the platform.
Check:
- https://gitlab.idiap.ch/bob/bob.nightlies/-/jobs/150561
- https://gitlab.idiap.ch/bob/bob.nightlies/-/jobs/150497
- https://gitlab.idiap.ch/bob/bob.nightlies/-/jobs/150312https://gitlab.idiap.ch/bob/bob.measure/-/issues/56Limitations of matplotlib's constrained layout are not taken into account2018-08-27T14:55:54ZAmir MOHAMMADILimitations of matplotlib's constrained layout are not taken into accountPlease see: https://matplotlib.org/tutorials/intermediate/constrainedlayout_guide.html#limitations
Basically we should not be using `plt.subplot` and should be using `GridSpec`.
I think this was recently added to the documentation so w...Please see: https://matplotlib.org/tutorials/intermediate/constrainedlayout_guide.html#limitations
Basically we should not be using `plt.subplot` and should be using `GridSpec`.
I think this was recently added to the documentation so we didn't know before.
Another thing that we did not know is that `plt.subplots_adjust` and `plt.tight_layout` should not be used when constrained_layout is True.
In matplotlib 2.2.3 now constrained_layout is automatically is set to False if either of those is used. See: https://github.com/matplotlib/matplotlib/pull/11588/files
I think we should rethink our usage to make sure we don't go out of supported bounds of matplotlib's constrained layout. Probably then, we can remove a lot of hacks that we had to do.Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/55conda build is not using bob-devel2018-07-06T12:53:09ZTiago de Freitas Pereiraconda build is not using bob-develCan I have the eyes of someone on this, please?
https://gitlab.idiap.ch/bob/bob.measure/-/jobs/142196
There's an issue with `bob.measure` when it tries to link against `openblas`.
Looking at the log you can see that, for some reason, ...Can I have the eyes of someone on this, please?
https://gitlab.idiap.ch/bob/bob.measure/-/jobs/142196
There's an issue with `bob.measure` when it tries to link against `openblas`.
Looking at the log you can see that, for some reason, `bob-devel` (which pins openblas) is not being installed during the conda build and conda-build downloads `blas mkl. Hence, we can't link it.
ThanksAmir MOHAMMADIAmir MOHAMMADI