Giter Club home page Giter Club logo

xnet's Introduction

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:

@proceeding{
author = {Joseph Bullock,Carolina Cuesta-L\'{a}zaro,Arnau Quera-Bofarull},
title = {XNet: a convolutional neural network (CNN) implementation for medical x-ray image segmentation suitable for small datasets},
volume = {10953},
year = {2019},
doi = {10.1117/12.2512451},
URL = {https://doi.org/10.1117/12.2512451},
eprint = {}
}

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.

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.