Installation

Prerequisites

MONAI Label supports both Ubuntu and Windows OS with GPU/CUDA enabled.

Make sure you have python 3.7/3.8/3.9 version environment with PyTorch and CUDA installed. MONAI Label features on other python version are not verified.

  • Install Python

  • Install the following Python libraries

python -m pip install --upgrade pip setuptools wheel

# Install latest stable version for pytorch
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

# Check if cuda enabled
python -c "import torch; print(torch.cuda.is_available())"

Install From PyPI

Milestone release

To install the current milestone release:

pip install monailabel

Weekly preview release

To install the weekly preview release:

pip install monailabel-weekly

The weekly build is released to PyPI every Sunday with a pre-release build number dev[%y%U].

From GitHub

To install latest from github main branch

pip install git+https://github.com/Project-MONAI/MONAILabel#egg=monailabel

Note

If you have installed the PyPI release version using pip install monailabel, please run pip uninstall monailabel before using the commands from this section. Because pip by default prefers the milestone release.

The milestone versions are currently planned and released every few months. As the codebase is under active development, you may want to install MONAI from GitHub for the latest features

From DockerHub

To install latest from DockerHub:

docker run -it --rm --gpus all --ipc=host --net=host -v ~:/workspace/ projectmonai/monailabel:latest bash

MONAI Label CLI

Simple monailabel command will help user to download sample apps, datasets and run server.

monailabel --help

Downloading Sample Apps or Datasets

You can download sample apps and datasets from monailabel CLI.

# Download Sample Apps
monailabel apps # List sample apps
monailabel apps --download --name radiology --output apps

# Download MSD Datasets
monailabel datasets # List sample datasets
monailabel datasets --download --name Task09_Spleen --output datasets

Starting Server

You can start server using monailabel CLI

# Run Deepedit Model.
# Options can be (deepedit|deepgrow|segmentation|segmentation_spleen|all) in case of radiology app.
# You can also pass comma seperated models like --conf models deepedit,segmentation

monailabel start_server --app apps/radiology --studies datasets/Task09_Spleen/imagesTr --conf models deepedit

Note

Once you start the MONAI Label Server, by default it will be up and serving at http://127.0.0.1:8000/. Open the serving URL in browser. It will provide you the list of Rest APIs available.

Deployment

MONAI Label Server uses Uvicorn which is a lightning-fast ASGI server implementation. However user can deploy the application in any server that supports ASGI specification

There are multiple choices available for Uvicorn to run as Development Server vs Standalone Server vs Production.

Deploying MONAI Label server for production use is out of project scope.

Run MONAI Label server in ssl mode:

You can run MONAILabel server in https mode. .. code-block:

# Create self-signed ssl cert
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout uvicorn-selfsigned.key -out uvicorn-selfsigned.crt

# Start server in ssl mode
monailabel start_server --app apps/radiology --studies datasets/Task09_Spleen/imagesTr --conf models deepedit --ssl_keyfile uvicorn-selfsigned.key --ssl_certfile uvicorn-selfsigned.crt

However for basic production deployment, you might need to run Uvicorn independently. In such cases, you can following these simple steps.

# dryrun the MONAI Label CLI for pre-init and dump the env variables to .env or env.bat
monailabel start_server --app apps/radiology --studies datasets/Task09_Spleen/imagesTr --host 0.0.0.0 --port 8000 --dryrun

# Linux/Ubuntu
source .env
uvicorn monailabel.app:app \
  --host 0.0.0.0 \
  --port 8000 \
  --log-config apps/radiology/logs/logging.json \
  --no-access-log


# Windows
call env.bat
uvicorn monailabel.app:app ^
  --host 0.0.0.0 ^
  --port 8000 ^
  --log-config apps\radiology\logs\logging.json ^
  --no-access-log

For more options about Uvicorn (concurrency, SSL etc..) refer: https://www.uvicorn.org/#command-line-options

3D Slicer Plugin

Download Preview Release from https://download.slicer.org/ and install MONAI Label plugin from Slicer Extension Manager.

Refer 3D Slicer plugin for other options to install and run MONAI Label plugin in 3D Slicer.

Note

To avoid accidentally using an older Slicer version, you may want to uninstall any previously installed 3D Slicer package.

OHIF Plugin

MONAI Label comes with pre-built plugin for OHIF Viewer. To use OHIF Viewer, you need to provide DICOMWeb instead of FileSystem as studies when you start the server.

monailabel start_server --app apps/radiology --studies http://127.0.0.1:8042/dicom-web --conf models deepedit

If you have authentication set for dicom-web then you can pass the credentials using environment variables while running the server.

export MONAI_LABEL_DICOMWEB_USERNAME=xyz
export MONAI_LABEL_DICOMWEB_PASSWORD=abc
monailabel start_server --app apps/radiology --studies http://127.0.0.1:8042/dicom-web --conf models deepedit

Note

Please install Orthanc before using OHIF Viewer.

For Ubuntu 20.x, Orthanc can be installed as apt-get install orthanc orthanc-dicomweb. However, you have to upgrade to latest version by following steps mentioned here

You can use PlastiMatch to convert NIFTI to DICOM

OHIF Viewer will be accessible at http://127.0.0.1:8000/ohif/

QuPath

For pathology usecase, you can install QuPath and basic monailabel extension in QuPath. You can download sample whole slide images from https://portal.gdc.cancer.gov/repository

# start server using pathology over downloaded whole slide images
monailabel start_server --app apps/pathology --studies wsi_images

Refer QuPath Plugin for installing and running MONAILabel plugin in QuPath.

Digital Slide Archive (DSA)

If you have DSA setup running, you can use the same for annotating Pathology images using MONAILabel.

# start server using pathology connecting to DSA server
monailabel start_server --app apps/pathology --studies http://0.0.0.0:8080/api/v1

Refer DSA Plugin for running a sample pathology use-case in MONAILabel using DSA.