• Stars
    star
    402
  • Rank 107,380 (Top 3 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A framework for Medical Image Segmentation with Convolutional Neural Networks and Deep Learning

MIScnn workflow

shield_python shield_build shield_coverage shield_pypi_version shield_pypi_downloads shield_license

The open-source Python library MIScnn is an intuitive API allowing fast setup of medical image segmentation pipelines with state-of-the-art convolutional neural network and deep learning models in just a few lines of code.

MIScnn provides several core features:

  • 2D/3D medical image segmentation for binary and multi-class problems
  • Data I/O, preprocessing and data augmentation for biomedical images
  • Patch-wise and full image analysis
  • State-of-the-art deep learning model and metric library
  • Intuitive and fast model utilization (training, prediction)
  • Multiple automatic evaluation techniques (e.g. cross-validation)
  • Custom model, data I/O, pre-/postprocessing and metric support
  • Based on Keras with Tensorflow as backend

MIScnn workflow

Resources

Getting started: 60 seconds to a MIS pipeline

# Import the MIScnn module
import miscnn

# Create a Data I/O interface for kidney tumor CT scans in NIfTI format
from miscnn.data_loading.interfaces import NIFTI_interface
interface = NIFTI_interface(pattern="case_000[0-9]*", channels=1, classes=3)

# Initialize data path and create the Data I/O instance
data_path = "/home/mudomini/projects/KITS_challenge2019/kits19/data.original/"
data_io = miscnn.Data_IO(interface, data_path)

# Create a Preprocessor instance to configure how to preprocess the data into batches
pp = miscnn.Preprocessor(data_io, batch_size=4, analysis="patchwise-crop",
                         patch_shape=(128,128,128))

# Create a deep learning neural network model with a standard U-Net architecture
from miscnn.neural_network.architecture.unet.standard import Architecture
unet_standard = Architecture()
model = miscnn.Neural_Network(preprocessor=pp, architecture=unet_standard)

Congratulations to your ready-to-use Medical Image Segmentation pipeline including data I/O, preprocessing and data augmentation with default setting.

Let's run a model training on our data set. Afterwards, predict the segmentation of a sample using the fitted model.

# Training the model with 80 samples for 500 epochs
sample_list = data_io.get_indiceslist()
model.train(sample_list[0:80], epochs=500)

# Predict the segmentation for 20 samples
pred = model.predict(sample_list[80:100], return_output=True)

Now, let's run a 5-fold Cross-Validation with our model, create automatically evaluation figures and save the results into the directory "evaluation_results".

from miscnn.evaluation import cross_validation

cross_validation(sample_list, model, k_fold=5, epochs=100,
                 evaluation_path="evaluation_results", draw_figures=True)

More detailed examples for popular biomedical data sets or diverse tutorials for MIScnn are available as Jupyter Notebooks in this repository.

Installation

There are two ways to install MIScnn:

  • Install MIScnn from PyPI (recommended):

Note: These installation steps assume that you are on a Linux or Mac environment. If you are on Windows or in a virtual environment without root, you will need to remove sudo to run the commands below.

sudo pip install miscnn
  • Alternatively: install MIScnn from the GitHub source:

First, clone MIScnn using git:

git clone https://github.com/frankkramer-lab/MIScnn

Then, cd to the MIScnn folder and run the install command:

cd MIScnn
sudo python setup.py install

Experiments and Results

The task of the Kidney Tumor Segmentation challenge 2019 (KITS19) was to compute a semantic segmentation of arterial phase abdominal CT scans from 300 kidney cancer patients. Each pixel had to be labeled into one of three classes: Background, kidney or tumor. The original scans have an image resolution of 512x512 and on average 216 slices (highest slice number is 1059).

MIScnn was used on the KITS19 training data set in order to perform a 3-fold cross-validation with a 3D standard U-Net model.

evaluation plots

example gif

Author

Dominik Müller
Email: [email protected]
IT-Infrastructure for Translational Medical Research
University Augsburg
Bavaria, Germany

How to cite / More information

Müller, D., Kramer, F. MIScnn: a framework for medical image segmentation with convolutional neural networks and deep learning. BMC Med Imaging 21, 12 (2021).
DOI: https://doi.org/10.1186/s12880-020-00543-7

Article{miscnn21,
  title={MIScnn: a framework for medical image segmentation with convolutional neural networks and deep learning},
  author={Dominik Müller and Frank Kramer},
  year={2021},
  journal={BMC Medical Imaging},
  volume={21},
  url={https://doi.org/10.1186/s12880-020-00543-7},
  doi={10.1186/s12880-020-00543-7},
  eprint={1910.09308},
  archivePrefix={arXiv},
  primaryClass={eess.IV}
}

Thank you for citing our work.

License

This project is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
See the LICENSE.md file for license rights and limitations.

More Repositories

1

miseval

a metric library for Medical Image Segmentation EVALuation
Jupyter Notebook
106
star
2

covid19.MIScnn

Robust Chest CT Image Segmentation of COVID-19 Lung Infection based on limited data
Python
87
star
3

mully

R package to create, modify and visualize graphs with multiple layers.
HTML
45
star
4

aucmedi

a framework for Automated Classification of Medical Images
Python
38
star
5

riadd.aucmedi

Multi-Disease Detection in Retinal Imaging based on Ensembling Heterogeneous Deep Learning Models
Python
29
star
6

GERNERMED

GERNERMED is the first open neural NER model for medical entities designed for German data.
Python
17
star
7

ensmic

An analysis on Ensemble Learning optimized Medical Image Classification with Deep Convolutional Neural Networks
Python
17
star
8

GPTNERMED

GPTNERMED is a language model-generated, synthetic dataset and an open neural NER model for medical entities designed for German data.
Python
15
star
9

rBiopaxParser

Parses BioPAX files (BioPAX Version 2 and BioPAX Version 3 are supported) and represents them in R. There is quite alot of documentation available for this package. See the reference manual and the vignette for examples! If you have any questions or suggestions... DONT BE SHY! Mail me! See package description for an email address.
R
10
star
10

miseval.analysis

Source code for the publication: Towards a Guideline for Evaluation Metrics in Medical Image Segmentation
Python
9
star
11

GERNERMED-pp

GERNERMED++ is a transfer-learning-based open neural NER model for medical entities designed for German data.
Python
8
star
12

ndexr

R client library for NDEx
R
8
star
13

RCX

R package implementing the Cytoscape Exchange (CX) format
HTML
8
star
14

Multipath

Integrating pathways and related knowledge in a multilayer framework
R
5
star
15

DrNote

DrNote is an open tagging tool for text annotation and entity linking based on OpenTapioca and WIkiData/Wikipedia. It provides an entity linking service with pre-trained data for medical annotations in multilingual settings. The processing of raw text as well as PDF by a tesseract backend is supported.
Shell
5
star
16

PACS2go

Towards a Portable Research PACS for Interdisciplinary Collaboration
Python
5
star
17

DeepGleason

a System for Automated Gleason Grading of Prostate Cancer using Deep Neural Networks
Python
4
star
18

FHIRgraph

A graph datatype structure definition for FHIR® (Fast Healthcare Interoperability Resources [hl7.org/fhir])
Java
3
star
19

MISITcms-app

MISITcms - Assignment/Contest Management System for automatic code evaluation of students
Shell
3
star
20

reproducible-network-visualization

Reproducible Network Visualization
R
2
star
21

NDExEdit

Web-based editing of biological networks from the NDEx platform
TypeScript
1
star
22

gene-expression-on-fhir

Implementing semantic interoperability of gene expression profiles using the HL7 FHIR standard
Python
1
star
23

MetaRelSubNetVis

TypeScript
1
star
24

Multipath2Neo4j

R
1
star
25

Nursing-Quality-Indicators-in-German-FHIR-Implementations

Evaluation of the Availability of Nursing Quality Indicators in German FHIR Implementations
1
star