frankkramer-lab / aucmedi

a framework for Automated Classification of Medical Images
https://frankkramer-lab.github.io/aucmedi/
GNU General Public License v3.0
38 stars 13 forks source link
automl clinical-decision-support computer-vision deep-learning docker explainable-ai framework healthcare-imaging image-classification medical-image-analysis medical-image-classification pip python research tensorflow

aucmedi_logo

shield_python shield_build shield_coverage shield_docs shield_pypi_version shield_pypi_downloads shield_license

The open-source software AUCMEDI allows fast setup of medical image classification pipelines with state-of-the-art methods via an intuitive, high-level Python API or via an AutoML deployment through Docker/CLI.

AUCMEDI provides several core features:

Resources

Getting started: 60 seconds to automated medical image classification

Simply install AUCMEDI with a single line of code via pip.

Install AUCMEDI via PyPI

pip install aucmedi

Now, you can build a state-of-the-art medical image classification pipeline via the standardized AutoML interface or a custom pipeline with the framework interface.

AutoML

Train a model and classify unknown images

# Run training with default arguments, but a specific architecture
aucmedi training --architecture "DenseNet121"

# Run prediction with default arguments
aucmedi prediction

Framework

Your custom pipeline with just the 3 AUCMEDI pillars:

Build a pipeline

# AUCMEDI library
from aucmedi import *

# Pillar #1: Initialize input data reader
ds = input_interface(interface="csv",
                     path_imagedir="/home/muellerdo/COVdataset/ct_slides/",
                     path_data="/home/muellerdo/COVdataset/classes.csv",
                     ohe=False,           # OHE short for one-hot encoding
                     col_sample="ID", col_class="PCRpositive")
(index_list, class_ohe, nclasses, class_names, image_format) = ds

# Pillar #2: Initialize a DenseNet121 model with ImageNet weights
model = NeuralNetwork(n_labels=nclasses, channels=3,
                       architecture="2D.DenseNet121",
                       pretrained_weights=True)

Train a model and use it!

# Pillar #3: Initialize training Data Generator for first 1000 samples
train_gen = DataGenerator(samples=index_list[:1000],
                          path_imagedir="/home/muellerdo/COVdataset/ct_slides/",
                          labels=class_ohe[:1000],
                          image_format=image_format,
                          resize=model.meta_input,
                          standardize_mode=model.meta_standardize)
# Run model training with Transfer Learning
model.train(train_gen, epochs=20, transfer_learning=True)

# Pillar #3: Initialize testing Data Generator for 500 samples
test_gen = DataGenerator(samples=index_list[1000:1500],
                         path_imagedir="/home/muellerdo/COVdataset/ct_slides/",
                         labels=None,
                         image_format=image_format,
                         resize=model.meta_input,
                         standardize_mode=model.meta_standardize)
# Run model inference for unknown samples
preds = model.predict(test_gen)

# preds <-> NumPy array with shape (500,2)
# -> 500 predictions with softmax probabilities for our 2 classes

How to cite / More information

AUCMEDI is currently unpublished. But coming soon!

In the meantime:
Please cite our application manuscript as well as the AUCMEDI GitHub repository:

Mayer, S., Müller, D., & Kramer F. (2022). Standardized Medical Image Classification
across Medical Disciplines. [Preprint] https://arxiv.org/abs/2210.11091.

@article{AUCMEDIapplicationMUELLER2022,
  title={Standardized Medical Image Classification across Medical Disciplines},
  author={Simone Mayer, Dominik Müller, Frank Kramer},
  year={2022}
  eprint={2210.11091},
  archivePrefix={arXiv},
  primaryClass={cs.CV}
}
Müller, D., Mayer, S., Hartmann, D., Schneider, P., Soto-Rey, I., & Kramer, F. (2022).
AUCMEDI: a framework for Automated Classification of Medical Images (Version X.Y.Z) [Computer software].
https://doi.org/10.5281/zenodo.6633540. GitHub repository. https://github.com/frankkramer-lab/aucmedi

Thank you for citing our work.

Lead Author

Dominik Müller\ Email: dominik.mueller@informatik.uni-augsburg.de\ IT-Infrastructure for Translational Medical Research\ University Augsburg\ Bavaria, Germany

License

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