Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/dev' into releasing/1.1
Browse files Browse the repository at this point in the history
Signed-off-by: Wenqi Li <wenqil@nvidia.com>
  • Loading branch information
wyli committed Dec 19, 2022
2 parents d865264 + b159ce7 commit a2ec375
Show file tree
Hide file tree
Showing 22 changed files with 343 additions and 89 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# daily tests for clara mmar models
name: cron-mmar
# daily tests for ngc bundles
name: cron-ngc-bundle

on:
# schedule:
# - cron: "0 2 * * *" # at 02:00 UTC
schedule:
- cron: "0 2 * * *" # at 02:00 UTC
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

concurrency:
# automatically cancel the previously triggered workflows when there's a newer version
group: mmar-tests-${{ github.event.pull_request.number || github.ref }}
group: bundle-tests-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -33,12 +33,12 @@ jobs:
key: ${{ runner.os }}-pip-${{ steps.pip-cache.outputs.datew }}
- name: Install dependencies
run: |
rm -rf /github/home/.cache/torch/hub/mmars/
rm -rf /github/home/.cache/torch/hub/bundle/
python -m pip install --upgrade pip wheel
python -m pip install -r requirements-dev.txt
- name: Loading MMARs
- name: Loading Bundles
run: |
# clean up temporary files
$(pwd)/runtests.sh --build --clean
# run tests
python -m tests.ngc_mmar_loading
python -m tests.ngc_bundle_download
2 changes: 1 addition & 1 deletion .github/workflows/pythonapp-gpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
pytorch: "-h" # we explicitly set pytorch to -h to avoid pip install error
base: "nvcr.io/nvidia/pytorch:22.09-py3"
- environment: PT113+CUDA116
pytorch: "torch==1.13.0 torchvision==0.14.0"
pytorch: "torch==1.13.1 torchvision==0.14.1"
base: "nvcr.io/nvidia/cuda:11.6.1-devel-ubuntu18.04"
container:
image: ${{ matrix.base }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pythonapp-min.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ jobs:
- if: runner.os == 'windows'
name: Install torch cpu from pytorch.org (Windows only)
run: |
python -m pip install torch==1.13+cpu -f https://download.pytorch.org/whl/torch_stable.html
python -m pip install torch==1.13.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
- name: Install the dependencies
run: |
# min. requirements
python -m pip install torch==1.13
python -m pip install torch==1.13.1
python -m pip install -r requirements-min.txt
python -m pip list
BUILD_MONAI=0 python setup.py develop # no compile of extensions
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pythonapp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,14 @@ jobs:
- if: runner.os == 'windows'
name: Install torch cpu from pytorch.org (Windows only)
run: |
python -m pip install torch==1.13.0+cpu torchvision==0.14.0+cpu -f https://download.pytorch.org/whl/torch_stable.html
python -m pip install torch==1.13.1+cpu torchvision==0.14.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
- if: runner.os == 'Linux'
name: Install itk pre-release (Linux only)
run: |
python -m pip install --pre -U itk
- name: Install the dependencies
run: |
python -m pip install torch==1.13.0 torchvision==0.14.0
python -m pip install torch==1.13.1 torchvision==0.14.1
cat "requirements-dev.txt"
python -m pip install -r requirements-dev.txt
python -m pip list
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/setupapp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:
- name: Install the dependencies
run: |
python -m pip install --upgrade pip wheel
python -m pip install torch==1.13.0 torchvision==0.14.0
python -m pip install torch==1.13.1 torchvision==0.14.1
python -m pip install -r requirements-dev.txt
- name: Run quick tests CPU ubuntu
run: |
Expand Down
2 changes: 0 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ preferred-citation:
family-names: "Xu"
- given-names: "Ali"
family-names: "Hatamizadeh"
- given-names: "Andriy"
family-names: "Myronenko"
- given-names: "Wentao"
family-names: "Zhu"
- given-names: "Yun"
Expand Down
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@

**M**edical **O**pen **N**etwork for **AI**

![Supported Python versions](https://raw.githubusercontent.com/Project-MONAI/MONAI/dev/docs/images/python.svg)
[![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](https://opensource.org/licenses/Apache-2.0)
[![CI Build](https://github.com/Project-MONAI/MONAI/workflows/build/badge.svg?branch=dev)](https://github.com/Project-MONAI/MONAI/commits/dev)
[![Documentation Status](https://readthedocs.org/projects/monai/badge/?version=latest)](https://docs.monai.io/en/latest/?badge=latest)
[![codecov](https://codecov.io/gh/Project-MONAI/MONAI/branch/dev/graph/badge.svg?token=6FTC7U1JJ4)](https://codecov.io/gh/Project-MONAI/MONAI)
[![PyPI version](https://badge.fury.io/py/monai.svg)](https://badge.fury.io/py/monai)
[![conda](https://img.shields.io/conda/vn/conda-forge/monai)](https://anaconda.org/conda-forge/monai)
[![docker](https://img.shields.io/badge/docker-pull-green.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/projectmonai/monai)
[![conda](https://img.shields.io/conda/vn/conda-forge/monai?color=green)](https://anaconda.org/conda-forge/monai)

[![premerge](https://github.com/Project-MONAI/MONAI/actions/workflows/pythonapp.yml/badge.svg?branch=dev)](https://github.com/Project-MONAI/MONAI/actions/workflows/pythonapp.yml)
[![postmerge](https://img.shields.io/github/checks-status/project-monai/monai/dev?label=postmerge)](https://github.com/Project-MONAI/MONAI/actions?query=branch%3Adev)
[![docker](https://github.com/Project-MONAI/MONAI/actions/workflows/docker.yml/badge.svg?branch=dev)](https://github.com/Project-MONAI/MONAI/actions/workflows/docker.yml)
[![Documentation Status](https://readthedocs.org/projects/monai/badge/?version=latest)](https://docs.monai.io/en/latest/)
[![codecov](https://codecov.io/gh/Project-MONAI/MONAI/branch/dev/graph/badge.svg?token=6FTC7U1JJ4)](https://codecov.io/gh/Project-MONAI/MONAI)

MONAI is a [PyTorch](https://pytorch.org/)-based, [open-source](https://github.com/Project-MONAI/MONAI/blob/dev/LICENSE) framework for deep learning in healthcare imaging, part of [PyTorch Ecosystem](https://pytorch.org/ecosystem/).
Its ambitions are:
Expand Down
Binary file added docs/images/exp_mgmt.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/hovernet_diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/images/python.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/source/whatsnew.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ What's New
.. toctree::
:maxdepth: 1

whatsnew_1_1.md
whatsnew_1_0.md
whatsnew_0_9.md
whatsnew_0_8.md
Expand Down
2 changes: 1 addition & 1 deletion docs/source/whatsnew_1_0.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# What's new in 1.0 🎉🎉
# What's new in 1.0

- Model Zoo
- Auto3DSeg
Expand Down
75 changes: 75 additions & 0 deletions docs/source/whatsnew_1_1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# What's new in 1.1 🎉🎉

- Digital pathology workflows
- Experiment management for MONAI bundle
- Auto3dSeg enhancements
- New models in MONAI Model Zoo
- State-of-the-art SurgToolLoc solution

## Digital pathology workflows

![hovernet](../images/hovernet_diagram.png)

Hover-Net is a model for simultaneous segmentation and classification of nuclei in multi-tissue histology images (Graham et al. Medical Image Analysis, 2019).
We have added support for this model in MONAI by implementing several new components, enhancing existing ones and providing pipelines and examples for training, validation and inference.

Along with the modules release, new digital pathology analysis tutorials are made available:

- [HoVerNet pipelines](https://github.com/Project-MONAI/tutorials/tree/main/pathology/hovernet) based on MONAI workflows for training, validation and inference
- [HoVerNet tutorial](https://github.com/Project-MONAI/tutorials/blob/main/pathology/hovernet/hovernet_torch.ipynb) for training, validation and inference
- NuClick (Interactive Annotation for Pathology) tutorials for [training](https://github.com/Project-MONAI/tutorials/blob/main/pathology/nuclick/nuclick_training_notebook.ipynb)
and [inference](https://github.com/Project-MONAI/tutorials/blob/main/pathology/nuclick/nuclick_infer.ipynb)
- Nuclei classification tutorials for [training](https://github.com/Project-MONAI/tutorials/blob/main/pathology/nuclick/nuclei_classification_training_notebook.ipynb)
and [inference](https://github.com/Project-MONAI/tutorials/blob/main/pathology/nuclick/nuclei_classification_infer.ipynb)

## Experiment management for MONAI bundle

![exp_mgmt](../images/exp_mgmt.png)

In this release, experiment management features are integrated with MONAI bundle.
It provides essential APIs for managing the end-to-end model bundle lifecycle.
Users can start tracking experiments by, for example, appending `--tracking "mlflow"` to the training or inference commands to enable the MLFlow-based management.
By default, MLFlow will track the executed bundle config, model quality measurements, and source code versioning.
For more details, please refer to the [tutorial](https://github.com/Project-MONAI/tutorials/blob/main/experiment_management/bundle_integrate_mlflow.ipynb).

## Auto3dSeg enhancements

Multiple improvements have been added in `Auto3DSeg` both in terms of
usability and performance.
- Multi-modality support is added and applied for
automated segmentation of the HECKTOR22 challenge dataset, which includes input 3D
CT and PET images of various resolutions and sizes. A tutorial example of
running Auto3DSeg on the HECKTOR22 challenge dataset is available in MONAI
Tutorials. The tutorial is based on [the HECKTOR22 challenge 1st place solution](https://arxiv.org/abs/2209.10809).
- A new improved version of `Segresnet` Algo is now available in `AutoRunner`.
In this version, data caching is more efficient and the preprocessing transforms are more flexible.
The workflow progresses including the timings of steps are written to console output as well as a YAML file.
- Automatic customization and optimization of the model training configuration
can be achieved according to the GPU devices used. The feature
focuses on determining parameters including batch size of model
training and sliding-window inference, allocated devices for
data in sliding-window inference. For more details about how to enable it, please see [the tutorials](https://github.com/Project-MONAI/tutorials/tree/main/auto3dseg).

## New models in MONAI Model Zoo

New pretrained models are being created and released [in the Model Zoo](https://monai.io/model-zoo.html).
Notably,

- The `mednist_reg` model demonstrates how to build image registration workflows in MONAI bundle
format. The model uses a ResNet and spatial transformer for hand X-ray image registration based on
[the registration_mednist tutorial](https://github.com/Project-MONAI/tutorials/blob/main/2d_registration/registration_mednist.ipynb),
- `pathology_nuclei_segmentation_and_classification`,
`pathology_nuclick_annotation`, and `pathology_nuclei_classification` bundles
are built for [digital pathology image
analysis](https://github.com/Project-MONAI/model-zoo/tree/dev/models/pathology_nuclei_segmentation_classification).

For more details about how to use the models, please see [the tutorials](https://github.com/Project-MONAI/tutorials/tree/main/model_zoo).

## State-of-the-art SurgToolLoc solution

[SurgToolLoc](https://surgtoolloc.grand-challenge.org/Home/) is a part of the
[EndoVis](https://endovis.grand-challenge.org/) challenge at [MICCAI 2022](https://conferences.miccai.org/2022/en/).
The challenge focuses on endoscopic video analysis and is divided into (1) fully supervised tool classification
and (2) weakly supervised tool classification/localization.
Team NVIDIA won prizes by finishing [third](https://surgtoolloc.grand-challenge.org/results/) in both categories.
The core components of the solutions [are released in MONAI](https://github.com/Project-MONAI/tutorials/tree/main/competitions/MICCAI/surgtoolloc).
2 changes: 1 addition & 1 deletion monai/apps/auto3dseg/bundle_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
from monai.utils import ensure_tuple

logger = get_logger(module_name=__name__)
ALGO_HASH = os.environ.get("MONAI_ALGO_HASH", "c812e5f")
ALGO_HASH = os.environ.get("MONAI_ALGO_HASH", "1dde7a1")

__all__ = ["BundleAlgo", "BundleGen"]

Expand Down
Loading

0 comments on commit a2ec375

Please sign in to comment.