-
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
Support multiple segmentation layers #5683
Conversation
…oducing getActiveSegmentationLayer() methods
…tionLayer and getEnforcedSomeSegmentationLayer everywhere
… dataset reference and fits some cases better
…ping can be active at given time)
…tiple-segmentations
…tiple-segmentations
…fix switching between mappings of multiple segmentation layers by adapting getSegmentationLayerWithMappingSupport logic
@daniel-wer Welcome back 😆 This PR got quite large, but I hope it's reviewable. There are still some todos left, but I think, I should catch a break from this and the main part should be completed. Also see the follow-up issue mentioned in the PR description, as that also sheds light on the restrictions of this first iteration. Let me know if you want to talk about this PR in person 🤙 |
…e to makeHybrid route
…knossos into multiple-segmentations
…tiple-segmentations
…ing an annotation from view mode or when making a hybrid
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.
First part of the review, I'll continue tomorrow. Looking very good so far :)
frontend/javascripts/oxalis/model/accessors/dataset_accessor.js
Outdated
Show resolved
Hide resolved
Co-authored-by: Daniel <[email protected]>
…egmentationLayerEnforced and getNameOfRequestedOrVisibleSegmentationLayer
…knossos into multiple-segmentations
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.
Finished the second part of the review. Very nice work 👍
The only thing up for debate is the shader code I'd say. Happy to discuss this in person :)
Since the testing is quite involved, I'll wait until we discussed that and all other Todos are taken care of.
// Remove other segmentation layers, since we are adding a new one. | ||
// This is a temporary workaround. In the long term we want to support | ||
// multiple segmentation layers. | ||
layers = layers.filter(layer => layer.category !== "segmentation"); |
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.
If the user requests that there shouldn't be a fallback and we don't kick out the other segmentation layer(s), wouldn't we effectively ignore the users decision?
frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.js
Outdated
Show resolved
Hide resolved
frontend/javascripts/oxalis/view/right-border-tabs/export_bounding_box_modal.js
Show resolved
Hide resolved
frontend/javascripts/oxalis/view/right-border-tabs/export_bounding_box_modal.js
Show resolved
Hide resolved
frontend/javascripts/oxalis/view/right-border-tabs/meshes_view.js
Outdated
Show resolved
Hide resolved
…tiple-segmentations
Ok, my tests were mostly successful except for the merger mode which seems to be broken sometimes. Also, there is the question on which segmentation layer the merger mode should work. I'll have a look at this tomorrow. |
…n there is no volume layer and when there are multiple segmentation layers
Should be fixed now. |
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.
Very nice! I mostly tested that there was no regression in single-segmentation-layer-datasets and everything worked as expected 👍
LGTM
Summary
Also have a look at the follow up issue: #5695
URL of deployed dev instance (used for testing):
To Do
fallbackLayerName
parameterensure that volume layer is always visible when creating a new annotationSteps to test:
I suggest a lot of monkey testing, but broadly we should cover the following:
Issues: