-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* [DLMED] add highlight features to README * [DLMED] add temp images path to highlight features * documentation updates - update readmet - update docs/ structure - merged highlights.md - update docs/Makefile commands * [DLMED] update end-to-end process chart * revise docstring for transforms/losses * update docs * update readthedocs * 179 add DeleteKeys transform (#180) * [DLMED] add DeleteKeys transform * [DLMED] remove unnecessary copy * update docs * fixes github urls * fixes sys.getsizeof test on mac Co-authored-by: Nic Ma <nma@nvidia.com>
- Loading branch information
Showing
40 changed files
with
1,172 additions
and
520 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,243 +1,38 @@ | ||
# Project MONAI | ||
**M**edical **O**pen **N**etwork for **AI** - _Toolkit for Healthcare Imaging_ | ||
**M**edical **O**pen **N**etwork for **AI** | ||
|
||
_Contact: <monai.miccai2019@gmail.com>_ | ||
[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](https://opensource.org/licenses/Apache-2.0) [![pipeline status](https://gitlab.com/project-monai/MONAI/badges/master/pipeline.svg)](https://github.com/Project-MONAI/MONAI/commits/master) [![Documentation Status](https://readthedocs.org/projects/monai/badge/?version=latest)](https://monai.readthedocs.io/en/latest/?badge=latest) [![coverage report](https://gitlab.com/project-monai/MONAI/badges/master/coverage.svg)](https://gitlab.com/project-monai/MONAI/pipelines/) | ||
|
||
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 | ||
MONAI is a [PyTorch](https://pytorch.org/)-based, [open-source](https://github.com/Project-MONAI/MONAI/blob/master/LICENSE) platform for deep learning in healthcare imaging. Its ambitions are: | ||
- developing a community of academic, industrial and clinical researchers collaborating on a common foundation; | ||
- creating state-of-the-art, end-to-end training workflows for healthcare imaging; | ||
- providing researchers with the optimized and standardized way to create and evaluate deep learning 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. | ||
## Features | ||
> _The codebase is currently under active development._ | ||
## 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 | ||
- flexible pre-processing for multi-dimensional medical imaging data; | ||
- compositional & portable APIs for ease of integration in existing workflows; | ||
- domain-specific implementations for networks, losses, evaluation metrics and more; | ||
- customizable design for varying user expertise; | ||
- multi-GPU data parallelism support. | ||
|
||
## Key capabilities | ||
## Getting Started | ||
|
||
<table> | ||
<tr> | ||
<td> | ||
<strong><em>Basic features</em></strong> | ||
</td> | ||
<td colspan="2" ><em>Example</em> | ||
</td> | ||
<td><em>Notes</em> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Ready-to-use workflows | ||
</td> | ||
<td colspan="2" >Volumetric image segmentation | ||
</td> | ||
<td>“Bring your own dataset” | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Baseline/reference network architectures | ||
</td> | ||
<td colspan="2" >Provide an option to use “U-Net” | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Intuitive command-line interfaces | ||
</td> | ||
<td colspan="2" > | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Multi-gpu training | ||
</td> | ||
<td colspan="2" >Configure the workflow to run data parallel training | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
</table> | ||
Tutorials & examples are located at [monai/examples](https://github.com/Project-MONAI/MONAI/tree/master/examples). | ||
|
||
Technical documentation is available via [Read the Docs](https://monai.readthedocs.io/en/latest/). | ||
|
||
## Contributing | ||
For guidance on making a contribution to MONAI, see the [contributing guidelines](https://github.com/Project-MONAI/MONAI/blob/master/CONTRIBUTING.md). | ||
|
||
<table> | ||
<tr> | ||
<td><strong><em>Customisable Python interfaces</em></strong> | ||
</td> | ||
<td colspan="2" ><em>Example</em> | ||
</td> | ||
<td><em>Notes</em> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Training/validation strategies | ||
</td> | ||
<td colspan="2" >Schedule a strategy of alternating between generator and discriminator model training | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Network architectures | ||
</td> | ||
<td colspan="2" >Define new networks w/ the recent “Squeeze-and-Excitation” blocks | ||
</td> | ||
<td>“Bring your own model” | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Data preprocessors | ||
</td> | ||
<td colspan="2" >Define a new reader to read training data from a database system | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Adaptive training schedule | ||
</td> | ||
<td colspan="2" >Stop training when the loss becomes “NaN” | ||
</td> | ||
<td>“Callbacks” | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Configuration-driven workflow assembly | ||
</td> | ||
<td colspan="2" >Making workflow instances from configuration file | ||
</td> | ||
<td>Convenient for managing hyperparameters | ||
</td> | ||
</tr> | ||
</table> | ||
|
||
|
||
|
||
<table> | ||
<tr> | ||
<td><strong><em>Model sharing & transfer learning</em></strong> | ||
</td> | ||
<td colspan="2" ><em>Example</em> | ||
</td> | ||
<td><em>Notes</em> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Sharing model parameters, hyperparameter configurations | ||
</td> | ||
<td colspan="2" >Standardisation of model archiving format | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Model optimisation for deployment | ||
</td> | ||
<td colspan="2" > | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Fine-tuning from pre-trained models | ||
</td> | ||
<td colspan="2" >Model compression, TensorRT | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Model interpretability | ||
</td> | ||
<td colspan="2" >Visualising feature maps of a trained model | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Experiment tracking & management | ||
</td> | ||
<td colspan="2" > | ||
</td> | ||
<td><a href="https://polyaxon.com/">https://polyaxon.com/</a> | ||
</td> | ||
</tr> | ||
</table> | ||
|
||
|
||
|
||
<table> | ||
<tr> | ||
<td><strong><em>Advanced features</em></strong> | ||
</td> | ||
<td colspan="2" ><em>Example</em> | ||
</td> | ||
<td><em>Notes</em> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Compatibility with external toolkits | ||
</td> | ||
<td colspan="2" >XNAT as data source, ITK as preprocessor | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Advanced learning strategies | ||
</td> | ||
<td colspan="2" >Semi-supervised, active learning | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>High performance preprocessors | ||
</td> | ||
<td colspan="2" >Smart caching, multi-process | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Multi-node distributed training | ||
</td> | ||
<td colspan="2" > | ||
</td> | ||
<td> | ||
</td> | ||
</tr> | ||
</table> | ||
|
||
## Links | ||
- Website: _(coming soon)_ | ||
- API documentation: https://monai.readthedocs.io/en/latest/ | ||
- Code: https://github.com/Project-MONAI/MONAI | ||
- Project tracker: https://github.com/Project-MONAI/MONAI/projects | ||
- Issue tracker: https://github.com/Project-MONAI/MONAI/issues | ||
- Wiki: https://github.com/Project-MONAI/MONAI/wiki | ||
- Test status: https://gitlab.com/project-monai/MONAI/pipelines |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.