Skip to main content

Flood filling networks for segmenting electron microscopy of neural tissue.

Project description

diluvian

PyPI Package Version Continuous Integration Status Documentation Status License: MIT

Flood filling networks for segmenting electron microscopy of neural tissue.

Diluvian is an implementation and extension of the flood-filling network (FFN) algorithm first described in [Januszewski2016]. Flood-filling works by starting at a seed location known to lie inside a region of interest, using a convolutional network to predict the extent of the region within a small field of view around that seed location, and queuing up new field of view locations along the boundary of the current field of view that are confidently inside the region. This process is repeated until the region has been fully explored.

Quick Start

This assumes you already have CUDA installed and have created a fresh virtualenv. See installation documentation for detailed instructions.

Install diluvian and its dependencies into your virtualenv:

pip install diluvian

For compatibility diluvian only requires TensorFlow CPU by default, but you will want to use TensorFlow GPU if you have installed CUDA:

pip install 'tensorflow-gpu==1.1'

To test that everything works train diluvian on three volumes from the CREMI challenge:

diluvian train

This will automatically download the CREMI datasets to your Keras cache. Only two epochs will run with a small sample set, so the trained model is not useful but will verify Tensorflow is working correctly.

To train for longer, generate a diluvian config file:

diluvian check-config > myconfig.toml

Now edit settings in the [training] section of myconfig.toml to your liking and begin the training again:

diluvian train -c myconfig.toml

For detailed command line instructions and usage from Python, see the usage documentation.

Limitations, Differences, and Caveats

Diluvian may differ from the original FFN algorithm or make implementation choices in ways pertinent to your use:

  • Rather than resampling training data based on the filling fraction \(f_a\), sample loss is (optionally) weighted based on the filling fraction.

  • A FOV center’s priority in the move queue is determined by the checking plane mask probability of the first move to queue it, rather than the highest mask probability with which it is added to the queue.

  • Currently only processing of each FOV is done on the GPU, with movement being processed on the CPU and requiring copying of FOV data to host and back for each move. Also, during training the mask prediction used for moving is done again after the batch gradient update.

[Januszewski2016]

Michał Januszewski, Jeremy Maitin-Shepard, Peter Li, Jorgen Kornfeld, and Winfried Denk. Flood-filling networks. arXiv preprint arXiv:1611.00421, 2016.

History

0.0.2 (2017-05-22)

  • Attempt to fix PyPI configuration file packaging.

0.0.1 (2017-05-22)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diluvian-0.0.2.tar.gz (57.8 kB view hashes)

Uploaded Source

Built Distribution

diluvian-0.0.2-py2.py3-none-any.whl (53.1 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page