Home

Awesome

Semi-Supervised Neuron Segmentation via Reinforced Consistency Learning

Wei Huang, Chang Chen, Zhiwei Xiong(*), Yueyi Zhang, Xuejin Chen, Xiaoyan Sun, Feng Wu

*Corresponding Author

University of Science and Technology of China (USTC)

Introduction

This repository is the official implementation of the paper, "Semi-Supervised Neuron Segmentation via Reinforced Consistency Learning", where more visual results and implementation details are presented.

Installation

This code was tested with Pytorch 1.0.1 (later versions may work), CUDA 9.0, Python 3.7.4 and Ubuntu 16.04. It is worth mentioning that, besides some commonly used image processing packages, you also need to install some special post-processing packages for neuron segmentation, such as waterz and elf.

If you have a Docker environment, we strongly recommend you to pull our image as follows,

docker pull registry.cn-hangzhou.aliyuncs.com/renwu527/auto-emseg:v5.4

or

docker pull renwu527/auto-emseg:v5.4

Dataset

DatasetsSizesResolutionsSpeciesDownload (Processed)
AC3/AC4 1024x1024x256, 1024x1024x1006x6x30 nm^3MouseBaiduYun (Access code: weih) or GoogleDrive
CREMI1250x1250x125 (x3)4x4x40 nm^3DrosophilaBaiduYun (Access code: weih) or GoogleDrive
Kasthuri1510747x12895x18506x6x30 nm^3MouseBaiduYun (Access code: weih) or GoogleDrive

Training stage

Take the training on the AC3 dataset as an example.

1. Pre-training

python pre_training.py -c=pretraining_snemi3d

2. Consistency learning

Weight Sharing (WS)

python main.py -c=seg_snemi3d_d5_u200

EMA

python main_ema.py -c=seg_snemi3d_d5_1024_u200_ema

Validation stage

Take the validation on the AC3 dataset as an example.

1. Predict affinities

 python inference.py -c=seg_snemi3d_d5_1024_u200 -mn=seg_ac3_d5_1024_u200_WS -id=seg_ac3_d5_1024_u200_WS -m=snemi3d-ac3

2. Evaluate on Waterz

python2 evaluate_waterz.py -mn=seg_ac3_d5_1024_u200_WS -id=seg_ac3_d5_1024_u200_WS -m=snemi3d-ac3

3. Evaluate on LMC

python evaluate_lmc.py -mn=seg_ac3_d5_1024_u200_WS -id=seg_ac3_d5_1024_u200_WS -m=snemi3d-ac3

Model Zoo

We provide the trained models on the AC3 dataset at BaiduYun and GoogleDrive, including the pre-trained model and the segmentation models on different numbers of labeled (*L) and unlabeled (*U) sections (1024x1024).

MethodsModelsDownload
pre-trainingpretraining_snemi3d.ckptBaiduYun (Access code: weih) or GoogleDrive
5L+200U (WS)seg_ac3_d5_1024_u200_WS.ckptBaiduYun (Access code: weih) or GoogleDrive
5L+200U (EMA)seg_ac3_d5_1024_u200_EMA.ckptBaiduYun (Access code: weih) or GoogleDrive
10Lseg_kasthuri15_d10.ckptBaiduYun (Access code: weih) or GoogleDrive
10L+200Useg_kasthuri15_d10_u200.ckptBaiduYun (Access code: weih) or GoogleDrive
50L+200Useg_kasthuri15_d50_u200.ckptBaiduYun (Access code: weih) or GoogleDrive
100Lseg_kasthuri15_d100.ckptBaiduYun (Access code: weih) or GoogleDrive
100L+200Useg_kasthuri15_d100_u200.ckptBaiduYun (Access code: weih) or GoogleDrive
100L+1000Useg_kasthuri15_d100_u1000.ckptBaiduYun (Access code: weih) or GoogleDrive

More visual results on the Kasthuri15 dataset

To demonstrate the generalizability performance of our method on the large-scale EM data, we test our models on the Kasthuri15 dataset. The quantitative results can be found in our paper. Here, we provide more visual results on the Subset3 dataset to qualitatively demonstrate the superiority of our semi-supervised method compared with the existing supervised method with full labeled data (100L).

id5884

id1455

id6913

Left images are the results of the supervised method (100L), while right images are the results of our semi-supervised method (100L+1000U), where blue and red arrows represent split and merge errors, respectively.

Related Projects

funkey/waterz

constantinpape/elf

Contact

If you have any problem with the released code, please do not hesitate to contact me by email (weih527@mail.ustc.edu.cn).