Skip to content

Commit

Permalink
Release 0.5 (#1001)
Browse files Browse the repository at this point in the history
* Prepare for 0.5 release

Signed-off-by: Sachidanand Alle <sachidanand.alle@gmail.com>

* temp decrease for code cov threshold

Signed-off-by: Sachidanand Alle <sachidanand.alle@gmail.com>

* fix target url

Signed-off-by: Sachidanand Alle <sachidanand.alle@gmail.com>

* add deprecation for tta

Signed-off-by: Sachidanand Alle <sachidanand.alle@gmail.com>

* add links

Signed-off-by: Sachidanand Alle <sachidanand.alle@gmail.com>

* fix pathology training

Signed-off-by: Sachidanand Alle <sachidanand.alle@gmail.com>

* fix readme

Signed-off-by: Sachidanand Alle <sachidanand.alle@gmail.com>

Signed-off-by: Sachidanand Alle <sachidanand.alle@gmail.com>
  • Loading branch information
SachidanandAlle authored Sep 16, 2022
1 parent d5a8805 commit df9de94
Show file tree
Hide file tree
Showing 14 changed files with 141 additions and 144 deletions.
2 changes: 1 addition & 1 deletion .github/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ coverage:
status:
project:
default:
target: 60%
target: 45%
threshold: 10
base: parent
if_no_uploads: error
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# to use different version of MONAI pass `--build-arg MONAI_IMAGE=...`
# to exclude ORTHANC pass `--build-arg ORTHANC=false`

ARG MONAI_IMAGE=projectmonai/monai:1.0.0rc3
ARG MONAI_IMAGE=projectmonai/monai:1.0.0
ARG ORTHANC=false
ARG BUILD_OHIF=true

Expand Down
71 changes: 41 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,12 @@ with [MONAI](https://github.com/Project-MONAI). Refer to full [MONAI Label docum

## Sample Apps in MONAILabel

![DEMO](https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/sampleApps_index.jpeg)
![image](https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/sampleApps_index.jpeg)

Demo on labeling tasks with visualization tools 3D Slicer, OHIF, and QuPath
[MONAI Label](https://youtu.be/m2rYorVwXk4) | [Demo Videos](https://www.youtube.com/c/ProjectMONAI)

[MONAI Label](https://youtu.be/m2rYorVwXk4) | [Demo](https://youtu.be/o8HipCgSZIw?t=1319)


![DEMO](https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/demo.png)
MONAI Label with visualization tools 3D Slicer, OHIF, DSA, QuPath, CVAT etc..
![image](https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/demo.png)
<table>
<tr>
<td><img src="https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/ohif.png" alt="drawing" width="150"/></td>
Expand All @@ -58,6 +56,19 @@ Demo on labeling tasks with visualization tools 3D Slicer, OHIF, and QuPath

> _The codebase is currently under active development._
- Framework for developing and deploying MONAI Label Apps to train and infer AI models
- Compositional & portable APIs for ease of integration in existing workflows
- Customizable labeling app design for varying user expertise
- Annotation support via [3DSlicer](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/slicer)
& [OHIF](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/ohif) for radiology
- Annotation support via [QuPath](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/qupath)
, [Digital Slide Archive](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/dsa)
& [CVAT](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/cvat) for
pathology
- Annotation support via [CVAT](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/cvat) for Endoscopy
- PACS connectivity via [DICOMWeb](https://www.dicomstandard.org/using/dicomweb)
- Automated Active Learning workflow for endoscopy using [CVAT](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/cvat)

**Radiology App**
This app has example models to do both interactive and automated segmentation over radiology (3D)
images. Including auto segmentation with the latest deep learning models (e.g., UNet, UNETR) for multiple abdominal
Expand All @@ -73,28 +84,16 @@ Demo on labeling tasks with visualization tools 3D Slicer, OHIF, and QuPath
anatomies. The specification for MONAILabel integration of the Bundle app links archived Model-Zoo for customized labeling
(e.g., the third-party transformer model for labeling renal cortex, medulla, and pelvicalyceal system. Interactive tools such as DeepEdits).

- Framework for developing and deploying MONAI Label Apps to train and infer AI models
- Compositional & portable APIs for ease of integration in existing workflows
- Customizable labeling app design for varying user expertise
- Annotation support via [3DSlicer](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/slicer)
& [OHIF](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/ohif) for radiology
- Annotation support via [QuPath](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/qupath)
, [Digital Slide Archive](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/dsa)
& [CVAT](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/cvat) for
pathology
- Annotation support via [CVAT](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/cvat) for Endoscopy
- PACS connectivity via [DICOMWeb](https://www.dicomstandard.org/using/dicomweb)
**Endoscopy App**
The Bundle app enables users to use interactive, automated segmentation and classification models over 2D images for endoscopy usecase.
Combined with CVAT, it will demonstrate the fully automated Active Learning workflow to train + fine-tune a model.

## Installation

Start using MONAI Label with just three steps:

![DEMO](https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/install_steps.jpeg)


![image](https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/install_steps.jpeg)

MONAI Label supports following OS with **GPU/CUDA** enabled.

- Ubuntu: Please see the [installation guide](https://docs.monai.io/projects/label/en/latest/installation.html).
- [Windows](https://docs.monai.io/projects/label/en/latest/installation.html#windows)

Expand All @@ -116,6 +115,7 @@ git clone https://github.com/Project-MONAI/MONAILabel
pip install -r MONAILabel/requirements.txt
export PATH=$PATH:`pwd`/MONAILabel/monailabel/scripts
```
If you are using DICOM-Web + OHIF then you have to build OHIF package separate. Please refer [here](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/ohif#development-setup).

#### [Weekly Release](https://pypi.org/project/monailabel-weekly/)

Expand Down Expand Up @@ -174,7 +174,6 @@ algorithms, develpoment and integration.
MONAI Label is most currently tested and supported with stable release of 3D Slicer every version. Preview version of 3D Slicer is not fully tested and supported.

To install stable released version of 3D Slicer, see [3D Slicer installation](https://download.slicer.org/).

Currently, Windows and Linux version are supported.

### OHIF (Web-based)
Expand All @@ -183,19 +182,24 @@ The Open Health Imaging Foundation (OHIF) Viewer is an open source, web-based, m
It aims to provide a core framework for building complex imaging applications.

At this point OHIF can be used to annotate the data in the DICOM server via the MONAI Label server.

To use OHIF web-based application, refer to [extensible web imaging platform](https://ohif.org/)

### QuPath

Quantitative Pathology & Bioimage Analysis (QuPath)

QuPath is an open, powerful, flexible, extensible software platform for bioimage analysis.
Quantitative Pathology & Bioimage Analysis (QuPath) is an open, powerful, flexible, extensible software platform for bioimage analysis.

To install stable released version of QuPath, see [QuPath installation](https://qupath.github.io/).

Currently, Windows and Linux version are supported. Detailed documentation can be found [QuPath Doc](https://qupath.readthedocs.io/en/stable/).


### CVAT

CVAT is an interactive video and image annotation tool for computer vision.

To install stable released version of CVAT, see [CVAT installation](https://github.com/opencv/cvat).
Currently, Windows and Linux version are supported. Detailed documentation can be found [CVAT Doc](https://opencv.github.io/cvat/docs/).


## Plugins

### [3D Slicer](https://download.slicer.org/) (radiology)
Expand Down Expand Up @@ -258,9 +262,14 @@ Install [CVAT](https://openvinotoolkit.github.io/cvat/docs/getting_started) and
enable [Semi-Automatic and Automatic Annotation](https://openvinotoolkit.github.io/cvat/docs/administration/advanced/installation_automatic_annotation/)
.
Refer [CVAT Instructions](https://github.com/Project-MONAI/MONAILabel/tree/main/plugins/cvat) for deploying available MONAILabel
pathology models into CVAT.
pathology/endoscopy models into CVAT.

![image](https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/cvat_detector.jpeg)
<table>
<tr>
<td><img src="https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/cvat_detector.jpeg" width="300"/></td>
<td><img src="https://raw.githubusercontent.com/Project-MONAI/MONAILabel/main/docs/images/cvat_active_learning.jpeg" width="300"/></td>
</tr>
</table>

## Cite

Expand Down Expand Up @@ -319,3 +328,5 @@ on [MONAI Label's GitHub Discussions tab](https://github.com/Project-MONAI/MONAI
- PyPI package: https://pypi.org/project/monailabel/
- Weekly previews: https://pypi.org/project/monailabel-weekly/
- Docker Hub: https://hub.docker.com/r/projectmonai/monailabel
- Client API: https://www.youtube.com/watch?v=mPMYJyzSmyo
- Demo Videos: https://www.youtube.com/c/ProjectMONAI
2 changes: 1 addition & 1 deletion docs/source/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ and supported visualization tools with latest release of MONAI Label. Weekly pre

Current Milestone Release of MONAI Label:

* `0.4.2 <https://pypi.org/project/monailabel/>`_
* `0.5.0 <https://pypi.org/project/monailabel/>`_

MONAI Label Supported Stable Visualization Tools:

Expand Down
4 changes: 2 additions & 2 deletions docs/source/modules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ discretization.
def post_transforms(self, data=None):
return [
Activationsd(keys="pred", sigmoid=True),
AsDiscreted(keys="pred", threshold_values=True, logit_thresh=0.5),
AsDiscreted(keys="pred", threshold=0.5),
ToNumpyd(keys="pred"),
]
Expand Down Expand Up @@ -142,7 +142,7 @@ in this example they follow the default behavior in the base class.
def train_post_transforms(self, context: Context):
return Compose([
Activationsd(keys="pred", sigmoid=True),
AsDiscreted(keys="pred", threshold_values=True, logit_thresh=0.5),
AsDiscreted(keys="pred", threshold=0.5),
])
def val_pre_transforms(self, context: Context):
Expand Down
20 changes: 20 additions & 0 deletions docs/source/whatsnew.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,26 @@
What's New
==========

0.5.0
=====
- Endoscopy Sample App

- Tool Tracking segmentation model
- InBody vs OutBody (DeID) classification model
- DeepEdit interaction model for annotating tool
- CVAT Integration to support automated workflow to run Active Learning Iterations
- Improving performance for Radiology App

- Support cache for pre-transforms in case repeated inference for interaction models
- Support cache for DICOM Web API responses
- Fix DICOM Proxy for wado/qido

- Multi Stage `vertebra <https://github.com/Project-MONAI/MONAILabel/tree/main/sample-apps/radiology#multistage-vertebra-segmentation>`_ segmentation
- Improvements for Epistemic based active learning strategy
- Support for MONAI `1.0.0 <https://github.com/Project-MONAI/MONAI/releases/tag/1.0.0>`_



0.4.2
=====
- MONAI Bundle App - Pull `compatible <https://github.com/Project-MONAI/MONAILabel/tree/main/sample-apps/monaibundle>`_ bundles from `MONAI Zoo <https://github.com/Project-MONAI/model-zoo>`_
Expand Down
2 changes: 2 additions & 0 deletions monailabel/tasks/scoring/epistemic.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,15 @@
import torch
from monai.inferers import sliding_window_inference
from monai.transforms import Compose
from monai.utils import deprecated

from monailabel.interfaces.datastore import Datastore
from monailabel.interfaces.tasks.scoring import ScoringMethod

logger = logging.getLogger(__name__)


@deprecated(since="0.5.0", msg_suffix="please use Epistemic v2 based strategy instead")
class EpistemicScoring(ScoringMethod):
"""
First version of Epistemic computation used as active learning strategy
Expand Down
4 changes: 3 additions & 1 deletion monailabel/tasks/scoring/tta.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
from monai.transforms.inverse_batch_transform import BatchInverseTransform
from monai.transforms.transform import Randomizable
from monai.transforms.utils import allow_missing_keys_mode
from monai.utils import deprecated
from monai.utils.enums import CommonKeys, InverseKeys
from tqdm import tqdm

Expand All @@ -48,6 +49,7 @@
logger = logging.getLogger(__name__)


@deprecated(since="0.5.0", msg_suffix="please use Epistemic based strategy instead")
class TTAScoring(ScoringMethod):
"""
First version of test time augmentation active learning
Expand Down Expand Up @@ -236,7 +238,7 @@ class TestTimeAugmentation:
.. code-block:: python
transform = RandAffined(keys, ...)
post_trans = Compose([Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
post_trans = Compose([Activations(sigmoid=True), AsDiscrete()])
tt_aug = TestTimeAugmentation(
transform, batch_size=5, num_workers=0, inferrer_fn=lambda x: post_trans(model(x)), device=device
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# limitations under the License.

torch>=1.7
monai[nibabel, skimage, pillow, tensorboard, gdown, ignite, torchvision, itk, tqdm, lmdb, psutil, openslide, fire]>=1.0.0rc3
monai[nibabel, skimage, pillow, tensorboard, gdown, ignite, torchvision, itk, tqdm, lmdb, psutil, openslide, fire]>=1.0.0
uvicorn==0.17.6
pydantic==1.9.1
python-dotenv==0.20.0
Expand Down
Loading

0 comments on commit df9de94

Please sign in to comment.