Categories: Linux

MONAI Label 醫學影像標註工具安裝使用教學與範例

本篇介紹如何安裝與使用 MONAI Label 醫學影像標註工具,透過持續學習(continuously learning)協助使用者標註影像資料。

建立 Python 虛擬環境

安裝 Python 的 venc 套件之後,建立一個 MONAI 專用的 Python 虛擬環境:

# 安裝 Python 的 venv 套件
apt install python3.8-venv

# 建立 Python 虛擬環境 monaienv
python3 -m venv monaienv

載入 Python 虛擬環境 monaienv

# 載入 Python 虛擬環境 monaienv
source monaienv/bin/activate

安裝 MONAI Label

透過 pip 安裝 MONAI Label:

# 安裝 MONAI Label
pip install monailabel

查詢並列出 MONAI Label 中內建的範例 App:

# 列出可用的範例 App
monailabel apps
Available Sample Apps are: (/home/ubuntu/monaienv/monailabel/sample-apps)
----------------------------------------------------
Deepedit based Apps
----------------------------------------------------
  deepedit                      : /home/ubuntu/monaienv/monailabel/sample-apps/deepedit
  deepedit_multilabel           : /home/ubuntu/monaienv/monailabel/sample-apps/deepedit_multilabel

Deepgrow based Apps
----------------------------------------------------
  deepgrow                      : /home/ubuntu/monaienv/monailabel/sample-apps/deepgrow

Standard Segmentation Apps
----------------------------------------------------
  segmentation                  : /home/ubuntu/monaienv/monailabel/sample-apps/segmentation
  segmentation_left_atrium      : /home/ubuntu/monaienv/monailabel/sample-apps/segmentation_left_atrium
  segmentation_spleen           : /home/ubuntu/monaienv/monailabel/sample-apps/segmentation_spleen

下載 deepedit 範例 App 至 apps 目錄下:

# 下載 deepedit 範例 App 至 apps 目錄下
monailabel apps --download --name deepedit --output apps
deepedit is copied at: /home/ubuntu/monai_label/apps/deepedit

列出可用的資料集:

# 列出可用的資料集
monailabel datasets
Available Datasets are:
----------------------------------------------------
  Task01_BrainTumour            : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task01_BrainTumour.tar
  Task02_Heart                  : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task02_Heart.tar
  Task03_Liver                  : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task03_Liver.tar
  Task04_Hippocampus            : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task04_Hippocampus.tar
  Task05_Prostate               : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task05_Prostate.tar
  Task06_Lung                   : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task06_Lung.tar
  Task07_Pancreas               : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task07_Pancreas.tar
  Task08_HepaticVessel          : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task08_HepaticVessel.tar
  Task09_Spleen                 : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task09_Spleen.tar
  Task10_Colon                  : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task10_Colon.tar

下載 Medical Segmentation Decathlon(MSD)中的 Task09_Spleen 資料集至 datasets 目錄:

# 下載 MSD 的 Task09_Spleen 資料集至 datasets 目錄
monailabel datasets --download --name Task09_Spleen --output datasets
Task09_Spleen.tar: 1.50GB [01:43, 15.6MB/s]
2022-04-13 10:16:39,159 - INFO - Downloaded: datasets/Task09_Spleen.tar
2022-04-13 10:16:42,211 - INFO - Verified 'Task09_Spleen.tar', md5: 410d4a301da4e5b2f6f86ec3ddba524e.
2022-04-13 10:16:42,211 - INFO - Writing into directory: /home/ubuntu/monai_label/datasets.
Task09_Spleen is downloaded at: datasets/Task09_Spleen

啟動 deepedit 範例 App 對 Task09_Spleen 資料集進行標註:

# 啟動 deepedit 範例 App 對 Task09_Spleen 資料集進行標註
monailabel start_server --app apps/deepedit --studies datasets/Task09_Spleen/imagesTr

MONAI Label 開發版

由於 MONAI Label 還在初期發展階段,若需要嘗試新功能,可以安裝最新的開發版:

# 安裝 MONAI Label
pip install monailabel-weekly

最新的開發版跟穩定版有一些差異,詳細使用參數要參考最新的 GitHub 網頁說明,以下是使用 MONAI Label 0.4.dev2215 版的操作指令。

查詢並列出 MONAI Label 中內建的範例 App:

# 列出可用的範例 App
monailabel apps
Available Sample Apps are: (/home/ubuntu/monaienv/monailabel/sample-apps)
----------------------------------------------------
Radiology based Apps
----------------------------------------------------
  radiology                     : /home/ubuntu/monaienv/monailabel/sample-apps/radiology

Pathology based Apps
----------------------------------------------------
  pathology                     : /home/ubuntu/monaienv/monailabel/sample-apps/pathology

下載 radiology 範例 App 至 apps 目錄下:

