All Projects → JosephPB → XNet

JosephPB / XNet

Licence: other
CNN implementation for medical X-Ray image segmentation

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to XNet

Open Solution Data Science Bowl 2018
Open solution to the Data Science Bowl 2018
Stars: ✭ 159 (+123.94%)
Mutual labels:  medical-imaging, segmentation
Skin Lesion Detection Deep Learning
Skin lesion detection from dermoscopic images using Convolutional Neural Networks
Stars: ✭ 48 (-32.39%)
Mutual labels:  medical-imaging, segmentation
Medical Transformer
Pytorch Code for "Medical Transformer: Gated Axial-Attention for Medical Image Segmentation"
Stars: ✭ 153 (+115.49%)
Mutual labels:  medical-imaging, segmentation
Awesome Gan For Medical Imaging
Awesome GAN for Medical Imaging
Stars: ✭ 1,814 (+2454.93%)
Mutual labels:  medical-imaging, segmentation
Brain-MRI-Segmentation
Smart India Hackathon 2019 project given by the Department of Atomic Energy
Stars: ✭ 29 (-59.15%)
Mutual labels:  medical-imaging, segmentation
Kiu Net Pytorch
Official Pytorch Code of KiU-Net for Image Segmentation - MICCAI 2020 (Oral)
Stars: ✭ 134 (+88.73%)
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 (-69.01%)
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 (+4.23%)
Mutual labels:  medical-imaging, segmentation
medSeg
Medical Image Segmentation Toolkit based on PaddlePaddle - 基于paddle的医学影像分割框架
Stars: ✭ 88 (+23.94%)
Mutual labels:  medical-imaging, segmentation
covid19.MIScnn
Robust Chest CT Image Segmentation of COVID-19 Lung Infection based on limited data
Stars: ✭ 77 (+8.45%)
Mutual labels:  medical-imaging, segmentation
coursera-ai-for-medicine-specialization
Programming assignments, labs and quizzes from all courses in the Coursera AI for Medicine Specialization offered by deeplearning.ai
Stars: ✭ 80 (+12.68%)
Mutual labels:  medical-imaging, segmentation
medical image segmentation
Medical image segmentation ( Eye vessel segmentation)
Stars: ✭ 90 (+26.76%)
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 (+1697.18%)
Mutual labels:  medical-imaging, segmentation
mri-deep-learning-tools
Resurces for MRI images processing and deep learning in 3D
Stars: ✭ 56 (-21.13%)
Mutual labels:  medical-imaging, segmentation
Vnet Tensorflow
Tensorflow implementation of the V-Net architecture for medical imaging segmentation.
Stars: ✭ 84 (+18.31%)
Mutual labels:  medical-imaging, segmentation
Miscnn
A framework for Medical Image Segmentation with Convolutional Neural Networks and Deep Learning
Stars: ✭ 194 (+173.24%)
Mutual labels:  medical-imaging, segmentation
Extensionsindex
Slicer extensions index
Stars: ✭ 36 (-49.3%)
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 (-21.13%)
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 (-59.15%)
Mutual labels:  medical-imaging, segmentation
VNet
Prostate MR Image Segmentation 2012
Stars: ✭ 54 (-23.94%)
Mutual labels:  medical-imaging, segmentation

XNet

XNet is a Convolutional Neural Network designed for the segmentation of X-Ray images into bone, soft tissue and open beam regions. Specifically, it performs well on small datasets with the aim to minimise the number of false positives in the soft tissue class.

This code accompanies the paper published in the SPIE Medical Imaging Conference Proceedings (2019) and can be found on the preprint arXiv at: arXiv:1812.00548

Cite as:

@inproceedings{10.1117/12.2512451,
author = {Joseph Bullock and Carolina Cuesta-Lázaro and Arnau Quera-Bofarull},
title = {{XNet: a convolutional neural network (CNN) implementation for medical x-ray image segmentation suitable for small datasets}},
volume = {10953},
booktitle = {Medical Imaging 2019: Biomedical Applications in Molecular, Structural, and Functional Imaging},
editor = {Barjor Gimi and Andrzej Krol},
organization = {International Society for Optics and Photonics},
publisher = {SPIE},
pages = {453 -- 463},
keywords = {machine learning, deep learning, X-Ray segmentation, neural network, small datasets},
year = {2019},
doi = {10.1117/12.2512451},
URL = {https://doi.org/10.1117/12.2512451}
}

Architecture

  • Built on a typical encoder-decoder architecture as inspired by SegNet.

  • Additional feature extraction stage, with weight sharing across some layers.

  • Fine and coarse grained feature preservation through concatenation of layers.

  • L2 regularisation at each of the convolutional layers, to decrease overfitting.

The architecture is described in the XNet.py file.

Output

XNet outputs a mask of equal size to the input images.

Training

To train a model:

  1. Open Training/generate_parameters.py and define your desired hyperparameters
  2. Run Training/generate_parameters.py to generate a paramteres.txt file which is read Training/TrainingClass.py
  3. Run train.py

XNet is trained on a small dataset which has undergone augmention. Examples of this augmentation step can be found in the Augmentations/augmentations.ipynb notebook. Similarly the Training folder contains python scripts that perform the necessary augementations.

Running Training/train.py calls various other scripts to perform one of two possible ways of augmenting the images:

  • 'On the fly augmentation' where a new set of augmentations is generated at each epoch.

  • Pre-augmented images.

To select which method to use comment out the corresponding lines in the fit function in the Training/TrainingClass.py script.

train.py also performs postprocessing to fine tune the results.

Benchmarking

XNet was benchmarked against two of the leading segmentation networks:

  • Simplified SegNet (found in the SimpleSegNet.py file)

  • UNet (found in the UNet.py file)

Data

We trained on a dataset of:

  • 150 X-Ray images.

  • No scatter correction.

  • 1500x1500 .tif image downsampled to 200x200

  • 20 human body part classes.

  • Highly imbalanced.

As this work grew out of work with a corporation we are sadly unable to share the propriatory data we used.

More information

For more information and context see the conference poster Poster.pdf.

Please note that some of the path variables may need to be corrected in order to utilise the current filing system. These are planned to be updated in the future.

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].