We present a novel and efficient computing framework for segmenting the overlapping nuclei by combining Marker-controlled Watershed with our proposed convolutional neural network (DIMAN). We implemented our method based on the open-source machine learning framework TensorFlow and reinforcement learning library TensorLayer.This repository contains all code used in our experiments, incuding the data preparation, model construction, model training and result evaluation. For comparison with our method, we also utilized TensorFlow and TensorLayer to reimplement four known semantic segmentation convolutional neural networks: FCN8s, U-Net, HED and SharpMask. Beside this, we also compare our method with four published state-of-art methods.
Steps to reproduce
1. Dependencies Matlab Python 3.x TensorFlow 1.x TensorLayer 1.5.4 Scikit-image 13.0 Numpy Scipy 2. Composition of code the main steps for data preparation, model training and result evaluation: step_1: randomly extracting the image patches from original images step_2: randomly divide the image patches as training and validation data step_3: producing the pixel-wise weight map for solving the class-imbalance problem step_4: transforming the image patches into tfrecord file step_5: training multiple networks with same hyper-parameters step_6: using the networks to segment the testing images step_7: evaluating the segmentation results step_8: arranging the evaluation data as a table ./tools: image patches, masker and interval extraction ./nets: model construction ./utils: producing tfrecord file and image post-processing (classical watershed, condition erosion based watershed, dynamics based watershed) ./Evaluation Metrics: evaluation methods