Package: diluvian
diluvianFlood filling networks for segmenting electron microscopy of neural tissue.PyPI ReleaseDocumentationLicenseBuild StatusDiluvian 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.As of December 2017 the original paper’s authors have releasedtheir implementation.Quick StartThis assumes you already have CUDA installed and have created a fresh
virtualenv. Seeinstallation documentationfor detailed instructions.Install diluvian and its dependencies into your virtualenv:pip install diluvianFor 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.3.0'To test that everything works train diluvian on three volumes from theCREMI challenge:diluvian trainThis 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.tomlNow edit settings in the[training]section ofmyconfig.tomlto your
liking and begin the training again:diluvian train -c myconfig.tomlFor detailed command line instructions and usage from Python, see theusage documentation.Limitations, Differences, and CaveatsDiluvian may differ from the original FFN algorithm or make implementation
choices in ways pertinent to your use:By default diluvian uses a U-Net architecture rather than stacked convolution
modules with skip links. The authors of the original FFN paper also now use
both architectures (personal communication). To use a different architecture,
change thefactorysetting in the[network]section of your config
file.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.[Januszewski2016]Michał Januszewski, Jeremy Maitin-Shepard, Peter Li, Jorgen Kornfeld,
Winfried Denk, and Viren Jain.
Flood-filling networks.arXiv preprintarXiv:1611.00421, 2016.History0.0.6 (2018-02-13)Add CREMI evaluation command.Add 3D region filling animation.Fix region filling animations.F_0.5 validation metrics.Fix pip install.Many other fixes and tweaks (see git log).0.0.5 (2017-10-03)Fix bug creating U-net with far too few channels.Fix bug causing revisit of seed position.Fix bug breaking sparse fill.0.0.4 (2017-10-02)Much faster, more reliable training and validation.U-net supports valid padding mode and other features from original
specification.Add artifact augmentation.More efficient subvolume sampling.Many other changes.0.0.3 (2017-06-04)Training now works in Python 3.Multi-GPU filling: filling will now use the same number of processes and
GPUs specified bytraining.num_gpus.0.0.2 (2017-05-22)Attempt to fix PyPI configuration file packaging.0.0.1 (2017-05-22)First release on PyPI.