Coder Social home page Coder Social logo

mitochondria_segmentation's Introduction

mitochondria_segmentation

segment mitochondria in microscope images.

Data

There is 141 images, each has a resolution of 1024*768 pixels. I use 126 of them as training set, and leave the rest for testing. For each picture, I extract 64*64 patch, then apply data augmentation to get more training samples. With stride of 64, I had 192 patches from each picture, then by rotating 3 times, and applying horizontal and vertical mirroring, I can get 6 times more, which is 1152. Hence the total amount of training set is 145152.

Method

Model

The model is almost U-Net, one big difference is, pooling layers and transposed convolution layers have both been reduced to 3 times, different from the original version, which has it 4 times. And the number of channels of all inner layer has been halved. please read the source code for the details.

Post Processing

I use opening and closing to reduce small noises. Opening is defined as erosion followed by dilation, while closing is the opposite, defined as dilation then erosion. I found that doing several times of closing then opening would make the result a bit better.

Training

Training is performed on Google Colaboratory. Batch size is fixed at 64, after about 500 epochs, it reaches probably the best result. mito.ipynb shows the process.

Result

Thresholded output of the model is in pred_6, I deployed post processing on that output, and the result is in rst.

I assume mitochondria as positive, and other area is negative. Below is probably the best result I did.

Accuracy Sensitivity Specificity Dice IOU
0.9885 0.9606 0.9901 0.8984 0.8156

mitochondria_segmentation's People

Contributors

mitseng avatar

Stargazers

 avatar  avatar

Watchers

 avatar

mitochondria_segmentation's Issues

why not use patch in predict stage?

I found that you use patch images to train the model. But in predict.py, you use a whole image to predict. Usually our training and testing should use the same size data. I haven't encountered such data processing in training and testing before. Would you like to answer if this is reasonable?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.