Git Product home page Git Product logo

medimaging-modeldriftmonitoring's Introduction

Multi-Modal Drift Concordance For DL-based Automated Chest X-Ray Interpretation

Python Version PyTorch PyPI LICENSE

MMC Drift aims to provide a system and a set of experiments from the paper CheXstray: Real-time Multi-Modal Data Concordance for Drift Detection in Medical Imaging AI to test engineered dataset and model drift scenarios that simulate different indicators for medical imaging AI drift in a production environment. If you use or like our library, please star⭐ our repo. Thank you!

Our framework has a modular design and can be used in a plug-and-play manner to test multiple input drift modalities and scenarios that may include new datasets.

πŸ” Why Multi-Modal Drift?

Rapidly expanding Clinical AI applications worldwide have the potential to impact all areas of medical practice. Medical imaging applications constitute a vast majority of approved clinical AI applications. A fundamental question remains: What happens after the AI model goes into production?

We use the CheXpert and PadChest public datasets to build and test a medical imaging AI drift monitoring workflow that tracks data and model drift without contemporaneous ground truth. We simulate drift in multiple experiments to compare model performance with our novel multi-modal drift metric, which uses DICOM metadata, image appearance representation from a variational autoencoder (VAE), and model output probabilities as input. Through experimentation, we demonstrate a strong proxy for ground truth performance using unsupervised distributional shifts in relevant metadata, predicted probabilities, and VAE latent representation.

The key contributions of our research include:

(1) proof-of-concept for medical imaging drift detection including use of deep generative models (VAE) and domain specific statistical methods

(2) a multi-modal methodology for measuring and unifying drift metrics

(3) new insights into the challenges and solutions for observing deployed medical imaging AI

(4) creation of open-source tools (this repo) enabling others to easily run their own workflows or scenarios. This work has important implications for addressing the translation gap related to continuous medical imaging AI model monitoring in dynamic healthcare environments.

Source Code

This code is provided for research and development use only. This code is not intended for use in clinical decision-making or for any other clinical use and the performance of the code for clinical use has not been established. This source code requires selection of a reference and test datasets by the user. Microsoft does not warrant the suitability or accuracy of any predictive model generated using this source code. You bear sole responsibility for selection of a training dataset and for evaluation and use of any resulting model

⭐ Features

  • Plug-and-play utilization
  • Use PyTorch Lightning for quicker reproducibility
  • Test engineered drift scenarios
  • Simulate both performance degradation and clinical workflow failure
  • Gain insight into new methodologies (like drift metric unification) via ready-to-use Jupyter Notebooks
  • Work with open-source or private datasets
  • Hands-on AzureML Tutorials

βš™οΈ Installation

Install the project and get up and running with conda

conda env create -f ./environment.yml --prefix ".venv"
conda activate "./.venv"
conda develop src

πŸ“” Usage

  • To test our MMC code using pre-obtained individual metrics, start here
  • If you would like to train your own models, and generate your own metrics, start here.
  • Links to individual notebooks are here

⚑ Useful Tips

  • Your Chest X-Ray dataset should have 0,1 labels, e.g., 1 represents presence of finding and 0 is the absence of a given finding
  • If there is no metadata or ground truth available, your drift analysis will be based on the Variational Autoencoder (VAE) and model output scores
  • Our tutorial uses AzureML, however our source code, scripts and notebooks are written such that they can used without AzureML!

🀝 Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

These are the ways to contribute:

  • Submit bugs and help us verify fixes as they are checked in.
  • Contribute your own source code changes through a pull request.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

❀️ Support

How to file issues and get help

This project uses GitHub issues to track bugs, feature requests, to ask for help and other questions about using this project. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new Issue.

πŸ“– Citation

If you find MMC Drift useful in your work, please acknowledge our library and cite the following paper:

@misc{soin2022chexstray,
      title={CheXstray: Real-time Multi-Modal Data Concordance for Drift Detection in Medical Imaging AI}, 
      author={Arjun Soin and Jameson Merkow and Jin Long and Joseph Paul Cohen and Smitha Saligrama and Stephen Kaiser and Steven Borg and Ivan Tarapov and Matthew P Lungren},
      year={2022},
      eprint={2202.02833},
      archivePrefix={arXiv},
      primaryClass={eess.IV}
}

βœ”οΈ Acknowledgements

πŸ‘€ Extras

Check out these other projects from Microsoft!

InnerEye - Advanced Machine Learning algorithms for medical imaging

If you are looking for advanced algorithms for medical image analysis that harness the power of Azure-based cloud computing - make sure to check out the amazing work done by the InnerEye team from Microsoft Research Cambridge and their open-source repositories:

  • InnerEye-DeepLearning for advanced medical image analysis algorithms
  • HI-ML - building blocks for AI/ML scenarios for medical applications:

DICOM Service

A real world medical imaging AI setup would leverage DICOM data and would benefit from storing DICOM images in the cloud. You can explore the services that Microsoft provides to manage DICOM and FHIR data in the cloud:

Microsoft Medical Imaging AI RSNA 2021 Demo

This demo will walk you through the steps that a data science team would typically undertake and describe the use of Microsoft tools as well as provide some custom code to take you through the steps. The focus of this demo is not on the algorithms used to build the best performing system, but rather the steps and tools that are needed to get one there. The same tools and principles could be applied to many other types of medical imaging datasets.

Medical Imaging AI Scenarios

The content in this repository includes several Python notebooks that cover medical imaging use cases based on classification, object detection and instance segmentation. All use cases are based on publicly available datasets like brain RMI scans, cell micrographs, chest x-ray images and more.

Learning materials

Here are some learning materials if you would like to explore some of the Microsoft's AI tools further:

©️ Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

medimaging-modeldriftmonitoring's People

Contributors

jmerkow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

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.