MONAI Segmentation Inference Operator#
Authors: Holoscan SDK Team (NVIDIA)
Supported platforms: x86_64, aarch64
Language: Python
Last modified: June 2, 2025
Latest version: 1.1.0
Minimum Holoscan SDK version: 1.0.3
Tested Holoscan SDK versions: 2.2.0, 3.2.0
Contribution metric: Level 2 - Trusted
This segmentation operator uses MONAI transforms and Sliding Window Inference to segment medical images.
Overview#
The MonaiSegInferenceOperator
performs pre-transforms on input images, runs segmentation inference using a specified model, and applies post-transforms. The segmentation result is returned as an in-memory image object and can optionally be saved to disk.
Requirements#
- Holoscan SDK Python package
- MONAI
- torch
Example Usage#
from pathlib import Path
import torch
from monai.transforms import Compose, LoadImage, ScaleIntensity, EnsureChannelFirst
from holoscan.core import Fragment
from operators.medical_imaging.monai_segmentation_inference_operator import MonaiSegInferenceOperator
from operators.medical_imaging.core import AppContext, IOMapping, IOType, Image
# Initialize the fragment
fragment = Fragment()
# Create app context
app_context = AppContext({})
# Define transforms
pre_transforms = Compose([
LoadImage(image_only=True),
EnsureChannelFirst(),
ScaleIntensity(),
])
post_transforms = Compose([
# Add your post-processing transforms here
])
# Initialize the segmentation operator
seg_op = MonaiSegInferenceOperator(
fragment,
roi_size=(96, 96, 96), # Example ROI size for 3D images
pre_transforms=pre_transforms,
post_transforms=post_transforms,
app_context=app_context,
model_name="unet", # Example model name
overlap=0.25,
sw_batch_size=4,
model_path=Path("/path/to/your/model.pt") # Replace with your model path
)