-
Notifications
You must be signed in to change notification settings - Fork 18
LabelBOT #1012
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't implement all the logic as helper methods. Since the logic is used only in the single controller (for now), implement it as (protected) controller methods there.
Also please us camelCase for variable names.
Finally, please fix the failing checks (except the test-current check which fails because biigle/largo is not there). The lint checks can be run locally with composer lint
and composer fix
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just minor comments left now. We have to make sure that we get the exact queries here. Maybe you can dump the two queries as I explained below and post them here for comparison?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine so far (ignoring the missing TODOs). Please go ahead 😉
These are used by the new biigle/metrics module.
Long blocking migrations are unusual so I chose the console command instead. LabelBOT will also work without the index, only slower. Also I added CONCURRENTLY so the create index operation does not create a write lock. Finally, the index for video annotations is already created, too, in preparation for LabelBOT in the video annotation tool.
Unchecked, listeners for some key combinations (e.g. Esc) would be called twice.
TODO v3 (#988)
Backend
Frontend
If computing the feature vector client-side takes a significant amount of time, we could try to compute vectors at fixed intervals already while the user draws the annotation. If the final annotation is reasonably contained in the vector bounding box that was previously computed, immediately send the vector to the backend instead of computing it only after the annotation was finished.Implement the ONNX inference as a web worker so the UI does not block while inference is runningWhen the random/regular sampling mode is active, LabelBOT should immediately suggest a label for the currently active point. When the label is confirmed with Enter or a click, the annotation mode advances to the next point. The LabelBOT timeout is disabled here, i.e. users always have to confirm the chosen labels. The suggested label for the next point could even be prefetched while the user is still looking at the current point.Point to shape conversion with SAM or PTP.