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
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.
-
Example 1: Try 2D-3D+3x3x3: Download trained 2D-3D+3x3x3 nets, use them to segment downloaded platelet data.
-
Example 2: Train 2D-3D+3x3x3: Download platelet data, train a 2D-3D+3x3x3 net to segment it.
-
Example 3: Train 2D U-Net: Download platelet data, train a 2D U-Net from (Ronneberger et al., 2015) to segment it.
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.
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
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.
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
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.
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