-
Notifications
You must be signed in to change notification settings - Fork 24
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
Editable Mappings aka Supervoxel Proofreading #6195
Conversation
…lean up update actions and add missing descriptions for version view, add first version of proofreading saga
…os into editable-mappings
… largest agglomerate id
@fm3 As a heads up, I merged the current master so an evolution is required locally. I implemented a rudimentary proofreading tool. If the tool is active, agglomerate skeletons can be loaded by clicking onto agglomerates (segments). If an edge is deleted in such an agglomerate or two agglomerates are merged, the saga will send update actions (to the incorrect end point, see questions). Afterwards, the volume tracing layer is reloaded. Also a couple of questions:
|
…ng is active, PR feedback
…tion to proofreading tool
… simply rename them, fixing multiple bugs
@philippotto Thank you so much for the helpful feedback and extensive testing! I should have addressed most of your feedback by now, except for some of the usability issues you noticed during testing. It would be great if you could have another look at the code. I've disabled the rendering of the fine meshes from the oversegmentation by default for now. They can be enabled by setting
This seems to be related to the transparent meshes. Researching online, rendering double sided transparent objects seems to be rather hard. I'm still fiddling around to find a good solution, maybe rendering the passive (very transparent) meshes only one sided would be an option. I've reset the transparency for the "normal" meshes, so this shouldn't be an issue for those.
I would be interested whether you can still reproduce this in the newly deployed version. Not sure what happened there or whether an older version was deployed - I made sure duplicate agglomerate skeletons are not loaded quite a while ago 🤔
I wasn't able to reproduce this :/ What I've noticed is that if agglomerate skeleton node positions are exactly at the lower (or left) edge of a segment, the segment ID that is read seems to be that of the lower (or left) segment instead of the actual segment the node is in. I'll have to look into that, but it could be related.
Yes, Undo/Redo is not properly supported for now. The disappearing trees happened, because I used to delete and reload the agglomerate skeletons after a proofreading action to make sure the names were updated correctly. I've switched to simply renaming the skeletons in the frontend. Still, the renaming causes separate undo stack entries which is not ideal. Not sure what to do about this, to be honest. A fairly involved solution could be to actually reverse the merge/split actions so that the editable mapping actions is undone as well.
We could try that (only if an editable mapping is active maybe to avoid false positive warnings) and wait for feedback whether this is annoying or helpful :) |
Nevermind, I was able to reproduce this. This happens if an editable mapping X is activated and an agglomerate Y that was not modified before is selected. The frontend checks whether a tree with name "agglomerate Y (X)" exists. If it doesn't exist, the agglomerate skeleton is loaded. However, the loaded agglomerate skeleton has the name "agglomerate Y (agglomerate_view_80)", despite mapping X being active (probably because agglomerate Y was not modified before by mapping X). Therefore, on every click a new skeleton is loaded, because the expected and actual agglomerate skeleton tree names differ. |
…mension was halved
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.
code looks great 👍 just left some cosmetics 💅 will test again now!
frontend/javascripts/oxalis/model/actions/volumetracing_actions.ts
Outdated
Show resolved
Hide resolved
frontend/javascripts/oxalis/model/sagas/skeletontracing_saga.ts
Outdated
Show resolved
Hide resolved
That's probably something for the next iteration. Is there a follow-up issue already? |
Co-authored-by: Philipp Otto <[email protected]>
…tool was not active
@philippotto I should have addressed all of your feedback and also moved the followup tasks to a new issue #6288 The newest version is deployed on the dev branch, would be great if you could have another look 🦅 |
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.
Awesome!! I was able to fix a few mergers and splits while testing. The added warnings against manipulating the skeletons in the wrong tool were very helpful [1].
The code also looks very good. I think, the PR can be merged then
By the way, during testing I once again noticed that a min-cut tool would probably be very helpful 🙈
[1] However, I already managed to use the wrong tool in the very beginning before the mapping was editable (so, no warning there). This happened because the 3
shortcut to toggle the segmentation layer also switches the tool to move
. However, that's not the PR's fault :)
frontend/javascripts/oxalis/model/accessors/volumetracing_accessor.ts
Outdated
Show resolved
Hide resolved
@@ -127,15 +128,13 @@ export const redoAction = (callback?: () => void): RedoAction => ({ | |||
export const disableSavingAction = (): DisableSavingAction => ({ | |||
type: "DISABLE_SAVING", | |||
}); | |||
// Unfortunately, using type Dispatch produces countless Flow errors. |
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.
🎉
…type * 'master' of github.com:scalableminds/webknossos: fix error when loading agglomerate skeleton for single-segment agglomerate (#6294) Editable Mappings aka Supervoxel Proofreading (#6195) Increase maximum interpolation depth to 100 (#6292) Add download modal to dataset view actions (#6283) Drop "Explorational" from info tab (#6290) Allow version history view in annotations not owned by you (#6274) Bucket loading meter (#6269) Revert "Merge "Shared Annotations" with "My annotations" (#6230)" (#6286) Merge "Shared Annotations" with "My annotations" (#6230)
Prototype for Editable Mappings a.k.a Supervoxel-Based Proofreading
Compare notes at https://www.notion.so/scalableminds/Design-Doc-Supervoxel-Proof-Reading-e012fb444d1242fdacaaa1c9d498f285
Assumptions for Prototype
no evolutions / backwards compatibilityonly one datastore per tracingstoreTODO Frontend
window.__proofreadProximityNm = 2000;
)TODO Backend
Follow-Up
Moved to follow up issue #6288
Note on FossilDB Data
This branch introduces two new column families in fossilDB. After running that and then switching to a different wk branch, you need to run
rm -rf fossildb/data; git checkout fossildb/data
to re-initialize the fossildb content, otherwise you’ll getRocksDBException: You have to open all column families
URL of deployed dev instance (used for testing):
Steps to test:
Issues: