Skip to content

Commit

Permalink
176 revise docs (#177)
Browse files Browse the repository at this point in the history
* [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
wyli and Nic-Ma authored Mar 16, 2020
1 parent c40f739 commit 216298c
Show file tree
Hide file tree
Showing 40 changed files with 1,172 additions and 520 deletions.
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

0 comments on commit 216298c

Please sign in to comment.