GithubHelp home page GithubHelp logo

constantinpape / affogato Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 1.0 25.48 MB

Affinity based segmentation algorithms and tools

License: MIT License

CMake 1.30% C++ 14.99% Python 11.02% Shell 0.18% HTML 9.40% Jupyter Notebook 63.09% Batchfile 0.02%

affogato's People

Contributors

abailoni avatar c-laun avatar constantinpape avatar steffen-wolf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

liuxy1103

affogato's Issues

Fix seed constraints in grid graph

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.

Enable interactive mws out of core

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 yet

Thinking 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).

Compile affogato for target arm64-apple

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

compute_weights_and_nh_from_affs is confusing

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.