aucmedi

a framework for Automated Classification of Medical Images

https://github.com/frankkramer-lab/aucmedi

Science Score: 85.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
    Organization frankkramer-lab has institutional domain (www.uni-augsburg.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.1%) to scientific vocabulary

Keywords

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
Last synced: 4 months ago · JSON representation ·

Repository

a framework for Automated Classification of Medical Images

Basic Info
Statistics
  • Stars: 41
  • Watchers: 3
  • Forks: 14
  • Open Issues: 59
  • Releases: 13
Topics
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
Created about 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Citation

README.md

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:
- Wide range of 2D/3D data entry options with interfaces to the most common medical image formats such as DICOM, MetaImage, NifTI, PNG or TIF already supplied. - Selection of pre-processing methods for preparing images, such as augmentation processes, color conversions, windowing, filtering, resizing and normalization. - Use of deep neural networks for binary, multi-class as well as multi-label classification and efficient methods against class imbalances using modern loss functions such as focal loss. - Library from modern architectures, like ResNet up to ConvNeXt. <!-- and Vision-Transformers (ViT)⁠.--> - Complex ensemble learning techniques (combination of predictions) using test-time augmentation, bagging via cross-validation or stacking via logistic regressions. - Explainable AI to explain opaque decision-making processes of the models using activation maps such as Grad-CAM or backpropagation. - Automated Machine Learning (AutoML) mentality to ensure easy deployment, integration and maintenance of complex medical image classification pipelines (Docker).

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 sh 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 ```bash

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: - Pillar #1: input_interface() for obtaining general dataset information - Pillar #2: NeuralNetwork() for the deep learning model - Pillar #3: DataGenerator() for a powerful interface to load any images/volumes into your model

Build a pipeline ```python

AUCMEDI library

from aucmedi import *

Pillar #1: Initialize input data reader

