Skip to content

Latest commit

 

History

History
 
 

auto3dseg

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Auto3DSeg

Introduction

Auto3DSeg is a comprehensive solution for large-scale 3D medical image segmentation. It leverages the latest advances in MONAI and GPUs to efficiently develop and deploy algorithms with state-of-the-art performance for beginners or advanced researchers in the field. 3D medical image segmentation is an important task with great potential for clinical understanding, disease diagnosis, and surgical planning. According to the statistics of the recent MICCAI conferences, more than 60% of the papers are applications of segmentation algorithms, and more than half of them use 3D datasets. After working in this field for many years, we have released the state-of-the-art segmentation solution Auto3DSeg, which requires minimal user input (e.g., data root and list).

Auto3DSeg first analyzes the global information such as intensity, data size, and data spacing of the dataset, and then generates algorithm folders in MONAI bundle format based on data statistics and algorithm templates. Next, all algorithms initiate model training to obtain checkpoints with the best validation accuracy. Finally, the ensemble module selects the algorithms via ranking trained checkpoints and creates ensemble predictions. Meanwhile, the solution offers different levels of user experience for beginners and advanced researchers. It has been tested on large-scale 3D medical imaging datasets in several different modalities.

Major features
  • Unified Framework

    Auto3DSeg is a self-contained solution for 3D medical image segmentation with minimal user input.

  • Flexible Modular Design

    Auto3DSeg components can be used independently to meet different needs of users.

  • Support of Bring-Your-Own-Algorithm (BYOA)

    We have introduced an efficient way to introduce users' own algorithms into the Auto3DSeg framework.

  • High Accuracy and Efficiency

    Auto3DSeg achieves state-of-the-art performance in most applications of 3D medical image segmentation.

Auto3DSeg Leaderboard Performance

We have demonstrated preliminary results of public datasets are described in the tasks folder.

A Two-Minute "Hello-World" Example

We provide a two-minute example for users to get initial impressions of Auto3DSeg. The example covers the entire pipeline from start to finish, and can be done in two minutes using a single GPU (GPU RAM >= 8GB). Each fold of cross validation consumes about 1.2 GB of disk space, and in this example, about 2.4 GB in total. All the results will be written to user's working directory.

A "Real-World" Example

To further demonstrate the capabilities of Auto3DSeg, here is the detailed performance of the algorithm in Auto3DSeg, which won 2nd place in the MICCAI 2022 challenge** INSTANCE22: The 2022 Intracranial Hemorrhage Segmentation Challenge on Non-Contrast Head CT (NCCT)**

Reference Python APIs for Auto3DSeg

Auto3DSeg offers users different levels of APIs to run pipelines that suit their needs.

1. Run with Minimal Input using AutoRunner

The user needs to provide a data list (".json" file) for the new task and data root. A typical data list is as this example. A sample datalist for an existing MSD formatted dataset can be created using this notebook. After creating the data list, the user can create a simple "task.yaml" file (shown below) as the minimum input for Auto3DSeg.

modality: CT
datalist: "./task.json"
dataroot: "/workspace/data/task"

User needs to define the modality of data. Currently Auto3DSeg supports both CT and MRI (single- or multi-modality MRI). Then user can run the pipeline further from start to finish using the following simple bash command with the AutoRunner class.

python -m monai.apps.auto3dseg AutoRunner run --input='./task.yaml'

An example with detailed description is discussed here. And we demonstrate the entire pipeline with all necessary components in this example notebook using the AutoRunner class.

2. Run with Module APIs

Auto3DSeg offers the one-stop AutoRunner API to execute the pipeline, as well as the APIs to access the underlying components built to support the AutoRunner. In this notebook, AutoRunner is broken down by the step-by-step and we will introduce the API calls in Python and CLI commands. Particularly, we will map the AutoRunner commands and configurations to each of the Auto3DSeg module APIs.

Demystifying Auto3DSeg Components

Each module of Auto3DSeg in different steps can be individually used for different purposes. And functions/methods in the components can be customized by users.

GPU utilization optimization

Given the variety of GPU devices users have, we provide an automated way to optimize the GPU utilization (e.g., memory usage) of algorithms in Auto3DSeg. During algorithm generation, users can enable the optimization option. Auto3DSeg can then further automatically tune the hyper-parameters to fully utilize the available GPU capacity. Concrete examples can be found here.

FAQ

Please refer to FAQ for frequently asked questions.