All Projects → CVxTz → medical_image_segmentation

CVxTz / medical_image_segmentation

Licence: MIT license
Medical image segmentation ( Eye vessel segmentation)

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to medical image segmentation

Awesome Gan For Medical Imaging
Awesome GAN for Medical Imaging
Stars: ✭ 1,814 (+1915.56%)
Mutual labels:  medical-imaging, segmentation
Miscnn
A framework for Medical Image Segmentation with Convolutional Neural Networks and Deep Learning
Stars: ✭ 194 (+115.56%)
Mutual labels:  medical-imaging, segmentation
Kiu Net Pytorch
Official Pytorch Code of KiU-Net for Image Segmentation - MICCAI 2020 (Oral)
Stars: ✭ 134 (+48.89%)
Mutual labels:  medical-imaging, segmentation
Quicknat pytorch
PyTorch Implementation of QuickNAT and Bayesian QuickNAT, a fast brain MRI segmentation framework with segmentation Quality control using structure-wise uncertainty
Stars: ✭ 74 (-17.78%)
Mutual labels:  medical-imaging, segmentation
covid19.MIScnn
Robust Chest CT Image Segmentation of COVID-19 Lung Infection based on limited data
Stars: ✭ 77 (-14.44%)
Mutual labels:  medical-imaging, segmentation
Vnet Tensorflow
Tensorflow implementation of the V-Net architecture for medical imaging segmentation.
Stars: ✭ 84 (-6.67%)
Mutual labels:  medical-imaging, segmentation
Medical Transformer
Pytorch Code for "Medical Transformer: Gated Axial-Attention for Medical Image Segmentation"
Stars: ✭ 153 (+70%)
Mutual labels:  medical-imaging, segmentation
Medicaldetectiontoolkit
The Medical Detection Toolkit contains 2D + 3D implementations of prevalent object detectors such as Mask R-CNN, Retina Net, Retina U-Net, as well as a training and inference framework focused on dealing with medical images.
Stars: ✭ 917 (+918.89%)
Mutual labels:  medical-imaging, segmentation
Brainy
Brainy is a virtual MRI analyzer. Just upload the MRI scan file and get 3 different classes of tumors detected and segmented. In Beta.
Stars: ✭ 29 (-67.78%)
Mutual labels:  medical-imaging, segmentation
Skin Lesion Detection Deep Learning
Skin lesion detection from dermoscopic images using Convolutional Neural Networks
Stars: ✭ 48 (-46.67%)
Mutual labels:  medical-imaging, segmentation
Data Science Bowl 2018
End-to-end one-class instance segmentation based on U-Net architecture for Data Science Bowl 2018 in Kaggle
Stars: ✭ 56 (-37.78%)
Mutual labels:  medical-imaging, segmentation
VNet
Prostate MR Image Segmentation 2012
Stars: ✭ 54 (-40%)
Mutual labels:  medical-imaging, segmentation
Extensionsindex
Slicer extensions index
Stars: ✭ 36 (-60%)
Mutual labels:  medical-imaging, segmentation
Niftynet
[unmaintained] An open-source convolutional neural networks platform for research in medical image analysis and image-guided therapy
Stars: ✭ 1,276 (+1317.78%)
Mutual labels:  medical-imaging, segmentation
Segment Open
Segment Source Distribution
Stars: ✭ 34 (-62.22%)
Mutual labels:  medical-imaging, segmentation
Open Solution Data Science Bowl 2018
Open solution to the Data Science Bowl 2018
Stars: ✭ 159 (+76.67%)
Mutual labels:  medical-imaging, segmentation
Slicergitsvnarchive
Multi-platform, free open source software for visualization and image computing.
Stars: ✭ 896 (+895.56%)
Mutual labels:  medical-imaging, segmentation
Ganseg
Framework for medical image segmentation using deep neural networks
Stars: ✭ 18 (-80%)
Mutual labels:  medical-imaging, segmentation
subpixel-embedding-segmentation
PyTorch Implementation of Small Lesion Segmentation in Brain MRIs with Subpixel Embedding (ORAL, MICCAIW 2021)
Stars: ✭ 22 (-75.56%)
Mutual labels:  medical-imaging, segmentation
medSeg
Medical Image Segmentation Toolkit based on PaddlePaddle - 基于paddle的医学影像分割框架
Stars: ✭ 88 (-2.22%)
Mutual labels:  medical-imaging, segmentation

