Skip to content
Wenqi Li edited this page Mar 16, 2020 · 1 revision

Project MONAI

Medical Open Network for AI - Toolkit for Healthcare Imaging

This document identifies key concepts of project MONAI at a high level, the goal is to facilitate further technical discussions of requirements, roadmap, feasibility and trade-offs.

Vision

  • Develop a community of academic, industrial and clinical researchers collaborating and working on a common foundation of standardized tools.
  • Create a state-of-the-art, end-to-end training toolkit for healthcare imaging.
  • Provide academic and industrial researchers with the optimized and standardized way to create and evaluate models

Targeted users

  • Primarily focused on the healthcare researchers who develop DL models for medical imaging

Goals

  • Deliver domain-specific workflow capabilities
  • Address the end-end “Pain points” when creating medical imaging deep learning workflows.
  • Provide a robust foundation with a performance optimized system software stack that allows researchers to focus on the research and not worry about software development principles.

Guiding principles

Modularity

  • Pythonic -- object oriented components
  • Compositional -- can combine components to create workflows
  • Extensible -- easy to create new components and extend existing components
  • Easy to debug -- loosely coupled, easy to follow code (e.g. in eager or graph mode)
  • Flexible -- interfaces for easy integration of external modules

User friendly

  • Portable -- use components/workflows via Python “import”
  • Run well-known baseline workflows in a few commands
  • Access to the well-known public datasets in a few lines of code

Standardisation

  • Unified/consistent component APIs with documentation specifications
  • Unified/consistent data and model formats, compatible with other existing standards

High quality

  • Consistent coding style - extensive documentation - tutorials - contributors’ guidelines
  • Reproducibility -- e.g. system-specific deterministic training

Future proof

  • Task scalability -- both in datasets and computational resources
  • Support for advanced data structures -- e.g. graphs/structured text documents

Leverage existing high-quality software packages whenever possible

  • E.g. low-level medical image format reader, image preprocessing with external packages
  • Rigorous risk analysis of choice of foundational software dependencies

Compatible with external software

  • E.g. data visualisation, experiments tracking, management, orchestration

Key capabilities

Basic features Example Notes
Ready-to-use workflows Volumetric image segmentation “Bring your own dataset”
Baseline/reference network architectures Provide an option to use “U-Net”
Intuitive command-line interfaces
Multi-gpu training Configure the workflow to run data parallel training
Customisable Python interfaces Example Notes
Training/validation strategies Schedule a strategy of alternating between generator and discriminator model training
Network architectures Define new networks w/ the recent “Squeeze-and-Excitation” blocks “Bring your own model”
Data preprocessors Define a new reader to read training data from a database system
Adaptive training schedule Stop training when the loss becomes “NaN” “Callbacks”
Configuration-driven workflow assembly Making workflow instances from configuration file Convenient for managing hyperparameters
Model sharing & transfer learning Example Notes
Sharing model parameters, hyperparameter configurations Standardisation of model archiving format
Model optimisation for deployment
Fine-tuning from pre-trained models Model compression, TensorRT
Model interpretability Visualising feature maps of a trained model
Experiment tracking & management https://polyaxon.com/
Advanced features Example Notes
Compatibility with external toolkits XNAT as data source, ITK as preprocessor
Advanced learning strategies Semi-supervised, active learning
High performance preprocessors Smart caching, multi-process
Multi-node distributed training
Clone this wiki locally