constantinpape / affogato Goto Github PK
View Code? Open in Web Editor NEWAffinity based segmentation algorithms and tools
License: MIT License
Affinity based segmentation algorithms and tools
License: MIT License
The grid graph currently introduces edges for all pair of seeded nodes / pixels.
This introducs O(N_seeded_pixel^2) edges.
We might get away with O(N_seeds^2) edges if we only introduce edges between representatives.
This should def. be viable for repulsive edges, not sure about attractive edges.
From the meeting today: we want to enable interactive mws out of core. High level API discussion:
segment
: just segment everything given the current constraints (respecting locked segments)
segment_current_fov
: segment everything in current field of view, apply some "padding" (e.g. by extending two next neighbor in the rag) for fast iteration (both in core / out of core), not implemented yetThinking about this more, a challenge for running the interactive mws out-of-core is that (in the current iteration) we need a grid graph built up for the entire image. This happens in memory and is also not economical to do for a very large volume out of core, because we would need to serialize every node (=pixel) and edge (= all local and long-range-offsets).
A potential solution is to never construct the big grid-graph, but instead construct small graphs for the field of view on the fly when a user interacts with the plugin and then use this grid graph to export to the constraint list.
To make this work fully out-of-core, the block-wise mws would then need to be implemented s.t. it computes the grid-graph for its current block and ingests the extra constraints.
I think that this does not need many changes compared to our current implementation, we just need to pass the shape and strides for the full array when computing the grid graph, s.t. the node index is treated globally. For the block-wise mws we need to think about how to handle affinities in-between block boundaries (probably just by adding a corresponding halo).
There has to be a relabeling after masking, see the semantic branch. If I have time tomorrow morning I will fix it. Otherwise, this will be a reminder ;)
Hi Constantin,
I tried to install affogato
on a M1 mac, but there is no native osx-arm64
target. I tried to install it using the x64 emulation and works, but then I have other problems with other dependencies like napari.
Would it be possible (and straight forward) to compile affogato
for osx-arm64
?
If you need help testing, I have access to an M1 mac.
Best,
Lorenzo
I think compute_weights_and_nh_from_affs does not do what the name suggest.
This seems to be a function tailored for the causal mws.
I suggest we rename it to compute__weights_and_causal_nh_from_affs
Tests fail or even segfault:
https://github.com/constantinpape/affogato/blob/master/src/python/test/segmentation/test_connected_components.py
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.