biigle / core

:large_blue_circle: Application core of BIIGLE
https://biigle.de
GNU General Public License v3.0
12 stars 16 forks source link

Grid/random sampling annotations #123

Closed mzur closed 6 years ago

mzur commented 6 years ago

Implement a new module that offers the functionality discussed in these two issues. It will be a new module as it's probably not required for all BIIGLE instances (wheras the annotations module is) and the annotations module should not become too feature-laden. Furthermore the grid/random sampling annotation procedure and UI may differ significantly from the manual annotation procedure of the annotation tool.

mzur commented 6 years ago

This should be finished until the beginning of March.

Initial idea: Add a new tab "random/regular sampling" to the volume overview. In the tab, admins can choose an initial label, the number of samples per image and the sampling type (random/regular etc.). BIIGLE then generates new randomly distributed annotations with the initial label in the volume. Users can utilize Volare of the annotation tool to review the random sample annotations. Maybe admins can delete all annotations with the initial label (or just detach the label) from the random sampling tab.

1st amendment: Configure a global initial label (like laser point) that is always chosen. This way we can keep track of the annotations that were created through random sampling. Only offer a way to delete annotations that have just the initial label attached. Don't detach the label from annotations with multiple labels (again, to keep track of them).

2nd amendment: Maybe offer a button to start reviewing the randomly sampled annotations right away. Use annotation tool settings via URL parameters for this (activate Volare, set the annotation filtering).

mzur commented 6 years ago

The initial idea proved unpractical:

  1. Laravel does not provide a way to bulk-insert items to the DB and return all their IDs. We'd need that if we wanted to create lots of annotations and attach an initial label to them.
  2. As volumes can be very large, random sampling with the initial idea would create a huge amount of annotations with a single click. Without review these annotations are worthless.

We now agreed to do this instead:

Integrate random/regular sampling in the annotation tool. As the tool can't be modified to a sufficient extent by a module, this has to be implemented in biigle/annotations itself. Done correctly, this shouldn't be too much additional code. We can try to break up the annotationCanvas component into smaller chunks if that's possible. Add a new tab "annotation modes" that contains the Volare and Lawnmower Mode controls as well as new random/regular sampling controls. Add a new section for annotation modes to the documentation (and remove Volare and LM from the settings docs).

The random/regular sampling mode will be implemented similar to Volare. Just that the annotation at each location does not exist yet. If the user presses enter, the annotation is created and the view jumps to the next location. Before, the proposed location is indicated with a small circle (like a detected laser point). Volare, LM or ra/re can still be activated via URL parameters as said above.