medical_image_segmentation

Medical image segmentation Code for : https://towardsdatascience.com/vessel-segmentation-with-python-and-keras-722f9fb71b21

Data

Available at https://www.isi.uu.nl/Research/Databases/DRIVE/

Unzip in ./input

Vessel Segmentation With Python and Keras

Motivation :

Automatic segmentation of medical images is an important step to extract useful information that can help doctors make a diagnosis. For example, it can be used to segment retinal vessels so that we can represent their structure and measure their width which in turn can help diagnose retinal diseases.

In this post we will implement a Neural baseline that does image segmentation applied to retinal vessel images.

Dataset :

http://www.isi.uu.nl/Research/Databases/DRIVE/browser.php

We use DRIVE (Digital Retinal Images for Vessel Extraction) data set for all the experiments throughout the post. It is a data set of 40 retinal images ( 20 for training and 20 for testing ) where blood vessel were annotated at the pixel level ( see example above) to mark the presence (1) or absence (0) of a blood vessel at each pixel (i, j) of the image.

Problem Setting :

Problem : We want to assign to each a pixel a “1” label if it is part of a blood vessel in the image and “0” otherwise.
Intuition/Hypothesis : The neighboring pixels values are important to make a prediction for each pixel (i, j) so we should take into account context. The predictions do not depend on the specific position on the image so the classifier should have some translation invariance.
Solution : Use CNNs ! We will use the U-net architecture to do blood vessel segmentation. It is an architecture that is widely used for semantic segmentation tasks especially in the medical domain.

Model :

U-net

The U-net Architecture is an encoder-decoder with some skip connections between the encoder and the decoder. The major advantage of this architecture is its ability to take into account a wider context when making a prediction for a pixel. This is thanks to the large number of channels used in the up-sampling operation.

Input image processing :

We apply this sequence of processing steps before feeding it to the CNN.

  • Normalization : we divide pixel intensities by 255 so they are in the 0–1 range.
  • Cropping : The network expects each dimension of the input image to be divisible by 2⁴ because of the pooling operations so we take a random crop of 64*64 from each image.
  • Data augmentation : Random flip (Horizontal or vertical or both), Random Shear, Random translation (Horizontal or vertical or both), Random Zoom. Performed during training only.

We train three variations of the model :

  • Pre-trained on ImageNet VGG encoder + data augmentation.
  • Trained from scratch + data augmentation.
  • Trained from scratch without data augmentation.

We will compare those three models using AUC ROC metric and we will only consider the pixels inside the retinal mask in the evaluation (meaning the black edges around the circle of the image won’t count).

Results :

  • Trained from scratch + data augmentation AUC ROC : 0.9820
  • Trained from scratch without augmentation AUC ROC : 0.9806
  • Pre-trained encoder + data augmentation AUC ROC : 0.9811

The performance is close for the three variations but it seems pretraining does not help in this case while data augmentation does a little bit.

Best model predictions

The predictions in the figure above look pretty cool ! 😄

Predictions on top of ground Truth

We also plot the differences between the predictions and the ground truth : False negatives in blue and false positives in red. We can see that the model have some difficulties predicting fine vessels that are just one or two pixels wide.

Conclusion :

In this post we implemented a neural network to do image segmentation applied to blood vessel detection in retinal images. We obtained an AUC ROC of **0.9820 **which is pretty close to the state of the art ( https://paperswithcode.com/search?q=vessel ). What I find most interesting about the results of the experiments is that for some tasks like this one we can train a deep neural network on as little as 20 images and still obtain a nice performance and pretty cool results.

Code to reproduce the results is available here : https://github.com/CVxTz/medical_image_segmentation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].