beat.core issueshttps://gitlab.idiap.ch/beat/beat.core/-/issues2017-08-06T11:17:03Zhttps://gitlab.idiap.ch/beat/beat.core/-/issues/27Downloading/Uploading of database declarations and views2017-08-06T11:17:03ZAndré AnjosDownloading/Uploading of database declarations and viewsOnce beat.web#86 is fixed, then we should implement the pull/push of database declarations via the command-line as well.Once beat.web#86 is fixed, then we should implement the pull/push of database declarations via the command-line as well.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/26Documentation updates2017-08-06T11:17:04ZAndré AnjosDocumentation updatesThe API for beat.core is rather complete and well-documented. It would be good to catch up with the rest of the documentation before our next deliverable (by end of April/2015).The API for beat.core is rather complete and well-documented. It would be good to catch up with the rest of the documentation before our next deliverable (by end of April/2015).BEAT TourLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.core/-/issues/25Database JSON simplifications2018-12-17T13:31:50ZAndré AnjosDatabase JSON simplificationsJSON for databases are overly cumbersome. They can be largely simplified by removing the view information declaration in favor of formalized templates (as they exist in `beat.web`).JSON for databases are overly cumbersome. They can be largely simplified by removing the view information declaration in favor of formalized templates (as they exist in `beat.web`).https://gitlab.idiap.ch/beat/beat.core/-/issues/24Input/Output/Source/Sink concept redesign?2018-08-02T06:31:05ZAndré AnjosInput/Output/Source/Sink concept redesign?The input/output/source/sink concepts should be re-encoded in order to simplify their relationship. Do we really need separated defintions for Input/Source and Output/Sink?The input/output/source/sink concepts should be re-encoded in order to simplify their relationship. Do we really need separated defintions for Input/Source and Output/Sink?https://gitlab.idiap.ch/beat/beat.core/-/issues/23beat * pull commands are extremely slow in certain cases2017-08-06T11:17:04ZAndré Anjosbeat * pull commands are extremely slow in certain casesI'm currently implementing some tests for the cmdline utilities. I'm noticing that pulling algorithms out of the platform gets extremely slow in some circumstances. Namely, when using the tool as user `tutorial`, but downloading stuff fr...I'm currently implementing some tests for the cmdline utilities. I'm noticing that pulling algorithms out of the platform gets extremely slow in some circumstances. Namely, when using the tool as user `tutorial`, but downloading stuff from user `tpereira`. What is special about this? Why is it so slow? To be checked.
The same behaviour **cannot** be observed downloading either `data formats` or `toolchains`. I wonder if there is a problem with the algorithm -> data format dependence.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/22Analyzers with the same content but different versions share the same hash2017-08-06T11:17:04ZLaurent EL SHAFEYAnalyzers with the same content but different versions share the same hashIn our current design, analyzers with the same content but different versions share the same hash.
This is problematic, since the cache files for the analyzers include the 'algorithm_name/version' in their headers. Since they share th...In our current design, analyzers with the same content but different versions share the same hash.
This is problematic, since the cache files for the analyzers include the 'algorithm_name/version' in their headers. Since they share the same hash, loading a cache file for a requested 'algorithm_name/version1' may lead to loading a cache file with 'algorithm_name/version2' hardcoded in the header, which will fail, because of the 'dataformat validation'.
To avoid this problem, one possible solution is to change the way hash are generated for analyzer blocks.Second BEAT Reviewhttps://gitlab.idiap.ch/beat/beat.core/-/issues/21Output method write() is not able to process beat.core.Data instances2017-08-06T11:17:04ZManuel GüntherOutput method write() is not able to process beat.core.Data instancesThe output method write() is currently not able to process beat.core.Data instances.
This means that when a complex data structure is read from the inputs and that this input has to be written in one of the outputs, the user currently...The output method write() is currently not able to process beat.core.Data instances.
This means that when a complex data structure is read from the inputs and that this input has to be written in one of the outputs, the user currently has to convert it into a JSON like python dictionary.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/20Reliability of data I/O2017-08-06T11:17:04ZAndré AnjosReliability of data I/OSimilarly to what we did for the indexes, we should also promote some check-summing capabilities for the data which is produced and consumed in our environments. I leave this open for discussion here.Similarly to what we did for the indexes, we should also promote some check-summing capabilities for the data which is produced and consumed in our environments. I leave this open for discussion here.Second BEAT ReviewLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.core/-/issues/19More robust JSON validation2017-08-06T11:17:04ZAndré AnjosMore robust JSON validationWe currently have in place a hand-crafted JSON validation strategy for the many JSON bits we manipulate inside the platform.
I propose we improve JSON validation by introducing [JSON schemas](http://json-schema.org/) for every piece o...We currently have in place a hand-crafted JSON validation strategy for the many JSON bits we manipulate inside the platform.
I propose we improve JSON validation by introducing [JSON schemas](http://json-schema.org/) for every piece of JSON we handle in the platform. There is a [Python package available on PyPI](https://pypi.python.org/pypi/jsonschema) that is compatible with draft-4 (the latest) of the specification.
Find [here](http://spacetelescope.github.io/understanding-json-schema/), a gentle introduction to JSON schemas.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/18beat experiment pull does not pull all dataformats and complains2017-08-06T11:17:04ZAndré Anjosbeat experiment pull does not pull all dataformats and complainsAfter changes with the version numbers, a simple `beat experiments pull` for a particular experiment does not pull all dataformats required by the experiment anymore. As a result, the experiment cannot be run immediately after.After changes with the version numbers, a simple `beat experiments pull` for a particular experiment does not pull all dataformats required by the experiment anymore. As a result, the experiment cannot be run immediately after.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/17Refer to "ISO/IEC 19795-1:2006 "Biometric performance testing and reporting -...2018-11-03T15:23:12ZLaurent EL SHAFEYRefer to "ISO/IEC 19795-1:2006 "Biometric performance testing and reporting -- Part 1: Principles and framework" in performance evaluationFollowing a remark raised after the RP Conference, it would be nice to implement the biometric metrics according to the ISO standard. In particular, it seems that the ROC displayed during the conference was not respecting the definition ...Following a remark raised after the RP Conference, it would be nice to implement the biometric metrics according to the ISO standard. In particular, it seems that the ROC displayed during the conference was not respecting the definition given in the standard.
One simple option would be to add a reference to the standard in the documentation of the analyzer algorithms.https://gitlab.idiap.ch/beat/beat.core/-/issues/16beat experiment run does not use external environment2018-11-03T15:23:12ZAndré Anjosbeat experiment run does not use external environmentCurrently, the command to run experiments on the user machine does not rely on the same infrastructure used by the platform to run experiments.
It would be good these two things converged at a certain point.Currently, the command to run experiments on the user machine does not rely on the same infrastructure used by the platform to run experiments.
It would be good these two things converged at a certain point.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/15Pull experiment does not work properly for user 'tutorial'2018-11-03T15:23:12ZLaurent EL SHAFEYPull experiment does not work properly for user 'tutorial'When trying to pull experiments:
```sh
../bin/beat exp pull --user tutorial
```
we end up with:
```text
Pulling the experiment tutorial/eigenface/Test17
The toolchain isn't valid, due to the following errors:
Errors w...When trying to pull experiments:
```sh
../bin/beat exp pull --user tutorial
```
we end up with:
```text
Pulling the experiment tutorial/eigenface/Test17
The toolchain isn't valid, due to the following errors:
Errors with the algorithm 'tutorial/postperf': Failed to find the algorithm file
```Biometrics Center Kickoff Meeting and BEAT ReviewLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.core/-/issues/14createDataFromJSON() is failing on arrays of arrays structures2018-11-03T15:23:12ZLaurent EL SHAFEYcreateDataFromJSON() is failing on arrays of arrays structuresThe function createDataFromJSON() is failing on arrays of array structures, such as:
```
{
"input_subtract": "beat/array_1d_floats",
"input_divide": "beat/array_1d_floats",
"weights": [
0,
"beat/a...The function createDataFromJSON() is failing on arrays of array structures, such as:
```
{
"input_subtract": "beat/array_1d_floats",
"input_divide": "beat/array_1d_floats",
"weights": [
0,
"beat/array_2d_floats"
],
"biases": [
0,
"beat/array_1d_floats"
]
}
```
This currently generates the error:
*** ValueError: field named value not found.
where 'value' is the key of the 'beat/array_*' dictionary.https://gitlab.idiap.ch/beat/beat.core/-/issues/13Input management2018-11-03T15:23:12ZAndré AnjosInput managementIt would be interesting to revisit input management on algorithms and analysis blocks and try to factor out code that is repeated everywhere into a simpler interface.
This bug shall be used to track advances on this field.It would be interesting to revisit input management on algorithms and analysis blocks and try to factor out code that is repeated everywhere into a simpler interface.
This bug shall be used to track advances on this field.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/12Object renaming2018-11-03T15:23:12ZAndré AnjosObject renamingIt should be possible to rename:
- [ ] algorithms
- [ ] dataformats
- [ ] toolchains
- [ ] experiments
The platform should handle renaming gracefully.It should be possible to rename:
- [ ] algorithms
- [ ] dataformats
- [ ] toolchains
- [ ] experiments
The platform should handle renaming gracefully.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/11(Local) Paced development2018-08-02T06:30:28ZAndré Anjos(Local) Paced developmentWhen the user develops a bit toolchain, s/he cannot test the toolchain if algorithms for *all* blocks are not implemented. This makes development a bit hard and demotivating.
A simple solution to this problem would be to implement som...When the user develops a bit toolchain, s/he cannot test the toolchain if algorithms for *all* blocks are not implemented. This makes development a bit hard and demotivating.
A simple solution to this problem would be to implement some sort of "noop" algorithm that could live inside the "beat" user account.
In local execution mode (with `beat run`), if such an algorithm would be found, then it would not execute the current algorithm or any other following it. This would allow the user to place "beat/noop" as an algorithm in all blocks to be developed and focus on a single block at a time.https://gitlab.idiap.ch/beat/beat.core/-/issues/10Library support2018-11-03T15:23:12ZAndré AnjosLibrary supportA ticket for holding information on library support. Some aspects discussed over the last months:
- The easiest to start with would be: 1 library = 1 file, pretty much like algorithms.
- External (bigger packages) need to be installe...A ticket for holding information on library support. Some aspects discussed over the last months:
- The easiest to start with would be: 1 library = 1 file, pretty much like algorithms.
- External (bigger packages) need to be installed with the processing environment.
- Libraries should be version-nable such as algorithms.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/9Versionning support2018-11-03T15:23:12ZAndré AnjosVersionning supportAutomatic versionning suport should be implemented through out the platform. I'm putting this bug here, but surely this affects most packages in the project. I detail our existing workplan and some key behavioral aspects.
- Each objec...Automatic versionning suport should be implemented through out the platform. I'm putting this bug here, but surely this affects most packages in the project. I detail our existing workplan and some key behavioral aspects.
- Each object in the system (databases, toolchains, dataformats, algorithms, attached documentation strings, environments) should be version-able. Every time the user uploads or changes that object, the version number of that object is bumped.
- Each time a new version is entered, the user should be able to attach a version comment, which is independent from the object documentation itself.
- For the platform, the combination of the object name and the version determines the uniqueness of such object.
- The sharing, usage and tagging status of each unique object (name/version) should be tracked independently. This outdates the usage of "/private" paths which seems to be a bit confusing for some users.
- While visualizing the object, the user by defaults accesses the latest version to which it has access to. This should be made consistent through the platform.
- There is always an option to see/use an earlier version of an object, but that requires the user to specify it explicitly. For example, in the command-line utilities, a "--version=xxx" could be passed. On the web interface, the version of a certain object is chosen automatically as the latest, but a field allows the user to browse for an earlier version.Biometrics Center Kickoff Meeting and BEAT Reviewhttps://gitlab.idiap.ch/beat/beat.core/-/issues/8Old scripts lingering at beat git2014-09-22T14:36:37ZAndré AnjosOld scripts lingering at beat gitI just realized that the following scripts are still available on `./bin`:
- generate_single_integers.py
- check_dataformat.py
- synchronize.py
- run_toolchain.py
- generate_integers_database.py
- check_toolchain.py
- display_da...I just realized that the following scripts are still available on `./bin`:
- generate_single_integers.py
- check_dataformat.py
- synchronize.py
- run_toolchain.py
- generate_integers_database.py
- check_toolchain.py
- display_data.py
If they are not useful anymore (i.e. have been integrated into the `beat` general command-line program), could you please remove them not to create any confusion?Biometrics Center Kickoff Meeting and BEAT ReviewAndré AnjosAndré Anjos