bob issueshttps://gitlab.idiap.ch/groups/bob/-/issues2017-10-13T12:29:25Zhttps://gitlab.idiap.ch/bob/bob.kaldi/-/issues/6Results in the doc2017-10-13T12:29:25ZSébastien MARCELResults in the docCould you please augment the document with results and plots of experiments produced with bob.kaldi ?
eg. https://www.idiap.ch/software/bob/docs/bob/bob.bio.face/stable/baselines.html#baseline-results
cc @alexandre.nanchenCould you please augment the document with results and plots of experiments produced with bob.kaldi ?
eg. https://www.idiap.ch/software/bob/docs/bob/bob.bio.face/stable/baselines.html#baseline-results
cc @alexandre.nanchenMilos CERNAKMilos CERNAK2017-10-31https://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.bio.vein/-/issues/29CI: Database interfaces return empty sample list2023-11-03T09:59:05ZYannick DAYERCI: Database interfaces return empty sample list[Sometimes](https://gitlab.idiap.ch/bob/bob.bio.vein/-/jobs/364632) one of the CI jobs fails because a database returned an empty list when retrieving samples.
Has Mainly been seen on the `macos-arm` jobs, but always on one of both jobs...[Sometimes](https://gitlab.idiap.ch/bob/bob.bio.vein/-/jobs/364632) one of the CI jobs fails because a database returned an empty list when retrieving samples.
Has Mainly been seen on the `macos-arm` jobs, but always on one of both jobs (`3.9,macos-arm` or `3.10,macos-arm`).
Re-running the failed job fixes the issue.
It could be an issue with having two jobs running on the same machine. If both share the same `data` directory: if the first job finishes and cleans the database definition file, the second one has no file to read and returns an empty sample list.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.bio.base/-/issues/194Loading scores for the measure commands fails on non-float scores2023-08-22T08:07:17ZYannick DAYERLoading scores for the measure commands fails on non-float scores[src/bob/bio/base/score/load.py#L663](https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/master/src/bob/bio/base/score/load.py#L663) and [src/bob/bio/base/score/load.py#L650](https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/master/src/bob/bi...[src/bob/bio/base/score/load.py#L663](https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/master/src/bob/bio/base/score/load.py#L663) and [src/bob/bio/base/score/load.py#L650](https://gitlab.idiap.ch/bob/bob.bio.base/-/blob/master/src/bob/bio/base/score/load.py#L650) cast a CSV score column to float, but it could contain other things (nothing or `None`) that cannot be converted to float. This needs to be handled correctly.
Possible solution:
- Convert all non-float values to `float("nan")`, this should be handled correctly by the measure commands.https://gitlab.idiap.ch/bob/bob.pad.base/-/issues/45train set is mandatory2023-06-27T17:42:16ZYannick DAYERtrain set is mandatoryThe training is always applied in `run-pipeline`, even on non-trainable pipelines. This is fine until you consider datasets without train sets. Trying to load such a dataset results in an error.
Possible solutions:
- Detect if the data...The training is always applied in `run-pipeline`, even on non-trainable pipelines. This is fine until you consider datasets without train sets. Trying to load such a dataset results in an error.
Possible solutions:
- Detect if the database has no train set, and warn the user that no fit will be done on the pipeline;
- Add an option to skip the training (and the train set loading attempt).Yannick DAYERYannick DAYERhttps://gitlab.idiap.ch/bob/bob.bio.base/-/issues/192vuln hist command missing far_value option2023-05-01T15:11:06ZAlain KOMATYvuln hist command missing far_value optionExecuting the command:
```
bob vuln hist -c far --far-value 0.001 scores-dev.csv --output 11_hist.pdf --figsize "6,5"
```
Outputs the following error:
```
Error: No such option: --far-value Did you mean --iapmr-line?
```Executing the command:
```
bob vuln hist -c far --far-value 0.001 scores-dev.csv --output 11_hist.pdf --figsize "6,5"
```
Outputs the following error:
```
Error: No such option: --far-value Did you mean --iapmr-line?
```https://gitlab.idiap.ch/bob/docs/-/issues/13Bob citation2023-04-13T06:59:19ZHatef OTROSHIBob citationIn [Bob's webpage](https://www.idiap.ch/software/bob/), the current BibTeX is referring to the proceedings of ICML 2017, while the paper has not appeared in the proceedings of ICML 2017. Indeed, the paper is accepted in [ICML 2017 RML W...In [Bob's webpage](https://www.idiap.ch/software/bob/), the current BibTeX is referring to the proceedings of ICML 2017, while the paper has not appeared in the proceedings of ICML 2017. Indeed, the paper is accepted in [ICML 2017 RML Workshop, Reproducibility in Machine Learning](https://openreview.net/group?id=ICML.cc/2017/RML) and is available on the [Openreview platform](https://openreview.net/forum?id=BJDDItGX-¬eId=BJDDItGX-) only. Therefore, its citation needs to be fixed as follows:
```BibTeX
@inproceedings{bob2017,
author = {A. Anjos AND M. G\"unther AND T. de Freitas Pereira AND
P. Korshunov AND A. Mohammadi AND S. Marcel},
title = {Continuously Reproducing Toolchains in Pattern Recognition and
Machine Learning Experiments},
year = {2017},
month = aug,
booktitle = {ICML 2017 Reproducibility in Machine Learning Workshop},
pages={1-8},
url={https://openreview.net/forum?id=BJDDItGX-}
}
```
ping @pkorshunov @ydayerhttps://gitlab.idiap.ch/bob/bob.bio.face/-/issues/98Entry-points vgg2-*-with-eval not listed in bob.bio.database group2023-03-31T14:01:51ZYannick DAYEREntry-points vgg2-*-with-eval not listed in bob.bio.database groupSome entry-points in `pyproject.toml` (notably `vgg2-short-with-eval` and `vgg2-full-with-eval`) are listed in the entry-points group `bob.bio.config` but not in `bob.bio.database`.
This leads to issues and confusion when passing the co...Some entry-points in `pyproject.toml` (notably `vgg2-short-with-eval` and `vgg2-full-with-eval`) are listed in the entry-points group `bob.bio.config` but not in `bob.bio.database`.
This leads to issues and confusion when passing the config to the `--database` option of `bob bio pipeline simple` and listing with `resources.py`.
We should (if it was not omitted for a reason) also add those config entry-points to the `bob.bio.database` entry-point group.https://gitlab.idiap.ch/bob/bob.bio.face/-/issues/97Missing mxnet as dependency2023-03-29T16:59:00ZYannick DAYERMissing mxnet as dependencyWhen running the `arcface-insightface` baseline, an error complains that `mxnet` can not be imported.
After installing manually with `pip install mxnet`, everything works (conda did not manage to install it, though).
`mxnet` is missing...When running the `arcface-insightface` baseline, an error complains that `mxnet` can not be imported.
After installing manually with `pip install mxnet`, everything works (conda did not manage to install it, though).
`mxnet` is missing from the dependencies and dev-profile.https://gitlab.idiap.ch/bob/docs/-/issues/12Links to docs in readme.md are wrong2023-10-26T13:32:15ZYannick DAYERLinks to docs in readme.md are wrongThe links to the documentation of each package in `readme.md` are wrong, as the format changed. Now the links need to point to a `sphinx` sub-directory.
The `latest` links are wrong now, but the `stable` links will become erroneous late...The links to the documentation of each package in `readme.md` are wrong, as the format changed. Now the links need to point to a `sphinx` sub-directory.
The `latest` links are wrong now, but the `stable` links will become erroneous later on (after packages are released).https://gitlab.idiap.ch/bob/bob.bio.face/-/issues/94Face cropping based on bounding box still requires facial landmarks / an anno...2023-02-15T15:42:45ZManuel Günthersiebenkopf@googlemail.comFace cropping based on bounding box still requires facial landmarks / an annotatorRelated to #91.
Currently, there is no easy way of cropping the face purely based on bounding boxes, i.e., without alignment based on some facial landmarks. While we have an implementation for this case in `FaceCropBoundingBox`, but thi...Related to #91.
Currently, there is no easy way of cropping the face purely based on bounding boxes, i.e., without alignment based on some facial landmarks. While we have an implementation for this case in `FaceCropBoundingBox`, but this is buggy, see #91: https://gitlab.idiap.ch/bob/bob.bio.face/-/blob/d6d8e20bb73cfe4b099fedee603fad6498203d7f/src/bob/bio/face/preprocessor/croppers.py#L312
this is not directly called from within out `face_crop_sover`: https://gitlab.idiap.ch/bob/bob.bio.face/-/blob/d6d8e20bb73cfe4b099fedee603fad6498203d7f/src/bob/bio/face/utils.py#L377
but it is only indirectly included in the `BoundingBoxAnnotatorCrop`, which uses this only for cutting out the face, and detect landmarks in the crop: https://gitlab.idiap.ch/bob/bob.bio.face/-/blob/d6d8e20bb73cfe4b099fedee603fad6498203d7f/src/bob/bio/face/preprocessor/FaceCrop.py#L305
While this is a useful use-case, another use-case would be to only extract the face based on the bounding box, without further landmark localization and alignment.
Actually, in the previous version of Bob, this was possible through (ab-)using the `FaceEyesNorm` class by providing `topleft` and `bottomright` coordinates instead.
In the current version, this is no longer possible.
I will add back an option for this.Manuel Günthersiebenkopf@googlemail.comManuel Günthersiebenkopf@googlemail.comhttps://gitlab.idiap.ch/bob/bob.bio.face/-/issues/93MTCNN comes without Non-Maximum-Suppression (NMS)2023-01-30T16:28:42ZManuel Günthersiebenkopf@googlemail.comMTCNN comes without Non-Maximum-Suppression (NMS)When running our MTCNN face detector, we get a lot of overlapping detections. Typically, these are removed with a non-maximum-suppression algorithm, see for example here: https://github.com/TropComplique/mtcnn-pytorch/blob/45b34462fc995e...When running our MTCNN face detector, we get a lot of overlapping detections. Typically, these are removed with a non-maximum-suppression algorithm, see for example here: https://github.com/TropComplique/mtcnn-pytorch/blob/45b34462fc995e6b8dbd17545b799e8c8a30026b/src/detector.py#L120 or in our TinyFaces implementation: https://gitlab.idiap.ch/bob/bob.bio.face/-/blob/de683894f9f14876293ad56390f4c34e7dd83234/src/bob/bio/face/annotator/tinyface.py#L229
However, our MTCNN implementation returns the outputs of the network unfiltered, leading to many overlapping detections: https://gitlab.idiap.ch/bob/bob.bio.face/-/blob/de683894f9f14876293ad56390f4c34e7dd83234/src/bob/bio/face/annotator/mtcnn.py#L113
When using only the first annotation as often done in our pipelines, this is not a big issue since NMS would just remove the overlapping boxes. When we need to detect more than one face in an image, on the other hand, we get a lot of repeated detections.
I would recommend to make the NMS function from TinyFaces accessible for other functions, and make use of it in MTCNN as well to filter out overlapping faces.https://gitlab.idiap.ch/bob/bob.bio.face/-/issues/92MTCNN models should not be with the code2022-12-21T15:49:25ZYannick DAYERMTCNN models should not be with the codeBig files should not be in a git repository.
TODO:
- Upload the model (`src/bob/bio/face/mtcnn.pb`) on the WebDav server (like https://www.idiap.ch/software/bob/data/bob.bio.face)
- Use the download utility to retrieve the file at runti...Big files should not be in a git repository.
TODO:
- Upload the model (`src/bob/bio/face/mtcnn.pb`) on the WebDav server (like https://www.idiap.ch/software/bob/data/bob.bio.face)
- Use the download utility to retrieve the file at runtime in `bob_data`.Yannick DAYERYannick DAYERhttps://gitlab.idiap.ch/bob/bob.bio.video/-/issues/26Youtube database is missing protocols2022-12-21T15:30:15ZYannick DAYERYoutube database is missing protocolsThe new Youtube CSVDatabase protocol definition files are missing protocols `fold1` through `fold9`.
They need to be generated from the old version of the database (bob=11), and tests added to follow the change.The new Youtube CSVDatabase protocol definition files are missing protocols `fold1` through `fold9`.
They need to be generated from the old version of the database (bob=11), and tests added to follow the change.Yannick DAYERYannick DAYERhttps://gitlab.idiap.ch/bob/bob.bio.face/-/issues/91Face cropping by bounding box fails with negative top/left coordinates2023-02-15T11:40:14ZManuel Günthersiebenkopf@googlemail.comFace cropping by bounding box fails with negative top/left coordinatesIn case of negative annotations of the bounding box, cropping the face will result in an error.
Apparently, the range
```
X[...,top:bottom,left:right]
```
will result in a dimension of 0 when top or left is negative, and therefore the ...In case of negative annotations of the bounding box, cropping the face will result in an error.
Apparently, the range
```
X[...,top:bottom,left:right]
```
will result in a dimension of 0 when top or left is negative, and therefore the cropping via OpenCV will fail:
https://gitlab.idiap.ch/bob/bob.bio.face/-/blob/fb8ffece2423465fdbe6325c75845817d4b53a92/bob/bio/face/preprocessor/croppers.py#L390
Please note that the cropping works well for `FaceEyesNorm`, where the corresponding dimensions are padded before extraction: https://gitlab.idiap.ch/bob/bob.bio.face/-/blob/fb8ffece2423465fdbe6325c75845817d4b53a92/bob/bio/face/preprocessor/croppers.py#L294
Maybe we can make use of the `FaceEyesNorm` class here instead of trying to do the cropping by hand.
Additionally, in the same line of code, it is assumed that the bounding box has the same aspect ratio as the `self.final_image_size`.
If this is not the case, the facial image will be distorted.
It would be great if we could adapt top/bottom or left/right such that the aspect ratio of the target size is kept (as far as possible, despite rounding issues).https://gitlab.idiap.ch/bob/bob.bio.video/-/issues/25Install ffmpeg on macOS M12022-11-17T16:03:29ZAndré MAYORAZInstall ffmpeg on macOS M1Using methods from `imageio-ffmpeg` on macOS M1 leads to the following error:
```
RuntimeError: No FFmpeg exe could be found. Install FFmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.
```
According to [this issue...Using methods from `imageio-ffmpeg` on macOS M1 leads to the following error:
```
RuntimeError: No FFmpeg exe could be found. Install FFmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.
```
According to [this issue on github](https://github.com/imageio/imageio-ffmpeg/issues/71), the package FFmpeg is currently not included in the wheel of the imageio-ffmpeg library for macOS M1. But it would work using conda.
This would mean that we have to find a workaround to install ffmpeg if we don't want to use conda or wait that the maintainers of `imageio-ffmpeg` to create a proper wheel for this OShttps://gitlab.idiap.ch/bob/bob.bio.demographics/-/issues/3Default value of boxplot percentile should be None2022-10-28T15:14:44ZYu LinghuDefault value of boxplot percentile should be NoneIn `plot.py`, the `percentile` could be either `None` or a `float` between 0 and 1, but the `type` defined in click option is `float`. So `None` is not a valid entry in the command line (`--percentile None`). In this case, the default fo...In `plot.py`, the `percentile` could be either `None` or a `float` between 0 and 1, but the `type` defined in click option is `float`. So `None` is not a valid entry in the command line (`--percentile None`). In this case, the default for option `--percentile` should be None so that it is possible to change to a `float` later. When the default is a `float` like `0.5`, then if we want to take the whole scores to make boxplot, then entry `--percentile None` will bring an Error.
I have this command updated in branch `change_boxplot_percentile_default`, but it cannot pass the CI/CD because the name updates in `bob.bio.base` are not updated here. I will take care of it if necessary.https://gitlab.idiap.ch/bob/bob.extension/-/issues/89Wrong link in package documentation2022-10-04T09:46:07ZManuel Günthersiebenkopf@googlemail.comWrong link in package documentationOn the first page of the documentation, the link for `bob development tools` points to https://www.idiap.ch/software/bob/develop which does not seem to exist. The same issue appears in a different page:
https://www.idiap.ch/software/bob...On the first page of the documentation, the link for `bob development tools` points to https://www.idiap.ch/software/bob/develop which does not seem to exist. The same issue appears in a different page:
https://www.idiap.ch/software/bob/docs/bob/bob.extension/v7.0.2/development.html
https://www.idiap.ch/software/bob/docs/bob/bob.extension/v7.0.2/pure_python.html#building-your-package
I am not sure which should be the right package to point at.https://gitlab.idiap.ch/bob/bob.bio.face/-/issues/88Scale function on preprocessor/Scaler.py cannot handle variable input shapes2022-09-30T13:16:24ZLuis LUEVANOScale function on preprocessor/Scaler.py cannot handle variable input shapesWhen running verification without annotations, the scale function of Scaler.py is used. However, it does not handle scaling for input images from different shapes in the same SampleBatch. In the scale function, the check_array processes ...When running verification without annotations, the scale function of Scaler.py is used. However, it does not handle scaling for input images from different shapes in the same SampleBatch. In the scale function, the check_array processes the SampleBatch and it assumes the shape of the first image in the batch as the one for the rest of the images in the same batch; when the shapes are different it throws an exception.