Creating a Simple Image Processing App#

This tutorial shows how a simple image processing application can be created with MONAI Deploy App SDK.

Setup#

# Create a virtual environment with Python 3.10.
# Skip if you are already in a virtual environment.
conda create -n monai python=3.10 pytorch torchvision jupyterlab cudatoolkit=12.2 -c pytorch -c conda-forge
conda activate monai

# Launch JupyterLab if you want to work on Jupyter Notebook
jupyter-lab

Executing from Jupyter Notebook#

Download 01_simple_app.ipynb

Executing from Shell#

# Clone the github project (the latest version of the main branch only)
git clone --branch main --depth 1 https://github.com/Project-MONAI/monai-deploy-app-sdk.git

cd monai-deploy-app-sdk

# Install monai-deploy-app-sdk package
pip install monai-deploy-app-sdk

# Install necessary packages from the app. Can simply run `pip install -r examples/apps/simple_imaging_app/requirements.txt`
pip install scikit-image, setuptools, Pillow, matplotlib

# See the input file exists in the default `input`` folder in the current working directory
ls examples/apps/simple_imaging_app/input/

# Set the environment variable for the input, with relative path in this example.
export HOLOSCAN_INPUT_PATH="./examples/apps/simple_imaging_app/input"

# Env var can also be used to direct the output instead of using the default folder as in the following steps
export HOLOSCAN_OUTPUT_PATH="./output_simple_imaging"

# Local execution of the app with output file in the `output` folder in the current working directory
python examples/apps/simple_imaging_app/app.py

# Check the output file
ls output

# Package app (creating MAP docker image) using `-l DEBUG` option to see progress. Note the container image name is postfixed with platform info.
# This assumes that nvidia docker is installed in the local machine.
# Please see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker to install nvidia-docker2.

monai-deploy package examples/apps/simple_imaging_app -c examples/apps/simple_imaging_app/app.yaml -t simple_app:latest --platform x86_64 -l DEBUG

# Show the application and package manifest files of the MONAI Application Package

docker images | grep simple_app
docker run --rm simple_app-x64-workstation-dgpu-linux-amd64:latest show

# Run the MAP container image with MONAI Deploy MAP Runner, with a cleaned output folder
rm -rf output
monai-deploy run simple_app-x64-workstation-dgpu-linux-amd64:latest -i $HOLOSCAN_INPUT_PATH -o output

# Check the output file
ls output