# 下載 radiology 範例 App 至 apps 目錄下
monailabel apps --download --name radiology --output apps
radiology is copied at: /home/ubuntu/monai_label/apps/radiology

列出可用的資料集:

# 列出可用的資料集
monailabel datasets
Available Datasets are:
----------------------------------------------------
  Task01_BrainTumour            : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task01_BrainTumour.tar
  Task02_Heart                  : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task02_Heart.tar
  Task03_Liver                  : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task03_Liver.tar
  Task04_Hippocampus            : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task04_Hippocampus.tar
  Task05_Prostate               : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task05_Prostate.tar
  Task06_Lung                   : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task06_Lung.tar
  Task07_Pancreas               : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task07_Pancreas.tar
  Task08_HepaticVessel          : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task08_HepaticVessel.tar
  Task09_Spleen                 : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task09_Spleen.tar
  Task10_Colon                  : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task10_Colon.tar

下載 Medical Segmentation Decathlon(MSD)中的 Task09_Spleen 資料集至 datasets 目錄:

# 下載 MSD 的 Task09_Spleen 資料集至 datasets 目錄
monailabel datasets --download --name Task09_Spleen --output datasets
Task09_Spleen.tar: 1.50GB [01:43, 15.5MB/s]
2022-04-15 10:05:42,902 - INFO - Downloaded: datasets/Task09_Spleen.tar
2022-04-15 10:05:45,886 - INFO - Verified 'Task09_Spleen.tar', md5: 410d4a301da4e5b2f6f86ec3ddba524e.
2022-04-15 10:05:45,887 - INFO - Writing into directory: /home/ubuntu/monai_label/datasets.
Task09_Spleen is downloaded at: datasets/Task09_Spleen

啟動 deepedit 範例 App 對 Task09_Spleen 資料集進行標註:

# 啟動 radiology 範例 App 以 deepedit 模型對 Task09_Spleen 資料集進行標註
monailabel start_server --app apps/radiology --studies datasets/Task09_Spleen/imagesTr --conf models deepedit

3D Slicer

安裝最新的 3D Slicer Preview 版本,在主選單中開啟「View」→「Extension Manager」→「Active Learning」→「MONAI Label」,點選「Install」按鈕安裝這個 plugin。

3D Slicer Extensions Manager

安裝好 MONAI Label plugin 之後,重新啟動 3D Slicer,即可從模組選單的「Active Learning」分類中,選擇「MONAILabel」來使用。

MONAI Label 按鈕

如果時常要使用 MONAI Label 的話,可以在主選單中開啟「Edit」→「Application Settings」,點選「Modules」頁籤,以滑鼠將「MONAILabel」拖曳至「Favorite Modules」中。

Settings

這樣 MONAI Label 的按鈕就會出現在工具列中。

MONAI Label 按鈕

當選擇了 MONAI Label 模組之後,可以輸入 MONAI Label 伺服器位址(例如 http://localhost:8000/),然後按下 Fetch 按鈕進行連線,若不輸入 MONAI Label 伺服器位址,則會使用預設的位址。

點選 Fetch 按鈕

連接至 MONAI Label 伺服器之後,按下「Next Sample」即可開始使用 MONAI Label 的工具進行標註了。

使用 3DSlicer 的 MONAI Label Plugin 進行標註

當一張影像標註完成之後,可以按下「Submit Label」將標註結果送回 MONAI Label 伺服器。若想要更新標註的模型,可以按下「Train」按鈕。

OHIF Viewer

MONAI Label 也可以搭配網頁介面的 OHIF Viewer 進行標註,但這種方式需要配合 DICOMWeb 伺服器使用,使用前先參考 Orthanc DICOM 影像伺服器安裝與使用教學安裝好 Orthanc 伺服器,並將要進行標註的 DICOM 醫學影像匯入 Orthanc 伺服器中。如果需要對 NIfTI 檔案進行標註,可以參考醫學影像、標註 NIfTI 轉 DICOM 格式教學與範例,先將 NIfTI 檔案轉為 DICOM 格式之後,再匯入 Orthanc 伺服器。

MONAI Label 本身就內建了 OHIF Viewer,只要在啟動時指定 DICOMWeb 伺服器位址,即可使用 OHIF Viewer 進行標註:

# 以 OHIF Viewer 進行標註(開發版)
monailabel start_server --app apps/radiology --studies http://127.0.0.1:8042/dicom-web --conf models deepedit

此時開啟 http://127.0.0.1:8000/ohif/ 這個網址,即可看到 OHIF Viewer 的頁面,並使用 MONAI Label plugin 工具在網頁上進行標註,甚至訓練模型。

使用 OHIF Viewer 的 MONAI Label Plugin 進行標註

在 OHIF Viewer 網頁上標註的資料,也可以直接下載為 Nrrd 檔案。

參考資料

Share
Published by
Office Guide
Tags: DICOM

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago