Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

176 revise docs #177

Merged
merged 12 commits into from
Mar 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version: 2

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py
configuration: docs/source/conf.py

# Build documentation with MkDocs
#mkdocs:
Expand Down
9 changes: 9 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,15 @@ License information: all source code files should start with this paragraph:

```

### Building the documentation
To build documentation via Sphinx in`docs/` folder:
```bash
cd docs/
make html
```
The above commands build html documentation. Type `make help` for all supported formats,
type `make clean` to remove the current build files.

## Unit testing
MONAI tests are located under `tests/`.

Expand Down
257 changes: 26 additions & 231 deletions README.md
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
8 changes: 2 additions & 6 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = ../docs
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
help:
Expand All @@ -17,12 +17,8 @@ help:
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
sphinx-apidoc -f -o "$(SOURCEDIR)"/apidocs ../monai
rm -rf ../docs/*
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
mv ../docs/html/* ../docs/
rm -rf ../docs/html ../docs/doctrees

clean:
rm -rf ../docs/*
rm -rf build/
rm -rf source/apidocs
Binary file added docs/images/end_to_end_process.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/sliding_window.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 0 additions & 21 deletions docs/index.rst

This file was deleted.

Loading