Dense cellular segmentation for EM using 2D-3D neural network ensembles

Abstract

Cell biologists can now build 3D models from segmentations of electron microscopy (EM) images, but accurate manual segmentation of densely-packed organelles across gigavoxel image volumes is infeasible. Here, we introduce 2D-3D neural network ensembles that produce dense cellular segmentations at scale, with accuracy levels that outperform baseline methods and approach those of human annotators.

A hub for the paper, data, and code associated with the (Guay et al., 2021) paper by LCIMB, NIBIB.

Publication

Read the full text from Scientific Reports


Click to enlarge

Click to enlarge


Data

The EM image datasets, manually-created ground-truth segmentation labels, and the training error weighting array used in the (Guay et al., 2021) paper paper are freely available for download to facilitate replication of our results.

Download ZIP (180 MB)


Examples

Examples of training and using neural nets for segmenting 3D biomedical SEM images.


Setup

Requirements

This setup was tested on Ubuntu 18.04 with an NVIDIA GTX 1080, using Python 3.6 and TensorFlow 1.15. Information for installing TensorFlow with GPU support can be found at https://www.tensorflow.org/install/gpu.

The example repo uses Jupyter notebooks to present example applications. See jupyter.org/install for Jupyter notebook installation instructions.

Clone repo

To get all examples, we recommend using git to clone our example repo. Zipped source code for individual examples can also be found in the example descriptions below.

git clone https://github.com/leapmanlab/examples
cd examples

Python setup

We recommend using a Python virtual environment (venv). Install packages from examples/requirements.txt.

python3 -m venv leapmanlab
source leapmanlab/bin/activate
pip3 install --upgrade pip
pip3 install -r requirements.txt
python3 -m ipykernel install --user --name=leapmanlab

You should now be able to run example notebooks. Each folder within examples contains a separate, self-contained example.


Example 1: Try out a 2D-3D+3x3x3 net

Download the top four trained 2D-3D+3x3x3 instances from (Guay et al., 2019) and the platelet SBF-SEM dataset, and use one or more to segment the data.

View Notebook

From the examples directory, with the venv active, you can run the Example 1 notebook locally with:

cd example1
jupyter notebook example1_try_2d3d.ipynb

Download Example 1 Source


Example 2: Train a 2D-3D+3x3x3 net

Train a 2D-3D+3x3x3 net on the (Guay et al., 2019) platelet SBF-SEM dataset, and try out the trained network for segmenting new data.

View Notebook

From the examples directory, with the venv active, you can run the Example 2 notebook locally with:

cd example2
jupyter notebook example2_train_2d3d.ipynb

Download Example 2 Source


Example 3: Train a 2D U-Net

Train the original 2D U-Net from (Ronneberger et al., 2015) PDF on the (Guay et al., 2020) platelet SBF-SEM dataset, and try out the trained network for segmenting new data.

View Notebook

From the examples directory, with the venv active, you can run the Example 3 notebook locally with:

cd example3
jupyter notebook example3_train_unet.ipynb

Download Example 3 Source