ds = inputinterface(interface="csv", pathimagedir="/home/muellerdo/COVdataset/ctslides/", pathdata="/home/muellerdo/COVdataset/classes.csv", ohe=False, # OHE short for one-hot encoding colsample="ID", colclass="PCRpositive") (indexlist, classohe, nclasses, classnames, imageformat) = ds

Pillar #2: Initialize a DenseNet121 model with ImageNet weights

model = NeuralNetwork(nlabels=nclasses, channels=3, architecture="2D.DenseNet121", pretrainedweights=True) ```

Train a model and use it! ```python

Pillar #3: Initialize training Data Generator for first 1000 samples

traingen = DataGenerator(samples=indexlist[:1000], pathimagedir="/home/muellerdo/COVdataset/ctslides/", labels=classohe[:1000], imageformat=imageformat, resize=model.metainput, standardizemode=model.metastandardize)

Run model training with Transfer Learning

model.train(traingen, epochs=20, transferlearning=True)

Pillar #3: Initialize testing Data Generator for 500 samples

testgen = DataGenerator(samples=indexlist[1000:1500], pathimagedir="/home/muellerdo/COVdataset/ctslides/", labels=None, imageformat=imageformat, resize=model.metainput, standardizemode=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.

Owner

  • Name: frankkramer-lab
  • Login: frankkramer-lab
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Müller"
  given-names: "Dominik"
  orcid: "https://orcid.org/0000-0003-0838-9885"
- family-names: "Mayer"
  given-names: "Simone"
  orcid: "https://orcid.org/0000-0002-7825-5738"
- family-names: "Hartmann"
  given-names: "Dennis"
- family-names: "Schneider"
  given-names: "Pia"
- family-names: "Soto-Rey"
  given-names: "Iñaki"
  orcid: "https://orcid.org/0000-0003-3061-5818"
- family-names: "Kramer"
  given-names: "Frank"
  orcid: "https://orcid.org/0000-0002-2857-7122"
title: "AUCMEDI: a framework for Automated Classification of Medical Images"
version: X.Y.Z
doi: 10.5281/zenodo.6633540
date-released: 2022-06-01
url: "https://github.com/frankkramer-lab/aucmedi"

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 5
  • Watch event: 3
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 6
  • Pull request review event: 2
  • Pull request review comment event: 3
  • Pull request event: 1
  • Fork event: 1
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 5
  • Watch event: 3
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 6
  • Pull request review event: 2
  • Pull request review comment event: 3
  • Pull request event: 1
  • Fork event: 1

Committers

Last synced: almost 2 years ago

All Time
  • Total Commits: 703
  • Total Committers: 2
  • Avg Commits per committer: 351.5
  • Development Distribution Score (DDS): 0.028
Past Year
  • Commits: 26
  • Committers: 1
  • Avg Commits per committer: 26.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
muellerdo d****8@l****e 683
Simone Mayer s****r@s****e 20
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 90
  • Total pull requests: 40
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 10
  • Total pull request authors: 8
  • Average comments per issue: 1.17
  • Average comments per pull request: 1.2
  • Merged pull requests: 28
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 month
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.14
  • Average comments per pull request: 1.2
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • muellerdo (73)
  • SherlockMones (7)
  • krekiehn (2)
  • smcch (2)
  • rizoudal (1)
  • miriamelia (1)
  • adhusch (1)
  • Pfleiderer-Adrian (1)
  • hannesUlrich (1)
  • zapod838 (1)
Pull Request Authors
  • muellerdo (21)
  • SherlockMones (10)
  • Deathlymad (7)
  • rizoudal (6)
  • DanielHieber (4)
  • ottkat (3)
  • Dennis182 (2)
  • Sassy-Nazogram (2)
Top Labels
Issue Labels
enhancement (49) bug (19) roadmap (15) discussion (12) documentation (12) question (3) help wanted (3)
Pull Request Labels
enhancement (16) bug (6) documentation (2) roadmap (1) help wanted (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 208 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 16
  • Total maintainers: 1
pypi.org: aucmedi

AUCMEDI - a framework for Automated Classification of Medical Images

  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 208 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 11.5%
Stargazers count: 12.1%
Average: 12.7%
Forks count: 13.3%
Downloads: 16.5%
Maintainers (1)
Last synced: 5 months ago

Dependencies

requirements.txt pypi
  • SimpleITK ==2.1.1.2
  • albumentations ==1.1.0
  • batchgenerators ==0.24
  • classification-models-3D ==1.0.4
  • keras-applications ==1.0.8
  • lime ==0.2.0.1
  • numpy ==1.22.3
  • pandas ==1.4.2
  • pillow ==9.1.0
  • plotnine ==0.8.0
  • pooch ==1.6.0
  • protobuf ==3.20.1
  • scikit-image ==0.19.2
  • scikit-learn ==1.0.2
  • tensorflow ==2.8.0
  • tensorflow-addons ==0.16.1
  • vit-keras ==0.1.0
  • volumentations-aucmedi ==1.0.1
setup.py pypi
  • SimpleITK >=2.1.1
  • albumentations >=1.1.0
  • batchgenerators >=0.23
  • classification-models-3D >=1.0.4
  • keras-applications >=1.0.8
  • lime >=0.2.0.1
  • numpy >=1.19.2
  • pandas >=1.4.0
  • pillow >=8.3.2
  • plotnine >=0.8.0
  • pooch >=1.6.0
  • scikit-image >=0.19.1
  • scikit-learn >=1.0.2
  • tensorflow >=2.6.0
  • tensorflow-addons >=0.16.1
  • vit-keras >=0.1.0
  • volumentations-aucmedi >=1.0.1
Dockerfile docker
  • tensorflow/tensorflow latest-gpu build
.github/workflows/build-package.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/code-quality.yml actions
  • actions/checkout v2 composite
  • actions/checkout v3 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v2 composite
  • wagoid/commitlint-github-action v4 composite
.github/workflows/release.yml actions
  • Requarks/changelog-action v1 composite
  • actions/checkout v2 composite
  • actions/checkout v3 composite
  • actions/create-release v1 composite
  • actions/setup-python v2 composite
  • docker/build-push-action v3 composite
  • docker/login-action v2 composite
  • docker/metadata-action v4 composite
  • pypa/gh-action-pypi-publish master composite
.github/workflows/website.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite